{
	"targets": {
		"SafeDecimalMath": {
			"name": "SafeDecimalMath",
			"address": "0x0142F40c25CE1F1177Ed131101FA19217396cB88",
			"source": "SafeDecimalMath",
			"link": "https://explorer.optimism.io/address/0x0142F40c25CE1F1177Ed131101FA19217396cB88",
			"timestamp": "2021-01-15T05:40:43.101Z",
			"txn": "",
			"network": "mainnet"
		},
		"Math": {
			"name": "Math",
			"address": "0x0B3A73EE0740b3130e40B2A6b5aaf59E7E3Ef74c",
			"source": "Math",
			"link": "https://explorer.optimism.io/address/0x0B3A73EE0740b3130e40B2A6b5aaf59E7E3Ef74c",
			"timestamp": "2021-01-15T05:40:44.427Z",
			"txn": "",
			"network": "mainnet"
		},
		"AddressResolver": {
			"name": "AddressResolver",
			"address": "0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C",
			"source": "AddressResolver",
			"link": "https://explorer.optimism.io/address/0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C",
			"timestamp": "2021-01-15T05:40:45.820Z",
			"txn": "",
			"network": "mainnet"
		},
		"ReadProxyAddressResolver": {
			"name": "ReadProxyAddressResolver",
			"address": "0x1Cb059b7e74fD21665968C908806143E744D5F30",
			"source": "ReadProxy",
			"link": "https://explorer.optimism.io/address/0x1Cb059b7e74fD21665968C908806143E744D5F30",
			"timestamp": "2021-01-15T05:40:47.164Z",
			"txn": "",
			"network": "mainnet"
		},
		"FlexibleStorage": {
			"name": "FlexibleStorage",
			"address": "0x47649022380d182DA8010Ae5d257fea4227b21ff",
			"source": "FlexibleStorage",
			"link": "https://explorer.optimism.io/address/0x47649022380d182DA8010Ae5d257fea4227b21ff",
			"timestamp": "2021-01-15T05:40:50.897Z",
			"txn": "",
			"network": "mainnet"
		},
		"SystemSettings": {
			"name": "SystemSettings",
			"address": "0x05E1b1Dff853B1D67828Aa5E8CB37cC25aA050eE",
			"source": "SystemSettings",
			"link": "https://explorer.optimism.io/address/0x05E1b1Dff853B1D67828Aa5E8CB37cC25aA050eE",
			"timestamp": "2022-06-23T18:50:34.000Z",
			"txn": "https://explorer.optimism.io/tx/0x822ec5ccde3d0228c74435cd3ac0b44798190b121f3bd7e6761ef1e9eeb052e0",
			"network": "mainnet"
		},
		"SystemStatus": {
			"name": "SystemStatus",
			"address": "0xE8c41bE1A167314ABAF2423b72Bf8da826943FFD",
			"source": "SystemStatus",
			"link": "https://explorer.optimism.io/address/0xE8c41bE1A167314ABAF2423b72Bf8da826943FFD",
			"timestamp": "2022-03-17T20:55:12.000Z",
			"txn": "https://explorer.optimism.io/tx/0x1755e73d6d414cc63b135a0625b82c20b5d3d640a7ae3090ff14a74cf4ac127d",
			"network": "mainnet"
		},
		"ExchangeRates": {
			"name": "ExchangeRates",
			"address": "0x22602469d704BfFb0936c7A7cfcD18f7aA269375",
			"source": "ExchangeRates",
			"link": "https://explorer.optimism.io/address/0x22602469d704BfFb0936c7A7cfcD18f7aA269375",
			"timestamp": "2022-05-10T20:13:31.000Z",
			"txn": "https://explorer.optimism.io/tx/0x1cc5432b1a2efa4813817c606261d5578f07d2e392a91dd7e632ed7b88b6dc17",
			"network": "mainnet"
		},
		"RewardEscrowV2": {
			"name": "RewardEscrowV2",
			"address": "0x47eE58801C1AC44e54FF2651aE50525c5cfc66d0",
			"source": "ImportableRewardEscrowV2",
			"link": "https://explorer.optimism.io/address/0x47eE58801C1AC44e54FF2651aE50525c5cfc66d0",
			"timestamp": "2021-01-15T05:41:01.548Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthetixEscrow": {
			"name": "SynthetixEscrow",
			"address": "0x06C6D063896ac733673c4474E44d9268f2402A55",
			"source": "SynthetixEscrow",
			"link": "https://explorer.optimism.io/address/0x06C6D063896ac733673c4474E44d9268f2402A55",
			"timestamp": "2021-01-15T05:41:03.357Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthetixState": {
			"name": "SynthetixState",
			"address": "0x9770239D49Db97E77fc5Adcb5413654C9e45A510",
			"source": "SynthetixStateWithLimitedSetup",
			"link": "https://explorer.optimism.io/address/0x9770239D49Db97E77fc5Adcb5413654C9e45A510",
			"timestamp": "2021-01-17T03:23:18.386Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyFeePool": {
			"name": "ProxyFeePool",
			"address": "0x4a16A42407AA491564643E1dfc1fd50af29794eF",
			"source": "Proxy",
			"link": "https://explorer.optimism.io/address/0x4a16A42407AA491564643E1dfc1fd50af29794eF",
			"timestamp": "2021-01-15T05:41:06.241Z",
			"txn": "",
			"network": "mainnet"
		},
		"DelegateApprovalsEternalStorage": {
			"name": "DelegateApprovalsEternalStorage",
			"address": "0x02f7fB66B55e6ca476d126d96f14c5732Eeb4363",
			"source": "EternalStorage",
			"link": "https://explorer.optimism.io/address/0x02f7fB66B55e6ca476d126d96f14c5732Eeb4363",
			"timestamp": "2021-01-15T05:41:08.129Z",
			"txn": "",
			"network": "mainnet"
		},
		"DelegateApprovals": {
			"name": "DelegateApprovals",
			"address": "0x2A23bc0EA97A89abD91214E8e4d20F02Fe14743f",
			"source": "DelegateApprovals",
			"link": "https://explorer.optimism.io/address/0x2A23bc0EA97A89abD91214E8e4d20F02Fe14743f",
			"timestamp": "2021-01-15T05:41:09.484Z",
			"txn": "",
			"network": "mainnet"
		},
		"FeePoolEternalStorage": {
			"name": "FeePoolEternalStorage",
			"address": "0x41140Bf6498a36f2E44eFd49f21dAe3bbb7367c8",
			"source": "FeePoolEternalStorage",
			"link": "https://explorer.optimism.io/address/0x41140Bf6498a36f2E44eFd49f21dAe3bbb7367c8",
			"timestamp": "2021-01-15T05:41:16.528Z",
			"txn": "",
			"network": "mainnet"
		},
		"FeePool": {
			"name": "FeePool",
			"address": "0xD3739A5F06747e148E716Dcb7147B9BA15b70fcc",
			"source": "FeePool",
			"link": "https://explorer.optimism.io/address/0xD3739A5F06747e148E716Dcb7147B9BA15b70fcc",
			"timestamp": "2022-03-17T20:55:27.000Z",
			"txn": "https://explorer.optimism.io/tx/0xdefb93aa36b9b5c35d8bfc108670599a4dbc56d3c4ea490acfc9b3944b5cddab",
			"network": "mainnet"
		},
		"FeePoolState": {
			"name": "FeePoolState",
			"address": "0x6e0d26cffc3a63d763F1546f749bf62ebC7d72D8",
			"source": "FeePoolState",
			"link": "https://explorer.optimism.io/address/0x6e0d26cffc3a63d763F1546f749bf62ebC7d72D8",
			"timestamp": "2021-01-17T03:23:21.273Z",
			"txn": "",
			"network": "mainnet"
		},
		"RewardsDistribution": {
			"name": "RewardsDistribution",
			"address": "0x5d9187630E99dBce4BcAB8733B76757f7F44aA2e",
			"source": "RewardsDistribution",
			"link": "https://explorer.optimism.io/address/0x5d9187630E99dBce4BcAB8733B76757f7F44aA2e",
			"timestamp": "2021-01-15T05:41:25.252Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyERC20": {
			"name": "ProxyERC20",
			"address": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
			"timestamp": "2021-01-15T05:41:26.674Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStateSynthetix": {
			"name": "TokenStateSynthetix",
			"address": "0xB9c6CA25452E7f6D0D3340CE1e9B573421afc2eE",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0xB9c6CA25452E7f6D0D3340CE1e9B573421afc2eE",
			"timestamp": "2021-01-15T05:41:28.112Z",
			"txn": "",
			"network": "mainnet"
		},
		"Synthetix": {
			"name": "Synthetix",
			"address": "0xFE8E48Bf36ccC3254081eC8C65965D1c8b2E744D",
			"source": "MintableSynthetix",
			"link": "https://explorer.optimism.io/address/0xFE8E48Bf36ccC3254081eC8C65965D1c8b2E744D",
			"timestamp": "2022-06-09T19:46:18.000Z",
			"txn": "https://explorer.optimism.io/tx/0xfb9e2b9b9eabfce2f4420dbcafc627d2f3fe7c483a4990352c8b40a182bd275e",
			"network": "mainnet"
		},
		"ProxySynthetix": {
			"name": "ProxySynthetix",
			"address": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
			"timestamp": "2021-01-15T05:41:26.674Z",
			"txn": "",
			"network": "mainnet"
		},
		"DebtCache": {
			"name": "DebtCache",
			"address": "0x17628A557d1Fc88D1c35989dcBAC3f3e275E2d2B",
			"source": "DebtCache",
			"link": "https://explorer.optimism.io/address/0x17628A557d1Fc88D1c35989dcBAC3f3e275E2d2B",
			"timestamp": "2022-03-17T20:55:27.000Z",
			"txn": "https://explorer.optimism.io/tx/0x79a93cc304c2e8655b0ce90d5dd4353fe290d9b1335ef877a488630b801737cd",
			"network": "mainnet"
		},
		"Exchanger": {
			"name": "Exchanger",
			"address": "0xcC02F000b0aA8a0eFC2B55C9cf2305Fb3531cca1",
			"source": "Exchanger",
			"link": "https://explorer.optimism.io/address/0xcC02F000b0aA8a0eFC2B55C9cf2305Fb3531cca1",
			"timestamp": "2022-05-14T04:46:38.000Z",
			"txn": "https://explorer.optimism.io/tx/0x7c5095fbe0f574ab6c253283d1b0c882fc14158d147c740c1ef020fe90e89f11",
			"network": "mainnet"
		},
		"ExchangeState": {
			"name": "ExchangeState",
			"address": "0x7EF87c14f50CFFe2e73d2C87916C3128c56593A8",
			"source": "ExchangeState",
			"link": "https://explorer.optimism.io/address/0x7EF87c14f50CFFe2e73d2C87916C3128c56593A8",
			"timestamp": "2021-01-15T05:41:40.250Z",
			"txn": "",
			"network": "mainnet"
		},
		"Issuer": {
			"name": "Issuer",
			"address": "0x7EF2EDd3623312B9a82E25647e12F1c77D0Ea012",
			"source": "Issuer",
			"link": "https://explorer.optimism.io/address/0x7EF2EDd3623312B9a82E25647e12F1c77D0Ea012",
			"timestamp": "2022-06-23T18:50:34.000Z",
			"txn": "https://explorer.optimism.io/tx/0xc4269f3e3b203ae45546651d5ea745a4b0c6b1807d785f8841a7ff24d87fe647",
			"network": "mainnet"
		},
		"TradingRewards": {
			"name": "TradingRewards",
			"address": "0x2DcAD1A019fba8301b77810Ae14007cc88ED004B",
			"source": "TradingRewards",
			"link": "https://explorer.optimism.io/address/0x2DcAD1A019fba8301b77810Ae14007cc88ED004B",
			"timestamp": "2021-01-15T05:41:53.303Z",
			"txn": "",
			"network": "mainnet"
		},
		"EscrowChecker": {
			"name": "EscrowChecker",
			"address": "0xcdb7D0a946223255d39A6e29B54f08f3291cc118",
			"source": "EscrowChecker",
			"link": "https://explorer.optimism.io/address/0xcdb7D0a946223255d39A6e29B54f08f3291cc118",
			"timestamp": "2021-01-15T05:41:56.647Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesUSD": {
			"name": "TokenStatesUSD",
			"address": "0x92bAc115d89cA17fd02Ed9357CEcA32842ACB4c2",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0x92bAc115d89cA17fd02Ed9357CEcA32842ACB4c2",
			"timestamp": "2021-01-15T05:42:03.802Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysUSD": {
			"name": "ProxysUSD",
			"address": "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
			"timestamp": "2021-01-15T05:42:06.522Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxyERC20sUSD": {
			"name": "ProxyERC20sUSD",
			"address": "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
			"timestamp": "2021-01-15T05:42:06.522Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsUSD": {
			"name": "SynthsUSD",
			"address": "0xDfA2d3a0d32F870D87f8A0d7AA6b9CdEB7bc5AdB",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0xDfA2d3a0d32F870D87f8A0d7AA6b9CdEB7bc5AdB",
			"timestamp": "2022-06-09T19:46:35.000Z",
			"txn": "https://explorer.optimism.io/tx/0x53563b894ee7295c4db1e876e0ebf30d3743896e6054c8eb35943afd3a6c4a95",
			"network": "mainnet"
		},
		"EtherCollateral": {
			"name": "EtherCollateral",
			"address": "0xC8E91c926E04BE1cb94e51c5379d14774D51ae6C",
			"source": "EmptyEtherCollateral",
			"link": "https://explorer.optimism.io/address/0xC8E91c926E04BE1cb94e51c5379d14774D51ae6C",
			"timestamp": "2021-01-15T05:42:13.462Z",
			"txn": "",
			"network": "mainnet"
		},
		"EtherCollateralsUSD": {
			"name": "EtherCollateralsUSD",
			"address": "0xC0c66470E766AE2026E6695966C56C90741811AA",
			"source": "EmptyEtherCollateral",
			"link": "https://explorer.optimism.io/address/0xC0c66470E766AE2026E6695966C56C90741811AA",
			"timestamp": "2021-01-15T05:42:14.826Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthetixBridgeToBase": {
			"name": "SynthetixBridgeToBase",
			"address": "0x136b1EC699c62b0606854056f02dC7Bb80482d63",
			"source": "SynthetixBridgeToBase",
			"link": "https://explorer.optimism.io/address/0x136b1EC699c62b0606854056f02dC7Bb80482d63",
			"timestamp": "2022-05-10T20:16:02.000Z",
			"txn": "https://explorer.optimism.io/tx/0xbf69ba068e1b977b8bcbd46a1b53b80b9db4d29335737b23ef10ee3765f14a19",
			"network": "mainnet"
		},
		"CollateralManager": {
			"name": "CollateralManager",
			"address": "0x15E7D4972a3E477878A5867A47617122BE2d1fF0",
			"source": "CollateralManager",
			"link": "https://explorer.optimism.io/address/0x15E7D4972a3E477878A5867A47617122BE2d1fF0",
			"timestamp": "2021-10-12T21:06:52.000Z",
			"txn": "https://explorer.optimism.io/tx/0xde6a2ad50eb498c2e96e19e9d431f7eccaa2135541413d1fbf87c22cb02bce01",
			"network": "mainnet"
		},
		"SynthUtil": {
			"name": "SynthUtil",
			"address": "0x87b1481c82913301Fc6c884Ac266a7c430F92cFA",
			"source": "SynthUtil",
			"link": "https://explorer.optimism.io/address/0x87b1481c82913301Fc6c884Ac266a7c430F92cFA",
			"timestamp": "2021-01-15T05:42:19.657Z",
			"txn": "",
			"network": "mainnet"
		},
		"DappMaintenance": {
			"name": "DappMaintenance",
			"address": "0x54581A23F62D147AC76d454f0b3eF77F9D766058",
			"source": "DappMaintenance",
			"link": "https://explorer.optimism.io/address/0x54581A23F62D147AC76d454f0b3eF77F9D766058",
			"timestamp": "2021-01-15T05:42:21.010Z",
			"txn": "",
			"network": "mainnet"
		},
		"EtherWrapper": {
			"name": "EtherWrapper",
			"address": "0xc3Ee42caBD773A608fa9Ec951982c94BD6F33d59",
			"source": "EmptyEtherWrapper",
			"link": "https://explorer.optimism.io/address/0xc3Ee42caBD773A608fa9Ec951982c94BD6F33d59",
			"timestamp": "2021-07-01T05:33:42.810Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesETH": {
			"name": "TokenStatesETH",
			"address": "0xEc3665F7e696b0Ad0D04Ae5161b18782D48cd1fd",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0xEc3665F7e696b0Ad0D04Ae5161b18782D48cd1fd",
			"timestamp": "2021-07-28T17:33:32.235Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysETH": {
			"name": "ProxysETH",
			"address": "0xE405de8F52ba7559f9df3C368500B6E6ae6Cee49",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0xE405de8F52ba7559f9df3C368500B6E6ae6Cee49",
			"timestamp": "2021-07-28T17:33:44.476Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsETH": {
			"name": "SynthsETH",
			"address": "0xe9dceA0136FEFC76c4E639Ec60CCE70482E2aCF7",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0xe9dceA0136FEFC76c4E639Ec60CCE70482E2aCF7",
			"timestamp": "2022-06-09T19:46:51.930Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesBTC": {
			"name": "TokenStatesBTC",
			"address": "0xA9E630952522E3F110322711F424528Af894e307",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0xA9E630952522E3F110322711F424528Af894e307",
			"timestamp": "2021-07-28T17:34:10.205Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysBTC": {
			"name": "ProxysBTC",
			"address": "0x298B9B95708152ff6968aafd889c6586e9169f1D",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0x298B9B95708152ff6968aafd889c6586e9169f1D",
			"timestamp": "2021-07-28T17:34:21.044Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsBTC": {
			"name": "SynthsBTC",
			"address": "0x421DEF861D623F7123dfE0878D86E9576cbb3975",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0x421DEF861D623F7123dfE0878D86E9576cbb3975",
			"timestamp": "2022-06-09T19:46:55.227Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesLINK": {
			"name": "TokenStatesLINK",
			"address": "0x08a008eEA07d3cC7ca1913EEC3468C10F8F79e6A",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0x08a008eEA07d3cC7ca1913EEC3468C10F8F79e6A",
			"timestamp": "2021-07-28T17:34:47.339Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysLINK": {
			"name": "ProxysLINK",
			"address": "0xc5Db22719A06418028A40A9B5E9A7c02959D0d08",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0xc5Db22719A06418028A40A9B5E9A7c02959D0d08",
			"timestamp": "2021-07-28T17:34:59.812Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsLINK": {
			"name": "SynthsLINK",
			"address": "0x0F6877e0Bb54a0739C6173A814B39D5127804123",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0x0F6877e0Bb54a0739C6173A814B39D5127804123",
			"timestamp": "2022-06-09T19:46:58.170Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthRedeemer": {
			"name": "SynthRedeemer",
			"address": "0xA997BD647AEe62Ef03b41e6fBFAdaB43d8E57535",
			"source": "SynthRedeemer",
			"link": "https://explorer.optimism.io/address/0xA997BD647AEe62Ef03b41e6fBFAdaB43d8E57535",
			"timestamp": "2021-10-12T21:06:52.000Z",
			"txn": "https://explorer.optimism.io/tx/0x834046a0d1c1f1554f68fbec14625d6e4fd6a780a4e29d3808ed389cfa94abbe",
			"network": "mainnet"
		},
		"CollateralUtil": {
			"name": "CollateralUtil",
			"address": "0xD21969A86Ce5c41aAb2D492a0F802AA3e015cd9A",
			"source": "CollateralUtil",
			"link": "https://explorer.optimism.io/address/0xD21969A86Ce5c41aAb2D492a0F802AA3e015cd9A",
			"timestamp": "2021-10-12T21:06:52.000Z",
			"txn": "https://explorer.optimism.io/tx/0x7f9b991d0e39d9d4acb97e97dd8e030d69d0c54fc98f3eb81bd0c9c08ac20e83",
			"network": "mainnet"
		},
		"CollateralManagerState": {
			"name": "CollateralManagerState",
			"address": "0xbA10526cD8742acC73AedeF5f7Dbb2477Bf86922",
			"source": "CollateralManagerState",
			"link": "https://explorer.optimism.io/address/0xbA10526cD8742acC73AedeF5f7Dbb2477Bf86922",
			"timestamp": "2021-10-12T21:06:52.000Z",
			"txn": "https://explorer.optimism.io/tx/0xc961ada3875dfdcc001f990bd9589207b2fc948e24aac9523afbf2860e21f8fa",
			"network": "mainnet"
		},
		"CollateralShort": {
			"name": "CollateralShort",
			"address": "0xeb4b5ABcE7310855319440d936cd3aDd77DFA193",
			"source": "CollateralShort",
			"link": "https://explorer.optimism.io/address/0xeb4b5ABcE7310855319440d936cd3aDd77DFA193",
			"timestamp": "2022-06-02T21:14:38.000Z",
			"txn": "https://explorer.optimism.io/tx/0xaa088cb79b36320f883bd9e802737a099b33dafcf47f5ba9fbf1d5cec1eb5d40",
			"network": "mainnet"
		},
		"WrapperFactory": {
			"name": "WrapperFactory",
			"address": "0x27be2EFAd45DeBd732C1EBf5C9F7b49D498D4a93",
			"source": "WrapperFactory",
			"link": "https://explorer.optimism.io/address/0x27be2EFAd45DeBd732C1EBf5C9F7b49D498D4a93",
			"timestamp": "2021-12-03T04:18:50.000Z",
			"txn": "https://explorer.optimism.io/tx/0xb8b6fc36b7cb72f52654255e77079e4cde9879626145c0342c39693ec1c5e7c9",
			"network": "mainnet"
		},
		"OwnerRelayOnOptimism": {
			"name": "OwnerRelayOnOptimism",
			"address": "0x6d4a64C57612841c2C6745dB2a4E4db34F002D20",
			"source": "OwnerRelayOnOptimism",
			"link": "https://explorer.optimism.io/address/0x6d4a64C57612841c2C6745dB2a4E4db34F002D20",
			"timestamp": "2021-11-23T23:07:05.000Z",
			"txn": "https://explorer.optimism.io/tx/0x8b3f33579f65c9d5f4a1eaf78fff47b6e42d481b9686575303be4f5bc6c30433",
			"network": "mainnet"
		},
		"CollateralEth": {
			"name": "CollateralEth",
			"address": "0x308AD16ef90fe7caCb85B784A603CB6E71b1A41a",
			"source": "CollateralEth",
			"link": "https://explorer.optimism.io/address/0x308AD16ef90fe7caCb85B784A603CB6E71b1A41a",
			"timestamp": "2021-12-15T21:06:22.000Z",
			"txn": "https://explorer.optimism.io/tx/0x7849ba45a602863e4d20a0abd2d0e7d7d9ca6b5b369da56356b91f382a7e034a",
			"network": "mainnet"
		},
		"StakingRewardssUSDDAIUniswapV3": {
			"name": "StakingRewardssUSDDAIUniswapV3",
			"address": "0x7E11c004d20b502729918687E6E6777b28499085",
			"source": "StakingRewards",
			"link": "https://explorer.optimism.io/address/0x7E11c004d20b502729918687E6E6777b28499085",
			"timestamp": "2022-01-15T21:10:49.985Z",
			"txn": "",
			"network": "mainnet"
		},
		"StakingRewardsSNXWETHUniswapV3": {
			"name": "StakingRewardsSNXWETHUniswapV3",
			"address": "0xfD49C7EE330fE060ca66feE33d49206eB96F146D",
			"source": "StakingRewards",
			"link": "https://explorer.optimism.io/address/0xfD49C7EE330fE060ca66feE33d49206eB96F146D",
			"timestamp": "2022-01-15T21:11:04.782Z",
			"txn": "",
			"network": "mainnet"
		},
		"SystemSettingsLib": {
			"name": "SystemSettingsLib",
			"address": "0xB17d51DF8e3A134E8304f682bE38e5204e4672e4",
			"source": "SystemSettingsLib",
			"link": "https://explorer.optimism.io/address/0xB17d51DF8e3A134E8304f682bE38e5204e4672e4",
			"timestamp": "2022-06-23T18:50:19.000Z",
			"txn": "https://explorer.optimism.io/tx/0x0d3f163d70dcc7a91120cbd16528eac9df6c5970206dfcfc5be2b69945e8b41c",
			"network": "mainnet"
		},
		"SynthetixDebtShare": {
			"name": "SynthetixDebtShare",
			"address": "0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
			"source": "SynthetixDebtShare",
			"link": "https://explorer.optimism.io/address/0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
			"timestamp": "2022-02-09T02:25:50.000Z",
			"txn": "https://explorer.optimism.io/tx/0x440843de030008aac6d5718e52c8c9928c89203293b0703faf84a41bfdbb97d4",
			"network": "mainnet"
		},
		"TokenStatesSOL": {
			"name": "TokenStatesSOL",
			"address": "0x6825Dd6B5b83FBbFF1049A44dc808A10fe9a6719",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0x6825Dd6B5b83FBbFF1049A44dc808A10fe9a6719",
			"timestamp": "2022-02-14T20:28:32.000Z",
			"txn": "https://explorer.optimism.io/tx/0x7b89e42a7670e68bee385cbef957ccb61d22969768c6d40251d4d28849f2c907",
			"network": "mainnet"
		},
		"ProxysSOL": {
			"name": "ProxysSOL",
			"address": "0x8b2F7Ae8cA8EE8428B6D76dE88326bB413db2766",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0x8b2F7Ae8cA8EE8428B6D76dE88326bB413db2766",
			"timestamp": "2022-02-14T20:28:32.000Z",
			"txn": "https://explorer.optimism.io/tx/0xb7b6b52eacf82c40e8fd76a4a8a413f4358d391c616b88772814f610634b747d",
			"network": "mainnet"
		},
		"SynthsSOL": {
			"name": "SynthsSOL",
			"address": "0x04B50a5992Ea2281E14d43494d656698EA9C24dD",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0x04B50a5992Ea2281E14d43494d656698EA9C24dD",
			"timestamp": "2022-06-09T19:47:23.982Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesAVAX": {
			"name": "TokenStatesAVAX",
			"address": "0x2114d1C571CB541f3416a65f8BccFf9BB9E55Dc5",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0x2114d1C571CB541f3416a65f8BccFf9BB9E55Dc5",
			"timestamp": "2022-02-23T23:35:27.473Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysAVAX": {
			"name": "ProxysAVAX",
			"address": "0xB2b42B231C68cbb0b4bF2FFEbf57782Fd97D3dA4",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0xB2b42B231C68cbb0b4bF2FFEbf57782Fd97D3dA4",
			"timestamp": "2022-02-23T23:35:31.230Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsAVAX": {
			"name": "SynthsAVAX",
			"address": "0x368A5126fF8e659004b6f9C9F723E15632e2B428",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0x368A5126fF8e659004b6f9C9F723E15632e2B428",
			"timestamp": "2022-06-09T19:47:27.385Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesMATIC": {
			"name": "TokenStatesMATIC",
			"address": "0x937C9E1d18bEB4F8E1BCB0Dd7a612ca6012517a3",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0x937C9E1d18bEB4F8E1BCB0Dd7a612ca6012517a3",
			"timestamp": "2022-02-23T23:35:44.354Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysMATIC": {
			"name": "ProxysMATIC",
			"address": "0x81DDfAc111913d3d5218DEA999216323B7CD6356",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0x81DDfAc111913d3d5218DEA999216323B7CD6356",
			"timestamp": "2022-02-23T23:35:48.038Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsMATIC": {
			"name": "SynthsMATIC",
			"address": "0xf49C194954b6B91855aC06D6C88Be316da60eD96",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0xf49C194954b6B91855aC06D6C88Be316da60eD96",
			"timestamp": "2022-06-09T19:47:34.770Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesEUR": {
			"name": "TokenStatesEUR",
			"address": "0x7afF10fc89B162c7aBf77974d190E7959cb456f5",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0x7afF10fc89B162c7aBf77974d190E7959cb456f5",
			"timestamp": "2022-02-23T23:36:01.499Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysEUR": {
			"name": "ProxysEUR",
			"address": "0xFBc4198702E81aE77c06D58f81b629BDf36f0a71",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0xFBc4198702E81aE77c06D58f81b629BDf36f0a71",
			"timestamp": "2022-02-23T23:36:05.775Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsEUR": {
			"name": "SynthsEUR",
			"address": "0xdEdb0b04AFF1525bb4B6167F00e61601690c1fF2",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0xdEdb0b04AFF1525bb4B6167F00e61601690c1fF2",
			"timestamp": "2022-06-09T19:47:42.102Z",
			"txn": "",
			"network": "mainnet"
		},
		"SignedSafeDecimalMath": {
			"name": "SignedSafeDecimalMath",
			"address": "0x253914cf059f4c3E277c28060C404acFc38FB6e2",
			"source": "SignedSafeDecimalMath",
			"link": "https://explorer.optimism.io/address/0x253914cf059f4c3E277c28060C404acFc38FB6e2",
			"timestamp": "2022-03-17T20:54:56.000Z",
			"txn": "https://explorer.optimism.io/tx/0x42365b277121025488d24a669c23bd0e0ec4e984a44cd4f15e2f8be7c5f1d4e2",
			"network": "mainnet"
		},
		"OneNetAggregatorIssuedSynths": {
			"name": "OneNetAggregatorIssuedSynths",
			"address": "0xe152A2DbcE62E6c0bd387fFd1bb8086F44c5Fd04",
			"source": "OneNetAggregatorIssuedSynths",
			"link": "https://explorer.optimism.io/address/0xe152A2DbcE62E6c0bd387fFd1bb8086F44c5Fd04",
			"timestamp": "2022-03-17T20:54:56.000Z",
			"txn": "https://explorer.optimism.io/tx/0x9c87a560ac15ac9720820b41ce580175303897ad1817e24e6f5b30c39cd5b33a",
			"network": "mainnet"
		},
		"OneNetAggregatorDebtRatio": {
			"name": "OneNetAggregatorDebtRatio",
			"address": "0xA408d8e01C8E084B67559226C5B55D6F0B7074e2",
			"source": "OneNetAggregatorDebtRatio",
			"link": "https://explorer.optimism.io/address/0xA408d8e01C8E084B67559226C5B55D6F0B7074e2",
			"timestamp": "2022-03-17T20:54:56.000Z",
			"txn": "https://explorer.optimism.io/tx/0xa74caca4a3ca2b47d00cb62124026fd1ebe110eaad3ad81365d15648d977b48b",
			"network": "mainnet"
		},
		"ExchangeCircuitBreaker": {
			"name": "ExchangeCircuitBreaker",
			"address": "0x7322e8F6cB6c6a7B4e6620C486777fcB9Ea052a4",
			"source": "ExchangeCircuitBreaker",
			"link": "https://explorer.optimism.io/address/0x7322e8F6cB6c6a7B4e6620C486777fcB9Ea052a4",
			"timestamp": "2022-03-17T20:58:36.000Z",
			"txn": "https://explorer.optimism.io/tx/0xe10a3ad5ce544d743c6cdb87619bf86413cec865ff82f188aca2d9e1d177e4cd",
			"network": "mainnet"
		},
		"TokenStatesAAVE": {
			"name": "TokenStatesAAVE",
			"address": "0xAf918f4a72BC34E59dFaF65866feC87947F1f590",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0xAf918f4a72BC34E59dFaF65866feC87947F1f590",
			"timestamp": "2022-03-17T21:02:20.395Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysAAVE": {
			"name": "ProxysAAVE",
			"address": "0x00B8D5a5e1Ac97Cb4341c4Bc4367443c8776e8d9",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0x00B8D5a5e1Ac97Cb4341c4Bc4367443c8776e8d9",
			"timestamp": "2022-03-17T21:02:28.085Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsAAVE": {
			"name": "SynthsAAVE",
			"address": "0x34783A738DdC355cD7c737D4101b20622681332a",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0x34783A738DdC355cD7c737D4101b20622681332a",
			"timestamp": "2022-06-09T19:47:45.450Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesUNI": {
			"name": "TokenStatesUNI",
			"address": "0xf32b995Fe4dDf540C848236dB9638d137Aa9b6ff",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0xf32b995Fe4dDf540C848236dB9638d137Aa9b6ff",
			"timestamp": "2022-03-17T21:02:35.548Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysUNI": {
			"name": "ProxysUNI",
			"address": "0xf5a6115Aa582Fd1BEEa22BC93B7dC7a785F60d03",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0xf5a6115Aa582Fd1BEEa22BC93B7dC7a785F60d03",
			"timestamp": "2022-03-17T21:02:43.204Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsUNI": {
			"name": "SynthsUNI",
			"address": "0xcF2E165D2359E3C4dFF1E10eC40dBB5a745223A9",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0xcF2E165D2359E3C4dFF1E10eC40dBB5a745223A9",
			"timestamp": "2022-06-09T19:47:52.678Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketManager": {
			"name": "FuturesMarketManager",
			"address": "0xc704c9AA89d1ca60F67B3075d05fBb92b3B00B3B",
			"source": "FuturesMarketManager",
			"link": "https://explorer.optimism.io/address/0xc704c9AA89d1ca60F67B3075d05fBb92b3B00B3B",
			"timestamp": "2022-03-17T21:03:08.000Z",
			"txn": "https://explorer.optimism.io/tx/0xce00263bf61378a2c8ed50bdd142461e467b983bc7c775854c997b541258c374",
			"network": "mainnet"
		},
		"FuturesMarketData": {
			"name": "FuturesMarketData",
			"address": "0xC51aeDBEC3aCD26650a7E85B6909E8AEc4d0F19e",
			"source": "FuturesMarketData",
			"link": "https://explorer.optimism.io/address/0xC51aeDBEC3aCD26650a7E85B6909E8AEc4d0F19e",
			"timestamp": "2022-03-17T21:03:08.000Z",
			"txn": "https://explorer.optimism.io/tx/0x804037170846adf1906b3211bdfb8c966f04c30d7edc3cd303da26909c58078f",
			"network": "mainnet"
		},
		"FuturesMarketSettings": {
			"name": "FuturesMarketSettings",
			"address": "0xaE55F163337A2A46733AA66dA9F35299f9A46e9e",
			"source": "FuturesMarketSettings",
			"link": "https://explorer.optimism.io/address/0xaE55F163337A2A46733AA66dA9F35299f9A46e9e",
			"timestamp": "2022-03-17T21:03:24.000Z",
			"txn": "https://explorer.optimism.io/tx/0xe1f4319cea5ee204053b01831644645c6157ab92858d23fd35e128356a0a4590",
			"network": "mainnet"
		},
		"FuturesMarketBTC": {
			"name": "FuturesMarketBTC",
			"address": "0xEe8804d8Ad10b0C3aD1Bd57AC3737242aD24bB95",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0xEe8804d8Ad10b0C3aD1Bd57AC3737242aD24bB95",
			"timestamp": "2022-03-17T21:03:24.000Z",
			"txn": "https://explorer.optimism.io/tx/0xafb4bf1178923a3a18fb3fb1c1d588f4d2dbb1b118239f887121fd73891ccca8",
			"network": "mainnet"
		},
		"FuturesMarketETH": {
			"name": "FuturesMarketETH",
			"address": "0xf86048DFf23cF130107dfB4e6386f574231a5C65",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0xf86048DFf23cF130107dfB4e6386f574231a5C65",
			"timestamp": "2022-03-17T21:03:23.875Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketLINK": {
			"name": "FuturesMarketLINK",
			"address": "0x1228c7D8BBc5bC53DB181bD7B1fcE765aa83bF8A",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0x1228c7D8BBc5bC53DB181bD7B1fcE765aa83bF8A",
			"timestamp": "2022-03-17T21:03:50.354Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketSOL": {
			"name": "FuturesMarketSOL",
			"address": "0xcF853f7f8F78B2B801095b66F8ba9c5f04dB1640",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0xcF853f7f8F78B2B801095b66F8ba9c5f04dB1640",
			"timestamp": "2022-03-31T21:40:21.239Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketAVAX": {
			"name": "FuturesMarketAVAX",
			"address": "0x4ff54624D5FB61C34c634c3314Ed3BfE4dBB665a",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0x4ff54624D5FB61C34c634c3314Ed3BfE4dBB665a",
			"timestamp": "2022-03-31T21:40:31.052Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketAAVE": {
			"name": "FuturesMarketAAVE",
			"address": "0x001b7876F567f0b3A639332Ed1e363839c6d85e2",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0x001b7876F567f0b3A639332Ed1e363839c6d85e2",
			"timestamp": "2022-03-31T21:41:02.246Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketUNI": {
			"name": "FuturesMarketUNI",
			"address": "0x5Af0072617F7f2AEB0e314e2faD1DE0231Ba97cD",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0x5Af0072617F7f2AEB0e314e2faD1DE0231Ba97cD",
			"timestamp": "2022-03-31T21:41:08.678Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketMATIC": {
			"name": "FuturesMarketMATIC",
			"address": "0xbCB2D435045E16B059b2130b28BE70b5cA47bFE5",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0xbCB2D435045E16B059b2130b28BE70b5cA47bFE5",
			"timestamp": "2022-03-31T21:41:17.899Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketXAU": {
			"name": "FuturesMarketXAU",
			"address": "0x4434f56ddBdE28fab08C4AE71970a06B300F8881",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0x4434f56ddBdE28fab08C4AE71970a06B300F8881",
			"timestamp": "2022-03-31T21:41:27.240Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketXAG": {
			"name": "FuturesMarketXAG",
			"address": "0xb147C69BEe211F57290a6cde9d1BAbfD0DCF3Ea3",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0xb147C69BEe211F57290a6cde9d1BAbfD0DCF3Ea3",
			"timestamp": "2022-03-31T21:41:32.694Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketEUR": {
			"name": "FuturesMarketEUR",
			"address": "0xad44873632840144fFC97b2D1de716f6E2cF0366",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0xad44873632840144fFC97b2D1de716f6E2cF0366",
			"timestamp": "2022-03-31T21:41:42.093Z",
			"txn": "",
			"network": "mainnet"
		},
		"TokenStatesINR": {
			"name": "TokenStatesINR",
			"address": "0xfE33ae95A9f0DA8A845aF33516EDc240DCD711d6",
			"source": "TokenState",
			"link": "https://explorer.optimism.io/address/0xfE33ae95A9f0DA8A845aF33516EDc240DCD711d6",
			"timestamp": "2022-05-10T20:17:20.117Z",
			"txn": "",
			"network": "mainnet"
		},
		"ProxysINR": {
			"name": "ProxysINR",
			"address": "0xa3A538EA5D5838dC32dde15946ccD74bDd5652fF",
			"source": "ProxyERC20",
			"link": "https://explorer.optimism.io/address/0xa3A538EA5D5838dC32dde15946ccD74bDd5652fF",
			"timestamp": "2022-05-10T20:18:24.536Z",
			"txn": "",
			"network": "mainnet"
		},
		"SynthsINR": {
			"name": "SynthsINR",
			"address": "0x34c2360ffe5D21542f76e991FFD104f281D4B3fb",
			"source": "MultiCollateralSynth",
			"link": "https://explorer.optimism.io/address/0x34c2360ffe5D21542f76e991FFD104f281D4B3fb",
			"timestamp": "2022-06-09T19:48:00.039Z",
			"txn": "",
			"network": "mainnet"
		},
		"FuturesMarketAPE": {
			"name": "FuturesMarketAPE",
			"address": "0xFe00395ec846240dc693e92AB2Dd720F94765Aa3",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0xFe00395ec846240dc693e92AB2Dd720F94765Aa3",
			"timestamp": "2022-05-10T20:19:23.000Z",
			"txn": "https://explorer.optimism.io/tx/0x581b35d8a283164d2ef260ce78e0ab12e9b6c986d305e1578bf60b57e533b963",
			"network": "mainnet"
		},
		"FuturesMarketDYDX": {
			"name": "FuturesMarketDYDX",
			"address": "0x10305C1854d6DB8A1060dF60bDF8A8B2981249Cf",
			"source": "FuturesMarket",
			"link": "https://explorer.optimism.io/address/0x10305C1854d6DB8A1060dF60bDF8A8B2981249Cf",
			"timestamp": "2022-05-10T20:19:45.350Z",
			"txn": "",
			"network": "mainnet"
		},
		"Liquidator": {
			"name": "Liquidator",
			"address": "0x68a8b098967Ae077dcFf5cC8E29B7cb15f1A3cC8",
			"source": "Liquidator",
			"link": "https://explorer.optimism.io/address/0x68a8b098967Ae077dcFf5cC8E29B7cb15f1A3cC8",
			"timestamp": "2022-05-14T04:43:17.000Z",
			"txn": "https://explorer.optimism.io/tx/0x543c2cf3f796f9a4db89bf02a67548f08ed412073357a3f3adca455ff15834cc",
			"network": "mainnet"
		},
		"LiquidatorRewards": {
			"name": "LiquidatorRewards",
			"address": "0xF4EebDD0704021eF2a6Bbe993fdf93030Cd784b4",
			"source": "LiquidatorRewards",
			"link": "https://explorer.optimism.io/address/0xF4EebDD0704021eF2a6Bbe993fdf93030Cd784b4",
			"timestamp": "2022-05-14T04:44:19.000Z",
			"txn": "https://explorer.optimism.io/tx/0x83b3f428a39f34f894092cd3cdfc6a2479c9b5ccefedc5b0c735c4477632afba",
			"network": "mainnet"
		}
	},
	"sources": {
		"SafeDecimalMath": {
			"bytecode": "730000000000000000000000000000000000000000301460806040526004361060655760003560e01c8063313ce56714606a578063864029e7146086578063907af6c014609e5780639d8e21771460a4578063d5e5e6e61460aa578063def4419d1460b0575b600080fd5b607060b6565b6040805160ff9092168252519081900360200190f35b608c60bb565b60408051918252519081900360200190f35b608c60cb565b608c60d7565b608c60e3565b607060f3565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156fea265627a7a723158200010d7578ca34e6826613a5bba137c613138126f81fdac3775e1b66a625fe90c64736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "PRECISE_UNIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "UNIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "highPrecisionDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "preciseUnit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "unit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x0f916a742569525628eeacd9e1086aab0524234325b27a6b73cb883ccf04dee9",
				"urls": [
					"bzz-raw://d7d5c892e591bd24ed623189d9f20e2c8fa8e8e8e6a2b6d2795e7b9a924f4d8b",
					"dweb:/ipfs/Qme4S8zMFDk69vDV9EV93d8tmGjvWYnrFktgPVLANB2VCb"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SafeDecimalMath.sol": "SafeDecimalMath"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SafeDecimalMath.sol": {
						"keccak256": "0x0f916a742569525628eeacd9e1086aab0524234325b27a6b73cb883ccf04dee9",
						"urls": [
							"bzz-raw://d7d5c892e591bd24ed623189d9f20e2c8fa8e8e8e6a2b6d2795e7b9a924f4d8b",
							"dweb:/ipfs/Qme4S8zMFDk69vDV9EV93d8tmGjvWYnrFktgPVLANB2VCb"
						]
					}
				},
				"version": 1
			}
		},
		"Math": {
			"bytecode": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820a52de87da3662cdef77389a6eade0f257266c3951277e8da9f34b3b94f0a400764736f6c63430005100032",
			"abi": [],
			"source": {
				"keccak256": "0x175306005b71e7ee6c49bf0c6092be374211bf64b2e5ee7debd6806557387027",
				"urls": [
					"bzz-raw://b83ad6d9bec6418281276cb526984d15a13a38664f0aa8958a87248414426de3",
					"dweb:/ipfs/QmRBGGuDYvo2eXVxsPVj7A26rS4Gf8g2KtKCBLEsbcPPVn"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Math.sol": "Math"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Math.sol": {
						"keccak256": "0x175306005b71e7ee6c49bf0c6092be374211bf64b2e5ee7debd6806557387027",
						"urls": [
							"bzz-raw://b83ad6d9bec6418281276cb526984d15a13a38664f0aa8958a87248414426de3",
							"dweb:/ipfs/QmRBGGuDYvo2eXVxsPVj7A26rS4Gf8g2KtKCBLEsbcPPVn"
						]
					}
				},
				"version": 1
			}
		},
		"AddressResolver": {
			"bytecode": "608060405234801561001057600080fd5b50600436106100a95760003560e01c8063766f781511610071578063766f78151461015157806379ba5097146101bf5780638da5cb5b146101c75780639f42102f146101cf578063ab0b8f77146102a1578063dacb2d011461035f576100a9565b80631627540c146100ae578063187f7935146100d657806321f8a7211461010f578063514560611461012c57806353a47bb714610149575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b03166103d4565b005b6100f3600480360360208110156100ec57600080fd5b5035610430565b604080516001600160a01b039092168252519081900360200190f35b6100f36004803603602081101561012557600080fd5b503561044b565b6100f36004803603602081101561014257600080fd5b5035610466565b6100f361056e565b6100d46004803603602081101561016757600080fd5b810190602081018135600160201b81111561018157600080fd5b82018360208201111561019357600080fd5b803590602001918460208302840111600160201b831117156101b457600080fd5b50909250905061057d565b6100d4610607565b6100f36106c3565b61028d600480360360408110156101e557600080fd5b810190602081018135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460208302840111600160201b8311171561023257600080fd5b919390929091602081019035600160201b81111561024f57600080fd5b82018360208201111561026157600080fd5b803590602001918460208302840111600160201b8311171561028257600080fd5b5090925090506106d2565b604080519115158252519081900360200190f35b6100d4600480360360408110156102b757600080fd5b810190602081018135600160201b8111156102d157600080fd5b8201836020820111156102e357600080fd5b803590602001918460208302840111600160201b8311171561030457600080fd5b919390929091602081019035600160201b81111561032157600080fd5b82018360208201111561033357600080fd5b803590602001918460208302840111600160201b8311171561035457600080fd5b50909250905061075b565b6100f36004803603604081101561037557600080fd5b81359190810190604081016020820135600160201b81111561039657600080fd5b8201836020820111156103a857600080fd5b803590602001918460018302840111600160201b831117156103c957600080fd5b509092509050610867565b6103dc6108db565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002602052600090815260409020546001600160a01b031681565b6000908152600260205260409020546001600160a01b031690565b6524b9b9bab2b960d11b600090815260026020527f0651498423135bdecab48e2d306f14d560a72d49179b71410fd95b5d25ce349a546001600160a01b0316806104f7576040805162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015290519081900360640190fd5b806001600160a01b03166332608039846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561053b57600080fd5b505afa15801561054f573d6000803e3d6000fd5b505050506040513d602081101561056557600080fd5b50519392505050565b6001546001600160a01b031681565b60005b818110156106025782828281811061059457fe5b905060200201356001600160a01b03166001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105de57600080fd5b505af11580156105f2573d6000803e3d6000fd5b5050600190920191506105809050565b505050565b6001546001600160a01b031633146106505760405162461bcd60e51b81526004018080602001828103825260358152602001806109276035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000805b8481101561074d578383828181106106ea57fe5b905060200201356001600160a01b03166001600160a01b03166002600088888581811061071357fe5b60209081029290920135835250810191909152604001600020546001600160a01b031614610745576000915050610753565b6001016106d6565b50600190505b949350505050565b6107636108db565b8281146107b7576040805162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015290519081900360640190fd5b60005b838110156108605760008585838181106107d057fe5b90506020020135905060008484848181106107e757fe5b600085815260026020908152604091829020805493820295909501356001600160a01b03166001600160a01b03199093168317909455805186815293840182905280519194507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa9193829003019150a150506001016107ba565b5050505050565b6000838152600260205260408120546001600160a01b03168383826108d05760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152604051601f909101601f19169092018290039550909350505050fd5b509095945050505050565b6000546001600160a01b031633146109245760405162461bcd60e51b815260040180806020018281038252602f81526020018061095c602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820544c770f8fe299ade8fd98b7050535f0377da5b99772da137adb2d64ef3ba0a064736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "AddressImported",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "names",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "areAddressesImported",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						}
					],
					"name": "getAddress",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "key",
							"type": "bytes32"
						}
					],
					"name": "getSynth",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "names",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "importAddresses",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract MixinResolver[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "rebuildCaches",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "repository",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"internalType": "string",
							"name": "reason",
							"type": "string"
						}
					],
					"name": "requireAndGetAddress",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x918caa80865ef8efc1541006da4e512748422c5b33b00d127da6295c386c7633",
				"urls": [
					"bzz-raw://b875e8cc83f3a55f37908ed65d64b96a034dba3a3abe8bd69db094e3d40a879c",
					"dweb:/ipfs/QmUsLTnkCTE5iCeG5z1wxqUYWjBspxdvUAji63QrTQ9nw6"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"AddressResolver.sol": "AddressResolver"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"AddressResolver.sol": {
						"keccak256": "0x918caa80865ef8efc1541006da4e512748422c5b33b00d127da6295c386c7633",
						"urls": [
							"bzz-raw://b875e8cc83f3a55f37908ed65d64b96a034dba3a3abe8bd69db094e3d40a879c",
							"dweb:/ipfs/QmUsLTnkCTE5iCeG5z1wxqUYWjBspxdvUAji63QrTQ9nw6"
						]
					}
				},
				"version": 1
			}
		},
		"ReadProxy": {
			"bytecode": "608060405234801561001957600080610016610135565b50505b506040516109973803806109978339818101604052602081101561004557600080610042610135565b50505b8101908080519250829150506001600160a01b0381166100b45760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f742062652030000000000000006044820152606401604051809103906100b1610135565b50505b8060006001816100c26101a0565b816001600160a01b0302191690836001600160a01b03160217906100e4610200565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1505061024e565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561016d578086015182820160400152602001610152565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156101fb576000828201526020016101e4565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206101e4565b61073a8061025d6000396000f3fe60806040523480156100195760008061001661048e565b50505b506004361061006b5760003560e01c80631627540c146100ab57806353a47bb7146100dc578063776d1a011461010057806379ba50971461012f5780638da5cb5b14610137578063d4b839921461013f575b366000803760008036600060026100806104f9565b5a610089610554565b50505050503d6000803e806100a6573d60006100a361048e565b50505b3d6000f35b6100da600480360360208110156100ca576000806100c761048e565b50505b50356001600160a01b0316610147565b005b6100e46101c1565b6040516001600160a01b03909116815260200160405180910390f35b6100da6004803603602081101561011f5760008061011c61048e565b50505b50356001600160a01b03166101e0565b6100da610277565b6100e46103fa565b6100e4610405565b61014f610411565b806001808061015c6104f9565b816001600160a01b0302191690836001600160a01b031602179061017e610641565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b600060016101cd6104f9565b906101000a90046001600160a01b031681565b6101e8610411565b8060026001816101f66104f9565b816001600160a01b0302191690836001600160a01b0316021790610218610641565b5050507f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e60026000906102496104f9565b906101000a90046001600160a01b03166040516001600160a01b03909116815260200160405180910390a150565b600060016102836104f9565b906101000a90046001600160a01b03166001600160a01b03165a6102a561068f565b6001600160a01b0316146102f35760405162461bcd60e51b81526004018080602001828103825260358152602001806106d660359139604001915050604051809103906102f061048e565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c60008061031f6104f9565b906101000a90046001600160a01b0316600160009061033c6104f9565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a16000600161037b6104f9565b906101000a90046001600160a01b03166000806101000a8161039b6104f9565b816001600160a01b0302191690836001600160a01b03160217906103bd610641565b5050506000600160006101000a816103d36104f9565b816001600160a01b0302191690836001600160a01b03160217906103f5610641565b505050565b6000806101cd6104f9565b600060026101cd6104f9565b60008061041c6104f9565b906101000a90046001600160a01b03166001600160a01b03165a61043e61068f565b6001600160a01b03161461048c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061070b602f91396040019150506040518091039061048961048e565b50505b565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156104c65780860151828201604001526020016104ab565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156103f55760008282015260200161053d565b638540661f598160e01b8152610587565b80808311156105715750815b92915050565b8080831015610571575090919050565b836004820152846024820152606060448201528660648201526084810160005b888110156105bf5780880151828201526020016105a7565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af150596106148d3d610577565b8c016106208187610565565b5b828110156106355760008152602001610621565b50929c50505050505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60008152602061053d565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061053d56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event"
				},
				{
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x716dc9ee286d638bfd3eeacbdfa3a3d3faab99ed00139511614ba293cdf8e704",
				"urls": [
					"bzz-raw://df197047de7159c59ce02271d484d350f0fdb6df9a3b49bc41d66be76e7e2a2c",
					"dweb:/ipfs/QmYsXEr15kskufmUT1igforvHxFrF48gyuXVoo2kpqkriR"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ReadProxy.sol": "ReadProxy"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ReadProxy.sol": {
						"keccak256": "0x716dc9ee286d638bfd3eeacbdfa3a3d3faab99ed00139511614ba293cdf8e704",
						"urls": [
							"bzz-raw://df197047de7159c59ce02271d484d350f0fdb6df9a3b49bc41d66be76e7e2a2c",
							"dweb:/ipfs/QmYsXEr15kskufmUT1igforvHxFrF48gyuXVoo2kpqkriR"
						]
					}
				},
				"version": 1
			}
		},
		"FlexibleStorage": {
			"bytecode": "608060405234801561001057600080fd5b50600436106101c35760003560e01c80638ca0adaf116100f9578063c89eb56211610097578063d994502d11610071578063d994502d146109c2578063f7833c5d146109f9578063f9c39d2f14610a1c578063fdfc4c1314610ae1576101c3565b8063c89eb562146108b7578063d658d2e91461097c578063d71a9b0114610999576101c3565b8063ab15985d116100d3578063ab15985d146106e5578063b67fa7ed146107aa578063c13a2b0c1461081f578063c4f610ed14610894576101c3565b80638ca0adaf1461062a5780638f6b95a31461069f5780639ee5955a146106c2576101c3565b806335ab2708116101665780634dca0978116101405780634dca0978146105345780635bda91e2146105665780636a59e495146105915780638408a5e5146105b5576101c3565b806335ab2708146104215780633bd6ad89146104445780633f28a6fc14610509576101c3565b80631625e3ef116101a25780631625e3ef1461037d57806318f662ed146103a05780631d5b277f146103c357806323257c2b146103ec576101c3565b80624b62d6146101c857806303cdc017146101f3578063142a391e146102b8575b600080fd5b6101f1600480360360608110156101de57600080fd5b5080359060208101359060400135610b04565b005b6101f16004803603606081101561020957600080fd5b81359190810190604081016020820135600160201b81111561022a57600080fd5b82018360208201111561023c57600080fd5b803590602001918460208302840111600160201b8311171561025d57600080fd5b919390929091602081019035600160201b81111561027a57600080fd5b82018360208201111561028c57600080fd5b803590602001918460208302840111600160201b831117156102ad57600080fd5b509092509050610bf4565b61032d600480360360408110156102ce57600080fd5b81359190810190604081016020820135600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b509092509050610d60565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610369578181015183820152602001610351565b505050509050019250505060405180910390f35b6101f16004803603604081101561039357600080fd5b5080359060200135610e07565b6101f1600480360360408110156103b657600080fd5b5080359060200135610f7b565b6101f1600480360360608110156103d957600080fd5b50803590602081013590604001356110e4565b61040f6004803603604081101561040257600080fd5b50803590602001356111cd565b60408051918252519081900360200190f35b6101f16004803603604081101561043757600080fd5b50803590602001356111f4565b6101f16004803603606081101561045a57600080fd5b81359190810190604081016020820135600160201b81111561047b57600080fd5b82018360208201111561048d57600080fd5b803590602001918460208302840111600160201b831117156104ae57600080fd5b919390929091602081019035600160201b8111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460208302840111600160201b831117156104fe57600080fd5b50909250905061135d565b6101f16004803603606081101561051f57600080fd5b508035906020810135906040013515156114c8565b6101f16004803603606081101561054a57600080fd5b50803590602081013590604001356001600160a01b03166115b1565b6101f16004803603606081101561057c57600080fd5b5080359060208101359060400135151561169a565b61059961184c565b604080516001600160a01b039092168252519081900360200190f35b61032d600480360360408110156105cb57600080fd5b81359190810190604081016020820135600160201b8111156105ec57600080fd5b8201836020820111156105fe57600080fd5b803590602001918460208302840111600160201b8311171561061f57600080fd5b50909250905061185b565b61032d6004803603604081101561064057600080fd5b81359190810190604081016020820135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b5090925090506118f7565b6101f1600480360360408110156106b557600080fd5b50803590602001356119b3565b610599600480360360408110156106d857600080fd5b5080359060200135611b32565b6101f1600480360360608110156106fb57600080fd5b81359190810190604081016020820135600160201b81111561071c57600080fd5b82018360208201111561072e57600080fd5b803590602001918460208302840111600160201b8311171561074f57600080fd5b919390929091602081019035600160201b81111561076c57600080fd5b82018360208201111561077e57600080fd5b803590602001918460208302840111600160201b8311171561079f57600080fd5b509092509050611b62565b61032d600480360360408110156107c057600080fd5b81359190810190604081016020820135600160201b8111156107e157600080fd5b8201836020820111156107f357600080fd5b803590602001918460208302840111600160201b8311171561081457600080fd5b509092509050611cc4565b61032d6004803603604081101561083557600080fd5b81359190810190604081016020820135600160201b81111561085657600080fd5b82018360208201111561086857600080fd5b803590602001918460208302840111600160201b8311171561088957600080fd5b509092509050611d60565b61040f600480360360408110156108aa57600080fd5b5080359060200135611e0e565b6101f1600480360360608110156108cd57600080fd5b81359190810190604081016020820135600160201b8111156108ee57600080fd5b82018360208201111561090057600080fd5b803590602001918460208302840111600160201b8311171561092157600080fd5b919390929091602081019035600160201b81111561093e57600080fd5b82018360208201111561095057600080fd5b803590602001918460208302840111600160201b8311171561097157600080fd5b509092509050611e35565b61040f6004803603602081101561099257600080fd5b5035611f97565b6101f1600480360360608110156109af57600080fd5b5080359060208101359060400135611fa9565b6109e5600480360360408110156109d857600080fd5b5080359060200135612092565b604080519115158252519081900360200190f35b61040f60048036036040811015610a0f57600080fd5b50803590602001356120bc565b6101f160048036036060811015610a3257600080fd5b81359190810190604081016020820135600160201b811115610a5357600080fd5b820183602082011115610a6557600080fd5b803590602001918460208302840111600160201b83111715610a8657600080fd5b919390929091602081019035600160201b811115610aa357600080fd5b820183602082011115610ab557600080fd5b803590602001918460208302840111600160201b83111715610ad657600080fd5b5090925090506120e3565b6101f160048036036040811015610af757600080fd5b5080359060200135612247565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610b6d57600080fd5b505afa158015610b81573d6000803e3d6000fd5b505050506040513d6020811015610b9757600080fd5b505190506001600160a01b0381163314610be25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed8585856123b0565b5050505050565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610c5d57600080fd5b505afa158015610c71573d6000803e3d6000fd5b505050506040513d6020811015610c8757600080fd5b505190506001600160a01b0381163314610cd25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314610d14576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657610d4e88888884818110610d2f57fe5b90506020020135878785818110610d4257fe5b90506020020135612421565b600101610d17565b5050505050505050565b60608083839050604051908082528060200260200182016040528015610d90578160200160208202803883390190505b506000868152600160209081526040808320548352600390915281209192505b84811015610dfc57816000878784818110610dc757fe5b90506020020135815260200190815260200160002054838281518110610de957fe5b6020908102919091010152600101610db0565b509095945050505050565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610e7057600080fd5b505afa158015610e84573d6000803e3d6000fd5b505050506040513d6020811015610e9a57600080fd5b505190506001600160a01b0381163314610ee55760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526005825280832086845282529182902054825187815291820186905260ff168015158284015291517f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c9181900360600190a15050506000918252600160209081526040808420548452600582528084209284529190529020805460ff19169055565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b505050506040513d602081101561100e57600080fd5b505190506001600160a01b03811633146110595760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526002825280832086845282529182902054825187815291820186905281830181905291517f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d46629181900360600190a1505050600091825260016020908152604080842054845260028252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d602081101561117757600080fd5b505190506001600160a01b03811633146111c25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612421565b60009182526001602090815260408084205484526002825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d602081101561128757600080fd5b505190506001600160a01b03811633146112d25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526006825280832086845282529182902054825187815291820186905281830181905291517f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd939181900360600190a1505050600091825260016020908152604080842054845260068252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156113c657600080fd5b505afa1580156113da573d6000803e3d6000fd5b505050506040513d60208110156113f057600080fd5b505190506001600160a01b038116331461143b5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b84831461147d576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d56576114c08888888481811061149857fe5b905060200201358787858181106114ab57fe5b905060200201356001600160a01b0316612492565b600101611480565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561153157600080fd5b505afa158015611545573d6000803e3d6000fd5b505050506040513d602081101561155b57600080fd5b505190506001600160a01b03811633146115a65760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561251b565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561161a57600080fd5b505afa15801561162e573d6000803e3d6000fd5b505050506040513d602081101561164457600080fd5b505190506001600160a01b038116331461168f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612492565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b505190506001600160a01b03811633146117785760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000858152600160205260409020546117d8576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206d69677261746520656d70747920636f6e7472616374000000604482015290519081900360640190fd5b600085815260016020526040808220548683529120558215611804576000858152600160205260408120555b60408051868152602081018690528415158183015290517fa3db9c909daa141b61562c797dae4dc4b3d7751686068c98111db87b2a8c374c9181900360600190a15050505050565b6000546001600160a01b031681565b6060808383905060405190808252806020026020018201604052801561188b578160200160208202803883390190505b506000868152600160209081526040808320548352600690915281209192505b84811015610dfc578160008787848181106118c257fe5b905060200201358152602001908152602001600020548382815181106118e457fe5b60209081029190910101526001016118ab565b60608083839050604051908082528060200260200182016040528015611927578160200160208202803883390190505b506000868152600160209081526040808320548352600490915281209192505b84811015610dfc5781600087878481811061195e57fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b031683828151811061199357fe5b6001600160a01b0390921660209283029190910190910152600101611947565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d6020811015611a4657600080fd5b505190506001600160a01b0381163314611a915760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000848152600160209081526040808320548352600482528083208684528252918290205482518781529182018690526001600160a01b031681830181905291517fec1140277b8f20820dc76b92216489238a207d5f22c964099303820fbd2bdf669181900360600190a1505050600091825260016020908152604080842054845260048252808420928452919052902080546001600160a01b0319169055565b6000918252600160209081526040808420548452600482528084209284529190529020546001600160a01b031690565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611bcb57600080fd5b505afa158015611bdf573d6000803e3d6000fd5b505050506040513d6020811015611bf557600080fd5b505190506001600160a01b0381163314611c405760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611c82576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611cbc88888884818110611c9d57fe5b90506020020135878785818110611cb057fe5b9050602002013561259a565b600101611c85565b60608083839050604051908082528060200260200182016040528015611cf4578160200160208202803883390190505b506000868152600160209081526040808320548352600290915281209192505b84811015610dfc57816000878784818110611d2b57fe5b90506020020135815260200190815260200160002054838281518110611d4d57fe5b6020908102919091010152600101611d14565b60608083839050604051908082528060200260200182016040528015611d90578160200160208202803883390190505b506000868152600160209081526040808320548352600590915281209192505b84811015610dfc57816000878784818110611dc757fe5b90506020020135815260200190815260200160002060009054906101000a900460ff16838281518110611df657fe5b91151560209283029190910190910152600101611db0565b60009182526001602090815260408084205484526003825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611e9e57600080fd5b505afa158015611eb2573d6000803e3d6000fd5b505050506040513d6020811015611ec857600080fd5b505190506001600160a01b0381163314611f135760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611f55576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611f8f88888884818110611f7057fe5b90506020020135878785818110611f8357fe5b905060200201356123b0565b600101611f58565b60016020526000908152604090205481565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b505190506001600160a01b03811633146120875760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561259a565b60009182526001602090815260408084205484526005825280842092845291905290205460ff1690565b60009182526001602090815260408084205484526006825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561214c57600080fd5b505afa158015612160573d6000803e3d6000fd5b505050506040513d602081101561217657600080fd5b505190506001600160a01b03811633146121c15760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314612203576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d565761223f8888888481811061221e57fe5b9050602002013587878581811061223157fe5b90506020020135151561251b565b600101612206565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156122b057600080fd5b505afa1580156122c4573d6000803e3d6000fd5b505050506040513d60208110156122da57600080fd5b505190506001600160a01b03811633146123255760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526003825280832086845282529182902054825187815291820186905281830181905291517f78962c711b5655608c554689ba42e4890d9e5d3f590b99842612ad39cd7ae0ae9181900360600190a1505050600091825260016020908152604080842054845260038252808420928452919052812055565b80600660006123be8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f961abb018d8a303304c9f1ff1f306c7493a8b68b381bbe4e9a3abf9588a952809181900360600190a1505050565b806002600061242f8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f60738523f766167cfd2310c61593dc795bc9d77de9276ed7e0c514df55e0a2c99181900360600190a1505050565b80600460006124a08661260b565b815260208082019290925260409081016000908120868252835281902080546001600160a01b0319166001600160a01b0394851617905580518681529182018590529183168183015290517f524fb430ecbfd4606a947f9ae445dbf7c9703944cf928789b86f3a8aad639365916060908290030190a1505050565b80600560006125298661260b565b8152602080820192909252604090810160009081208682528352819020805460ff19169315159390931790925581518581529081018490528215158183015290517f9c94ad4cfff55907724cb65340f342d3897dd884e6cd3c2d3777087191d5eb7b916060908290030190a1505050565b80600360006125a88661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f0d8877f604dfe262a8ac3904781814f022156c9341af779608a2ae0beef1906c9181900360600190a1505050565b6000818152600160205260408120548061266d5750604080513360601b60208083019190915260348201859052436054808401919091528351808403909101815260749092018352815191810191909120600085815260019092529190208190555b9291505056fe43616e6e6f742066696e6420636f6e747261637420696e2041646472657373205265736f6c76657243616e206f6e6c7920626520696e766f6b65642062792074686520636f6e6669677572656420636f6e7472616374496e707574206c656e67746873206d757374206d617463680000000000000000a265627a7a723158202a2a3d4e260aacb77fdc759d8da358d0d895da39b8739ea8b722a9a4fc1b630c64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "fromContractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toContractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "removeAccessFromPreviousContract",
							"type": "bool"
						}
					],
					"name": "KeyMigrated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "ValueDeletedAddress",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "ValueDeletedBool",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "ValueDeletedBytes32",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "ValueDeletedInt",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "ValueDeletedUInt",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "ValueSetAddress",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "ValueSetBool",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "ValueSetBytes32",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "ValueSetInt",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "ValueSetUInt",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBoolValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getAddressValues",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBoolValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getBoolValues",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "",
							"type": "bool[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getBytes32Values",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getIntValues",
					"outputs": [
						{
							"internalType": "int256[]",
							"name": "",
							"type": "int256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getUIntValues",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "hashes",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "fromContractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "toContractName",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "removeAccessFromPreviousContract",
							"type": "bool"
						}
					],
					"name": "migrateContractKey",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverProxy",
					"outputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "values",
							"type": "address[]"
						}
					],
					"name": "setAddressValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBoolValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "bool[]",
							"name": "values",
							"type": "bool[]"
						}
					],
					"name": "setBoolValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "values",
							"type": "bytes32[]"
						}
					],
					"name": "setBytes32Values",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "int256[]",
							"name": "values",
							"type": "int256[]"
						}
					],
					"name": "setIntValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "values",
							"type": "uint256[]"
						}
					],
					"name": "setUIntValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x124be3a02711bcefe1fbd774e9a9c71a8a7f12d3c767af3ac91022c53e1a3ec6",
				"urls": [
					"bzz-raw://da393ac9fd047901c67259c2a9f037825dd0f86140bbfcc4709c34a23a450f45",
					"dweb:/ipfs/QmVGT1BLCbGt6mi1vrNSXYdwRrCv4t9zVfJJNLgMkrCDGX"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FlexibleStorage.sol": "FlexibleStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FlexibleStorage.sol": {
						"keccak256": "0x124be3a02711bcefe1fbd774e9a9c71a8a7f12d3c767af3ac91022c53e1a3ec6",
						"urls": [
							"bzz-raw://da393ac9fd047901c67259c2a9f037825dd0f86140bbfcc4709c34a23a450f45",
							"dweb:/ipfs/QmVGT1BLCbGt6mi1vrNSXYdwRrCv4t9zVfJJNLgMkrCDGX"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettings": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200570838038062005708833981810160405260408110156200003757600080fd5b5080516020909101518080836001600160a01b0381166200009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15080600260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505073__$6a024fd1d0d065824004f6878746fc5d0d$__6375d0c0dc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200016657600080fd5b505af41580156200017b573d6000803e3d6000fd5b505050506040513d60208110156200019257600080fd5b50516d53797374656d53657474696e677360901b14620001f9576040805162461bcd60e51b815260206004820152601d60248201527f7265616420616e64207772697465206b657973206e6f7420657175616c000000604482015290519081900360640190fd5b50506154fd806200020b6000396000f3fe608060405234801561001057600080fd5b50600436106104e35760003560e01c80636a2b91511161028e578063a777155611610167578063d954bc02116100d9578063e84e2c3c11610092578063e84e2c3c14610d94578063e942204614610d9c578063ee93119814610db9578063f081da8514610dd6578063f216310714610df9578063f867e76714610e16576104e3565b8063d954bc0214610cf8578063dad0ab0f14610d24578063dc8f4a1b14610d2c578063e0e6393d14610d52578063e3bb67d414610d5a578063e7894da114610d77576104e3565b8063c193f0d81161012b578063c193f0d814610c56578063c52f35fe14610c5e578063c7b481bd14610c8a578063c855a8e114610cb6578063cc754a4c14610cbe578063d8ee820814610cdb576104e3565b8063a777155614610bf5578063af5355d814610c12578063b16e450f14610c1a578063b410a03414610c46578063bcf7eeac14610c4e576104e3565b80638925711711610200578063946ce8cd116101c4578063946ce8cd14610b62578063967706e914610b7f57806397a4aca014610b9c5780639d4e186d14610bb9578063a0cf745114610be5578063a4bca13114610bed576104e3565b80638925711714610acd5780638979ee0f14610ad5578063899ffef414610afa5780638da5cb5b14610b52578063922fef0814610b5a576104e3565b806379cb657a1161025257806379cb657a14610a315780637bf8230514610a4e5780637d708a4614610a745780637f3b293c14610a915780638074b37214610a995780638326470c14610aa1576104e3565b80636a2b9151146109d65780637066871f146109de5780637418536014610a0457806375aca32114610a0c57806379ba509714610a29576104e3565b806328a1170d116103c05780634c36b837116103325780635d14928f116102f65780635d14928f146109345780635d467d6a146109515780635e0117d614610977578063614d08f8146109945780636190dd7a1461099c578063635a3872146109b9576104e3565b80634c36b837146108e2578063510242bc146108ea578063523fd889146108f257806353a47bb71461090f578063556eaeb114610917576104e3565b8063345a394311610384578063345a39431461084157806334eac4971461085e578063372a395a14610881578063393d334f146108895780634328a925146108a65780634641ab66146108c3576104e3565b806328a1170d1461071857806329a022ba146107da5780632af64bd3146108005780632cce0e541461081c57806331e4e03014610839576104e3565b80631710940c1161045957806322425fa41161041d57806322425fa4146106a957806323b55008146106b157806323f5589a146106ce578063242df9e1146106d657806325539dd2146106de5780632806a743146106fb576104e3565b80631710940c146106395780631775765f146106415780631e6e219014610649578063214bf9e51461066657806321d9eba61461068c576104e3565b806309e514a4116104ab57806309e514a4146105975780630ee4951b146105bd5780630f27b788146105c557806310557020146105cd57806313d825b2146105f05780631627540c14610613576104e3565b8063038e47fe146104e85780630411d53c1461051a57806304c49f2c1461053957806304f3bcec14610556578063054be0b71461057a575b600080fd5b610508600480360360208110156104fe57600080fd5b503560ff16610e1e565b60408051918252519081900360200190f35b6105376004803603602081101561053057600080fd5b5035610e31565b005b6105376004803603602081101561054f57600080fd5b5035610f00565b61055e610fdb565b604080516001600160a01b039092168252519081900360200190f35b6105376004803603602081101561059057600080fd5b5035610fea565b610508600480360360208110156105ad57600080fd5b50356001600160a01b03166110c1565b6105086110cc565b6105086110dc565b610537600480360360408110156105e357600080fd5b50803590602001356110e6565b6105376004803603604081101561060657600080fd5b50803590602001356111dc565b6105376004803603602081101561062957600080fd5b50356001600160a01b03166112ca565b610508611326565b610508611330565b6105376004803603602081101561065f57600080fd5b503561133a565b6105086004803603602081101561067c57600080fd5b50356001600160a01b0316611421565b610537600480360360208110156106a257600080fd5b503561142c565b610508611558565b610537600480360360208110156106c757600080fd5b5035611562565b610508611642565b61050861164c565b610508600480360360208110156106f457600080fd5b5035611656565b6105376004803603602081101561071157600080fd5b5035611661565b6105376004803603604081101561072e57600080fd5b81019060208101813564010000000081111561074957600080fd5b82018360208201111561075b57600080fd5b8035906020019184602083028401116401000000008311171561077d57600080fd5b91939092909160208101903564010000000081111561079b57600080fd5b8201836020820111156107ad57600080fd5b803590602001918460208302840111640100000000831117156107cf57600080fd5b50909250905061173d565b610508600480360360208110156107f057600080fd5b50356001600160a01b03166118cb565b6108086118d6565b604080519115158252519081900360200190f35b6105376004803603602081101561083257600080fd5b50356119e0565b610508611ad2565b6108086004803603602081101561085757600080fd5b5035611adc565b6105376004803603604081101561087457600080fd5b5080359060200135611ae7565b610508611bdd565b6105376004803603602081101561089f57600080fd5b5035611be7565b610537600480360360208110156108bc57600080fd5b5035611cc6565b610537600480360360208110156108d957600080fd5b50351515611dfa565b61055e611edc565b610508611ee6565b6105376004803603602081101561090857600080fd5b5035611ef6565b61055e611fca565b6105376004803603602081101561092d57600080fd5b5035611fd9565b6105376004803603602081101561094a57600080fd5b50356120b8565b6105086004803603602081101561096757600080fd5b50356001600160a01b0316612199565b6105376004803603602081101561098d57600080fd5b50356121a4565b61050861227e565b610537600480360360208110156109b257600080fd5b50356122f5565b610537600480360360208110156109cf57600080fd5b50356123d4565b6105086124af565b610508600480360360208110156109f457600080fd5b50356001600160a01b03166124b9565b6105376124c4565b61053760048036036020811015610a2257600080fd5b503561268c565b61053761276d565b61053760048036036020811015610a4757600080fd5b5035612829565b61053760048036036020811015610a6457600080fd5b50356001600160a01b0316612902565b61053760048036036020811015610a8a57600080fd5b50356129eb565b610508612ac5565b610508612ad8565b61053760048036036040811015610ab757600080fd5b506001600160a01b038135169060200135612ae2565b610508612bc3565b61053760048036036040811015610aeb57600080fd5b50803590602001351515612bcd565b610b02612cc5565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610b3e578181015183820152602001610b26565b505050509050019250505060405180910390f35b61055e612d16565b610508612d25565b61053760048036036020811015610b7857600080fd5b5035612d2f565b61050860048036036020811015610b9557600080fd5b5035612e3a565b61050860048036036020811015610bb257600080fd5b5035612e45565b61053760048036036040811015610bcf57600080fd5b506001600160a01b038135169060200135612e50565b610508612f7a565b610508612f84565b61050860048036036020811015610c0b57600080fd5b5035612f8e565b610508612f99565b61053760048036036040811015610c3057600080fd5b506001600160a01b038135169060200135612fa3565b610508613095565b61050861309f565b6108086130a9565b61053760048036036040811015610c7457600080fd5b50803590602001356001600160a01b03166130b3565b61053760048036036040811015610ca057600080fd5b506001600160a01b0381351690602001356131b1565b610508613293565b61053760048036036020811015610cd457600080fd5b503561329d565b61053760048036036020811015610cf157600080fd5b5035613379565b61053760048036036040811015610d0e57600080fd5b506001600160a01b038135169060200135613456565b610508613580565b61053760048036036040811015610d4257600080fd5b5060ff8135169060200135613593565b61050861368f565b61053760048036036020811015610d7057600080fd5b5035613699565b61053760048036036020811015610d8d57600080fd5b5035613777565b610508613858565b61053760048036036020811015610db257600080fd5b5035613862565b61050860048036036020811015610dcf57600080fd5b503561393c565b61053760048036036040811015610dec57600080fd5b5080359060200135613947565b61055e60048036036020811015610e0f57600080fd5b5035613a38565b610508613a43565b6000610e2982613a56565b90505b919050565b610e39613af3565b610e41613b3e565b6001600160a01b0316631d5b277f6000805160206154a983398151915269199b1859d4995dd85c9960b21b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610eb157600080fd5b505af1158015610ec5573d6000803e3d6000fd5b50506040805184815290517fa31178ade19fb6a78fe78b68ebf820b88707e3bdbedbf77db4e80977800f39449350908190036020019150a150565b610f08613af3565b610f10613b3e565b604080516363daca0960e01b81526001600160a01b03929092166004830152703332b2a832b934b7b2223ab930ba34b7b760791b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916363daca09916064808301926000929190829003018186803b158015610f8c57600080fd5b505af4158015610fa0573d6000803e3d6000fd5b50506040805184815290517f791bd58dd9719b5eb5ccdd6ec4d5c459b0ab8efcf59b723cf477693c0889eacd9350908190036020019150a150565b6002546001600160a01b031681565b610ff2613af3565b610ffa613b3e565b60408051636d4851f160e01b81526001600160a01b039290921660048301526c69737375616e6365526174696f60981b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91636d4851f1916064808301926000929190829003018186803b15801561107257600080fd5b505af4158015611086573d6000803e3d6000fd5b50506040805184815290517f63b22e09cc3a33e847c063e35f887bd4ea96bc8c0f93f1f8c311e4fa6d8854529350908190036020019150a150565b6000610e2982613b5b565b60006110d6613c14565b90505b90565b60006110d6613c9d565b6110ee613af3565b6110f6613b3e565b60408051635d3045ab60e01b81526001600160a01b039290921660048301527f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91635d3045ab916084808301926000929190829003018186803b15801561118557600080fd5b505af4158015611199573d6000803e3d6000fd5b5050604080518581526020810185905281517f98698e41d9ebb66410ec490ae1224f1b8d1766696d7217fa96e067de3ef5332a9450908190039091019150a15050565b6111e4613af3565b6111ec613b3e565b60408051638134ddb760e01b81526001600160a01b039290921660048301527461746f6d696345786368616e67654665655261746560581b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91638134ddb7916084808301926000929190829003018186803b15801561127357600080fd5b505af4158015611287573d6000803e3d6000fd5b5050604080518581526020810185905281517f84023d924a8ccb4a028f052967ed7e1e642279c24150e018962f0779021fce4c9450908190039091019150a15050565b6112d2613af3565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006110d6613d1a565b60006110d6613d96565b611342613af3565b61134a613b3e565b60408051630e7bf1c560e01b81526001600160a01b039290921660048301527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91630e7bf1c5916064808301926000929190829003018186803b1580156113d257600080fd5b505af41580156113e6573d6000803e3d6000fd5b50506040805184815290517f6e65c7d32a9129ebc4e4e6d755e2a9668753c046f4b128ac8aeb4f3e5446a1e59350908190036020019150a150565b6000610e2982613e0c565b611434613af3565b8061147e576040805162461bcd60e51b815260206004820152601560248201527405468726573686f6c642063616e6e6f74206265203605c1b604482015290519081900360640190fd5b611486613b3e565b6001600160a01b0316631d5b277f6000805160206154a98339815191527f65786368616e676544796e616d69634665655468726573686f6c640000000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561150957600080fd5b505af115801561151d573d6000803e3d6000fd5b50506040805184815290517f0a1c77eb56927959639f898ae5258d25789fe6c36d7958d2c3daf3f1471d42d99350908190036020019150a150565b60006110d6613ec5565b61156a613af3565b611572613b3e565b604080516367f9fdd960e11b81526001600160a01b039290921660048301527573656c664c69717569646174696f6e50656e616c747960501b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163cff3fbb2916064808301926000929190829003018186803b1580156115f357600080fd5b505af4158015611607573d6000803e3d6000fd5b50506040805184815290517fcc1eff40ab461aae35275af10e50d93e6e37087e019f27e936816b62540168fe9350908190036020019150a150565b60006110d6613f3c565b60006110d6613fb4565b6000610e298261402a565b611669613af3565b611671613b3e565b60408051631faca50560e21b81526001600160a01b03929092166004830152716c69717569646174696f6e50656e616c747960701b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637eb29414916064808301926000929190829003018186803b1580156116ee57600080fd5b505af4158015611702573d6000803e3d6000fd5b50506040805184815290517fbfb22c07314f4682bba789860ceb851eb8cea2d867920332b2a42cf56be5b2e99350908190036020019150a150565b611745613af3565b61174d613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__631a5bb1f790916e65786368616e67654665655261746560881b878787876040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b0316815260200186815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509850505050505050505060006040518083038186803b15801561183957600080fd5b505af415801561184d573d6000803e3d6000fd5b506000925050505b838110156118c4577fbbdab54f0da6d720d21f53e4d6f5bbe83e5a2f74c1354175140ea74f8e90c77e85858381811061188a57fe5b9050602002013584848481811061189d57fe5b604080519485526020918202939093013590840152508051918290030190a1600101611855565b5050505050565b6000610e29826140d3565b600060606118e2612cc5565b905060005b81518110156119d75760008282815181106118fe57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561196657600080fd5b505afa15801561197a573d6000803e3d6000fd5b505050506040513d602081101561199057600080fd5b50516001600160a01b03161415806119bd57506000818152600360205260409020546001600160a01b0316155b156119ce57600093505050506110d9565b506001016118e7565b50600191505090565b6119e8613af3565b60006119f2613b3e565b6040805162856d3960e51b81526001600160a01b039290921660048301526e1d185c99d95d151a1c995cda1bdb19608a1b6024830152604482018490525173__$6a024fd1d0d065824004f6878746fc5d0d$__916310ada720916064808301926020929190829003018186803b158015611a6b57600080fd5b505af4158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b50516040805182815290519192507fb2b3a840c101d8e7f0cf8d80d3868976968714347038fe89b36c5031f94dab12919081900360200190a15050565b60006110d661418e565b6000610e2982614203565b611aef613af3565b611af7613b3e565b60408051636c5a980960e01b81526001600160a01b039290921660048301527f63726f7373436861696e53796e74685472616e73666572456e61626c65640000602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91636c5a9809916084808301926000929190829003018186803b158015611b8657600080fd5b505af4158015611b9a573d6000803e3d6000fd5b5050604080518581526020810185905281517f2f10f42e3d725e85dada13510e81fc571c49386ab4cd9152b12e2db2b0c04b729450908190039091019150a15050565b60006110d66142b4565b611bef613af3565b611bf7613b3e565b604080516339aafdf360e21b81526001600160a01b039290921660048301527465786368616e67654d617844796e616d696346656560581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163e6abf7cc916064808301926000929190829003018186803b158015611c7757600080fd5b505af4158015611c8b573d6000803e3d6000fd5b50506040805184815290517fd7764866d2b524c8fa50c82668b78d32bf7b46a87e37b891de9dd40853de464f9350908190036020019150a150565b611cce613af3565b80611d20576040805162461bcd60e51b815260206004820152601860248201527f5765696768742064656361792063616e6e6f7420626520300000000000000000604482015290519081900360640190fd5b611d28613b3e565b6001600160a01b0316631d5b277f6000805160206154a98339815191527f65786368616e676544796e616d69634665655765696768744465636179000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b50506040805184815290517fd80e77b0d087a975f2a783eb806eb9a1e93dab1bf148651d3e70c6e85d740eba9350908190036020019150a150565b611e02613af3565b611e0a613b3e565b60408051633e0ecceb60e11b81526001600160a01b03929092166004830152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b602483015282151560448301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637c1d99d6916064808301926000929190829003018186803b158015611e8b57600080fd5b505af4158015611e9f573d6000803e3d6000fd5b505060408051841515815290517fe11c1893b6f97decd3ac13637137734a4b75d159e899e5a8abb48470ab0bc4fd9350908190036020019150a150565b60006110d6614337565b6000611ef06143b3565b51905090565b611efe613af3565b611f06613b3e565b6001600160a01b0316631d5b277f6000805160206154a98339815191526e1b1a5c5d5a59185d1954995dd85c99608a1b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611f7b57600080fd5b505af1158015611f8f573d6000803e3d6000fd5b50506040805184815290517f6586b69a20f0202ee8802e307c1ca76ce96354ff6b1123d5d7fd3e9b0057e0359350908190036020019150a150565b6001546001600160a01b031681565b611fe1613af3565b611fe9613b3e565b60408051636a5b304360e01b81526001600160a01b0392909216600483015274736e784c69717569646174696f6e50656e616c747960581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91636a5b3043916064808301926000929190829003018186803b15801561206957600080fd5b505af415801561207d573d6000803e3d6000fd5b50506040805184815290517fe7a7d374b4557aa224d3675ac9b1abd0ac00b616e7b669db75d30d8582935bb39350908190036020019150a150565b6120c0613af3565b6120c8613b3e565b6040805163064c16cf60e21b81526001600160a01b039290921660048301527661746f6d69634d6178566f6c756d65506572426c6f636b60481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916319305b3c916064808301926000929190829003018186803b15801561214a57600080fd5b505af415801561215e573d6000803e3d6000fd5b50506040805184815290517ff96e059cb3386bb65fd1d80017c7ce524f813b012d7dc97a1252f9cd4f4c99f39350908190036020019150a150565b6000610e298261469d565b6121ac613af3565b6121b4613b3e565b60408051632cfaf72960e21b81526001600160a01b039290921660048301526f6c69717569646174696f6e44656c617960801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163b3ebdca4916064808301926000929190829003018186803b15801561222f57600080fd5b505af4158015612243573d6000803e3d6000fd5b50506040805184815290517f9917e32433edcb65f8982c1b2c26c3469468308456f93cf34b98c1b0459c53989350908190036020019150a150565b600073__$6a024fd1d0d065824004f6878746fc5d0d$__6375d0c0dc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156122c457600080fd5b505af41580156122d8573d6000803e3d6000fd5b505050506040513d60208110156122ee57600080fd5b5051905090565b6122fd613af3565b612305613b3e565b6040805163d4aebcef60e01b81526001600160a01b039290921660048301527464656274536e617073686f745374616c6554696d6560581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163d4aebcef916064808301926000929190829003018186803b15801561238557600080fd5b505af4158015612399573d6000803e3d6000fd5b50506040805184815290517f9795be9f1478ed09e9e47e67318b8aa7a0c0213170403191099bf7dd435fb4d79350908190036020019150a150565b6123dc613af3565b6123e4613b3e565b604080516341a7936f60e11b81526001600160a01b039290921660048301527077616974696e67506572696f645365637360781b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163834f26de916064808301926000929190829003018186803b15801561246057600080fd5b505af4158015612474573d6000803e3d6000fd5b50506040805184815290517fc32c92cac11e29883e0fb2d9e38230cc510e3bda48abc270b780de60bb8465f89350908190036020019150a150565b60006110d6614755565b6000610e29826147cb565b60606124ce612cc5565b905060005b81518110156126885760008282815181106124ea57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b838110156125a0578181015183820152602001612588565b50505050905090810190601f1680156125cd5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156125eb57600080fd5b505afa1580156125ff573d6000803e3d6000fd5b505050506040513d602081101561261557600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016124d3565b5050565b612694613af3565b61269c613b3e565b6040805163fe250a5560e01b81526001600160a01b03929092166004830152766574686572577261707065724d696e744665655261746560481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fe250a55916064808301926000929190829003018186803b15801561271e57600080fd5b505af4158015612732573d6000803e3d6000fd5b50506040805184815290517f19ef86e0422ac5c02afdc7b9f91f468ccc5e9b785bf7c158e01357e8503a819b9350908190036020019150a150565b6001546001600160a01b031633146127b65760405162461bcd60e51b81526004018080602001828103825260358152602001806154456035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b612831613af3565b612839613b3e565b6040805163fd194a3560e01b81526001600160a01b039290921660048301526e1c985d1954dd185b1954195c9a5bd9608a1b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fd194a35916064808301926000929190829003018186803b1580156128b357600080fd5b505af41580156128c7573d6000803e3d6000fd5b50506040805184815290517f16529d8c407b08938da67de7fa4319199baffce4f5d1971f812cc770b0237e669350908190036020019150a150565b61290a613af3565b612912613b3e565b604080516330d6e65760e21b81526001600160a01b0392831660048201527561676772656761746f725761726e696e67466c61677360501b602482015291831660448301525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163c35b995c916064808301926000929190829003018186803b15801561299357600080fd5b505af41580156129a7573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f0f4cbdee769ea02d5757b91905563555cc648fe42fc3ef201e28d97d2bbde9659350908190036020019150a150565b6129f3613af3565b6129fb613b3e565b6040805163067bb56d60e31b81526001600160a01b039290921660048301526f61746f6d69635477617057696e646f7760801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916333ddab68916064808301926000929190829003018186803b158015612a7657600080fd5b505af4158015612a8a573d6000803e3d6000fd5b50506040805184815290517f61ee2076e20b46130ce31de66f08321493e96f79de0837fb0296b7feca92285b9350908190036020019150a150565b6000612acf6143b3565b60400151905090565b60006110d6614886565b612aea613af3565b612af2613b3e565b60408051631b5238f760e31b81526001600160a01b0392831660048201526e636f6c6c617073654665655261746560881b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163da91c7b8916084808301926000929190829003018186803b158015612b7357600080fd5b505af4158015612b87573d6000803e3d6000fd5b50506040805184815290517f7e9498fa8cb2442ec5a6f05b47f4adaafaf286d03a3fa580cc0f3592b60b32359350908190036020019150a15050565b60006110d66148f6565b612bd5613af3565b612bdd613b3e565b60408051637c14e56b60e01b81526001600160a01b039290921660048301527f70757265436861696e6c696e6b466f7241746f6d696373456e61626c6564000060248301526044820184905282151560648301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637c14e56b916084808301926000929190829003018186803b158015612c6d57600080fd5b505af4158015612c81573d6000803e3d6000fd5b505060408051858152841515602082015281517fc39c526ec779c4ad9e0426c2a964a82134f99c4490e764153e19574c58b2ab539450908190039091019150a15050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110612d0757fe5b60200260200101818152505090565b6000546001600160a01b031681565b60006110d661496d565b612d37613af3565b612d3f613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__6311d78c0c90916f6c69717569646174696f6e526174696f60801b84612d816149ea565b612d89614a65565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b031681526020018581526020018481526020018381526020018281526020019550505050505060006040518083038186803b158015612deb57600080fd5b505af4158015612dff573d6000803e3d6000fd5b50506040805184815290517f5568be83e5cf7405adf8fb39305e2cdf49c43336606d23c3e0d3fe54e205150a9350908190036020019150a150565b6000610e2982614ad8565b6000610e2982614b7b565b612e58613af3565b612e60613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__63c404a0de909171777261707065724275726e4665655261746560701b8585612ea6886140d3565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019550505050505060006040518083038186803b158015612f1a57600080fd5b505af4158015612f2e573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517f65647551bef307c3b3c3cc08ff4dd60cf02eb1e9e9d20604c5603b90a453e4979450908190039091019150a15050565b60006110d6614c27565b60006110d6614c9d565b6000610e2982614d1a565b60006110d6614dcb565b612fab613af3565b612fb3613b3e565b60408051631f86e9a960e21b81526001600160a01b0392831660048201526f777261707065724d6178546f6b656e7360801b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637e1ba6a4916084808301926000929190829003018186803b15801561303557600080fd5b505af4158015613049573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517fc466f93337e5645290e02cdbed66a95340e81d809b710d8f6de2280de3e27b2f9450908190039091019150a15050565b60006110d6614a65565b60006110d6614e46565b60006110d6614ebe565b6130bb613af3565b6130c3613b3e565b60408051635f7ad87160e01b81526001600160a01b0392831660048201527f61746f6d69634571756976616c656e74466f7244657850726963696e6700000060248201526044810185905291831660648301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91635f7ad871916084808301926000929190829003018186803b15801561315257600080fd5b505af4158015613166573d6000803e3d6000fd5b5050604080518581526001600160a01b038516602082015281517fc7cff0a6f47777500050f9a29aac5206e15b25b782d1834a176f3b3b134d4f3a9450908190039091019150a15050565b6131b9613af3565b6131c1613b3e565b60408051637dfecb2360e11b81526001600160a01b0392831660048201526f696e746572616374696f6e44656c617960801b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fbfd9646916084808301926000929190829003018186803b15801561324357600080fd5b505af4158015613257573d6000803e3d6000fd5b50506040805184815290517f4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c23619350908190036020019150a15050565b60006110d6614f39565b6132a5613af3565b6132ad613b3e565b60408051630a6c461160e41b81526001600160a01b03929092166004830152710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163a6c46110916064808301926000929190829003018186803b15801561332a57600080fd5b505af415801561333e573d6000803e3d6000fd5b50506040805184815290517f8086de8bfec0a6cd9a9213caef7ee137a59e4d8da145de163dc3f244dacddc689350908190036020019150a150565b613381613af3565b613389613b3e565b6001600160a01b0316631d5b277f6000805160206154a98339815191527765786368616e676544796e616d6963466565526f756e647360401b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561340757600080fd5b505af115801561341b573d6000803e3d6000fd5b50506040805184815290517f098d0190950f074545dd4e10dda16c804bd054facc9ed1ec4181e076ab09bd479350908190036020019150a150565b61345e613af3565b613466613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__6353c0bf1c909171777261707065724d696e744665655261746560701b85856134ac886147cb565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019550505050505060006040518083038186803b15801561352057600080fd5b505af4158015613534573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517ffe7e17467e216f68f8d4a3aea0ab082631afc874fb216e93c38e52a2ddb7ec659450908190039091019150a15050565b600061358a6143b3565b60200151905090565b61359b613af3565b6135a3613b3e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__63f02d9a5b90916135d185614fb8565b846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001838152602001828152602001935050505060006040518083038186803b15801561362657600080fd5b505af415801561363a573d6000803e3d6000fd5b505050507fbf62a396f632016f0e0cffedb18ee9be41a161c79cee3b64736b0c97a924554a82826040518083600581111561367157fe5b60ff1681526020018281526020019250505060405180910390a15050565b60006110d6615161565b6136a1613af3565b6136a9613b3e565b6001600160a01b0316631d5b277f6000805160206154a9833981519152783634b8bab4b230ba34b7b722b9b1b937bba23ab930ba34b7b760391b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561372857600080fd5b505af115801561373c573d6000803e3d6000fd5b50506040805184815290517f9f268a84b9cb3eb37f078345457b36a34236602cd78eac0d9166e9e62579fef19350908190036020019150a150565b61377f613af3565b613787613b3e565b6040805163496d5d7960e11b81526001600160a01b03929092166004830152766574686572577261707065724275726e4665655261746560481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916392dabaf2916064808301926000929190829003018186803b15801561380957600080fd5b505af415801561381d573d6000803e3d6000fd5b50506040805184815290517f1c97c2e8b44aa487062d3e92ce52ac814b35191f4799fd2d5a3f36c67f1d9d4a9350908190036020019150a150565b60006110d66149ea565b61386a613af3565b613872613b3e565b6040805163d9158b0360e01b81526001600160a01b039290921660048301526f6d696e696d756d5374616b6554696d6560801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163d9158b03916064808301926000929190829003018186803b1580156138ed57600080fd5b505af4158015613901573d6000803e3d6000fd5b50506040805184815290517f2b0fa66d155c9598699cb6569577f27b95729bbf580268eed39db6bc4e8144779350908190036020019150a150565b6000610e29826151d6565b61394f613af3565b613957613b3e565b6040805163446ca4fd60e01b81526001600160a01b0392909216600483015277185d1bdb5a58d59bdb155c19185d19551a1c995cda1bdb1960421b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163446ca4fd916084808301926000929190829003018186803b1580156139e157600080fd5b505af41580156139f5573d6000803e3d6000fd5b5050604080518581526020810185905281517f460476cc6f40e86f19053ba74c9baf4c2cef96452bb2722a454d66db953a7b3d9450908190039091019150a15050565b6000610e2982615287565b6000613a4d6143b3565b60600151905090565b6000613a60613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152613a8685614fb8565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b505afa158015613ad5573d6000803e3d6000fd5b505050506040513d6020811015613aeb57600080fd5b505192915050565b6000546001600160a01b03163314613b3c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061547a602f913960400191505060405180910390fd5b565b60006110d66e466c657869626c6553746f7261676560881b615338565b6000613b65613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f696e746572616374696f6e44656c617960801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000613c1e613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b505afa1580156122d8573d6000803e3d6000fd5b6000613ca7613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152766574686572577261707065724d696e744665655261746560481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613d24613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613da0613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613e16613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f777261707065724d6178546f6b656e7360801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000613ecf613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152703332b2a832b934b7b2223ab930ba34b7b760791b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613f46613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000613fbe613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614034613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527461746f6d696345786368616e67654665655261746560581b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b60006140dd613b3e565b6001600160a01b031663c4f610ed6000805160206154a983398151915271777261707065724d696e744665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614198613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b600061420d613b3e565b6001600160a01b031663d994502d6000805160206154a98339815191527f70757265436861696e6c696e6b466f7241746f6d696373456e61626c65640000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b60006142be613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614341613b3e565b6001600160a01b0316639ee5955a6000805160206154a98339815191527561676772656761746f725761726e696e67466c61677360501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6143bb61541c565b60408051600480825260a08201909252606091602082016080803883390190505090507f65786368616e676544796e616d69634665655468726573686f6c6400000000008160008151811061440c57fe5b6020026020010181815250507f65786368616e676544796e616d696346656557656967687444656361790000008160018151811061444657fe5b6020026020010181815250507765786368616e676544796e616d6963466565526f756e647360401b8160028151811061447b57fe5b6020026020010181815250507465786368616e67654d617844796e616d696346656560581b816003815181106144ad57fe5b60200260200101818152505060606144c3613b3e565b6001600160a01b031663b67fa7ed6000805160206154a9833981519152846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561453657818101518382015260200161451e565b50505050905001935050505060006040518083038186803b15801561455a57600080fd5b505afa15801561456e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561459757600080fd5b81019080805160405193929190846401000000008211156145b757600080fd5b9083019060208201858111156145cc57600080fd5b82518660208202830111640100000000821117156145e957600080fd5b82525081516020918201928201910280838360005b838110156146165781810151838201526020016145fe565b50505050905001604052505050905060405180608001604052808260008151811061463d57fe5b602002602001015181526020018260018151811061465757fe5b602002602001015181526020018260028151811061467157fe5b602002602001015181526020018260038151811061468b57fe5b60200260200101518152509250505090565b60006146a7613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e636f6c6c617073654665655261746560881b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b600061475f613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f61746f6d69635477617057696e646f7760801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b60006147d5613b3e565b6001600160a01b031663c4f610ed6000805160206154a983398151915271777261707065724275726e4665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614890613b3e565b6001600160a01b03166323257c2b6000805160206154a983398151915269199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614900613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614977613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152766574686572577261707065724275726e4665655261746560481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b60006149f4613b3e565b6001600160a01b03166323257c2b6000805160206154a983398151915274736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614a6f613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614ae2613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e65786368616e67654665655261746560881b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614b85613b3e565b6001600160a01b03166323257c2b6000805160206154a983398151915277185d1bdb5a58d59bdb155c19185d19551a1c995cda1bdb1960421b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614c31613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614ca7613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527661746f6d69634d6178566f6c756d65506572426c6f636b60481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614d24613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000614dd5613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614e50613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614ec8613b3e565b6001600160a01b031663d994502d6000805160206154a9833981519152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b6000614f43613b3e565b6001600160a01b03166323257c2b6000805160206154a9833981519152783634b8bab4b230ba34b7b722b9b1b937bba23ab930ba34b7b760391b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b600080826005811115614fc757fe5b1415614ff457507f63726f7373446f6d61696e4465706f7369744761734c696d6974000000000000610e2c565b600182600581111561500257fe5b141561502f57507f63726f7373446f6d61696e457363726f774761734c696d697400000000000000610e2c565b600282600581111561503d57fe5b141561506a57507f63726f7373446f6d61696e5265776172644761734c696d697400000000000000610e2c565b600382600581111561507857fe5b14156150a557507f63726f7373446f6d61696e5769746864726177616c4761734c696d6974000000610e2c565b60058260058111156150b357fe5b14156150e057507f63726f7373446f6d61696e52656c61794761734c696d69740000000000000000610e2c565b60048260058111156150ee57fe5b141561511b57507f63726f7373446f6d61696e436c6f73654761734c696d69740000000000000000610e2c565b6040805162461bcd60e51b8152602060048201526016602482015275556e6b6e6f776e20676173206c696d6974207479706560501b604482015290519081900360640190fd5b600061516b613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191526e1d185c99d95d151a1c995cda1bdb19608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613c8957600080fd5b60006151e0613b3e565b6001600160a01b03166323257c2b6000805160206154a98339815191527f63726f7373436861696e53796e74685472616e73666572456e61626c65640000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b6000615291613b3e565b6001600160a01b0316639ee5955a6000805160206154a98339815191527f61746f6d69634571756976616c656e74466f7244657850726963696e67000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015613ac157600080fd5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816154155760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153da5781810151838201526020016153c2565b50505050905090810190601f1680156154075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e53797374656d53657474696e6773000000000000000000000000000000000000a265627a7a723158200b8b315373443f7888eb35ce12767b8289579f3dca6072264716f3350cc984c964736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "flags",
							"type": "address"
						}
					],
					"name": "AggregatorWarningFlagsUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "equivalent",
							"type": "address"
						}
					],
					"name": "AtomicEquivalentForDexPricingUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newExchangeFeeRate",
							"type": "uint256"
						}
					],
					"name": "AtomicExchangeFeeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newMaxVolume",
							"type": "uint256"
						}
					],
					"name": "AtomicMaxVolumePerBlockUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newWindow",
							"type": "uint256"
						}
					],
					"name": "AtomicTwapWindowUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newVolatilityConsiderationWindow",
							"type": "uint256"
						}
					],
					"name": "AtomicVolatilityConsiderationWindowUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newVolatilityUpdateThreshold",
							"type": "uint256"
						}
					],
					"name": "AtomicVolatilityUpdateThresholdUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collapseFeeRate",
							"type": "uint256"
						}
					],
					"name": "CollapseFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "CrossChainSynthTransferEnabledUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "gasLimitType",
							"type": "uint8"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newLimit",
							"type": "uint256"
						}
					],
					"name": "CrossDomainMessageGasLimitChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "debtSnapshotStaleTime",
							"type": "uint256"
						}
					],
					"name": "DebtSnapshotStaleTimeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "EtherWrapperBurnFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxETH",
							"type": "uint256"
						}
					],
					"name": "EtherWrapperMaxETHUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "EtherWrapperMintFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "dynamicFeeRounds",
							"type": "uint256"
						}
					],
					"name": "ExchangeDynamicFeeRoundsUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "dynamicFeeThreshold",
							"type": "uint256"
						}
					],
					"name": "ExchangeDynamicFeeThresholdUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "dynamicFeeWeightDecay",
							"type": "uint256"
						}
					],
					"name": "ExchangeDynamicFeeWeightDecayUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newExchangeFeeRate",
							"type": "uint256"
						}
					],
					"name": "ExchangeFeeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxDynamicFee",
							"type": "uint256"
						}
					],
					"name": "ExchangeMaxDynamicFeeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newFeePeriodDuration",
							"type": "uint256"
						}
					],
					"name": "FeePeriodDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newReward",
							"type": "uint256"
						}
					],
					"name": "FlagRewardUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "interactionDelay",
							"type": "uint256"
						}
					],
					"name": "InteractionDelayUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRatio",
							"type": "uint256"
						}
					],
					"name": "IssuanceRatioUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newReward",
							"type": "uint256"
						}
					],
					"name": "LiquidateRewardUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDelay",
							"type": "uint256"
						}
					],
					"name": "LiquidationDelayUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "LiquidationEscrowDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newPenalty",
							"type": "uint256"
						}
					],
					"name": "LiquidationPenaltyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRatio",
							"type": "uint256"
						}
					],
					"name": "LiquidationRatioUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minimumStakeTime",
							"type": "uint256"
						}
					],
					"name": "MinimumStakeTimeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "threshold",
							"type": "uint256"
						}
					],
					"name": "PriceDeviationThresholdUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "enabled",
							"type": "bool"
						}
					],
					"name": "PureChainlinkPriceForAtomicSwapsEnabledUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rateStalePeriod",
							"type": "uint256"
						}
					],
					"name": "RateStalePeriodUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newPenalty",
							"type": "uint256"
						}
					],
					"name": "SelfLiquidationPenaltyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newPenalty",
							"type": "uint256"
						}
					],
					"name": "SnxLiquidationPenaltyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newTargetThreshold",
							"type": "uint256"
						}
					],
					"name": "TargetThresholdUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "enabled",
							"type": "bool"
						}
					],
					"name": "TradingRewardsEnabled",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "waitingPeriodSecs",
							"type": "uint256"
						}
					],
					"name": "WaitingPeriodSecsUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "rate",
							"type": "int256"
						}
					],
					"name": "WrapperBurnFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxTokenAmount",
							"type": "uint256"
						}
					],
					"name": "WrapperMaxTokenAmountUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "rate",
							"type": "int256"
						}
					],
					"name": "WrapperMintFeeRateUpdated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "aggregatorWarningFlags",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicEquivalentForDexPricing",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicExchangeFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "atomicMaxVolumePerBlock",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "atomicTwapWindow",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicVolatilityConsiderationWindow",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicVolatilityUpdateThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "collapseFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "crossChainSynthTransferEnabled",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "gasLimitType",
							"type": "uint8"
						}
					],
					"name": "crossDomainMessageGasLimit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtSnapshotStaleTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "etherWrapperBurnFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "etherWrapperMaxETH",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "etherWrapperMintFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeDynamicFeeRounds",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeDynamicFeeThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeDynamicFeeWeightDecay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchangeFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeMaxDynamicFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePeriodDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "flagReward",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "interactionDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidateReward",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationEscrowDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minimumStakeTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "priceDeviationThresholdFactor",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "pureChainlinkPriceForAtomicSwapsEnabled",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rateStalePeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "selfLiquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_flags",
							"type": "address"
						}
					],
					"name": "setAggregatorWarningFlags",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "_equivalent",
							"type": "address"
						}
					],
					"name": "setAtomicEquivalentForDexPricing",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_exchangeFeeRate",
							"type": "uint256"
						}
					],
					"name": "setAtomicExchangeFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxVolume",
							"type": "uint256"
						}
					],
					"name": "setAtomicMaxVolumePerBlock",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_window",
							"type": "uint256"
						}
					],
					"name": "setAtomicTwapWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_window",
							"type": "uint256"
						}
					],
					"name": "setAtomicVolatilityConsiderationWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_threshold",
							"type": "uint256"
						}
					],
					"name": "setAtomicVolatilityUpdateThreshold",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_collateral",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_collapseFeeRate",
							"type": "uint256"
						}
					],
					"name": "setCollapseFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_value",
							"type": "uint256"
						}
					],
					"name": "setCrossChainSynthTransferEnabled",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "_gasLimitType",
							"type": "uint8"
						},
						{
							"internalType": "uint256",
							"name": "_crossDomainMessageGasLimit",
							"type": "uint256"
						}
					],
					"name": "setCrossDomainMessageGasLimit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_seconds",
							"type": "uint256"
						}
					],
					"name": "setDebtSnapshotStaleTime",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_rate",
							"type": "uint256"
						}
					],
					"name": "setEtherWrapperBurnFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxETH",
							"type": "uint256"
						}
					],
					"name": "setEtherWrapperMaxETH",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_rate",
							"type": "uint256"
						}
					],
					"name": "setEtherWrapperMintFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rounds",
							"type": "uint256"
						}
					],
					"name": "setExchangeDynamicFeeRounds",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "threshold",
							"type": "uint256"
						}
					],
					"name": "setExchangeDynamicFeeThreshold",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "weightDecay",
							"type": "uint256"
						}
					],
					"name": "setExchangeDynamicFeeWeightDecay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "exchangeFeeRates",
							"type": "uint256[]"
						}
					],
					"name": "setExchangeFeeRateForSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "maxFee",
							"type": "uint256"
						}
					],
					"name": "setExchangeMaxDynamicFee",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_feePeriodDuration",
							"type": "uint256"
						}
					],
					"name": "setFeePeriodDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "setFlagReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_collateral",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_interactionDelay",
							"type": "uint256"
						}
					],
					"name": "setInteractionDelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "setIssuanceRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "setLiquidateReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "setLiquidationDelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setLiquidationEscrowDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "penalty",
							"type": "uint256"
						}
					],
					"name": "setLiquidationPenalty",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_liquidationRatio",
							"type": "uint256"
						}
					],
					"name": "setLiquidationRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_seconds",
							"type": "uint256"
						}
					],
					"name": "setMinimumStakeTime",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_priceDeviationThresholdFactor",
							"type": "uint256"
						}
					],
					"name": "setPriceDeviationThresholdFactor",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "_enabled",
							"type": "bool"
						}
					],
					"name": "setPureChainlinkPriceForAtomicSwapsEnabled",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "period",
							"type": "uint256"
						}
					],
					"name": "setRateStalePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "penalty",
							"type": "uint256"
						}
					],
					"name": "setSelfLiquidationPenalty",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "penalty",
							"type": "uint256"
						}
					],
					"name": "setSnxLiquidationPenalty",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "percent",
							"type": "uint256"
						}
					],
					"name": "setTargetThreshold",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_tradingRewardsEnabled",
							"type": "bool"
						}
					],
					"name": "setTradingRewardsEnabled",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_waitingPeriodSecs",
							"type": "uint256"
						}
					],
					"name": "setWaitingPeriodSecs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_wrapper",
							"type": "address"
						},
						{
							"internalType": "int256",
							"name": "_rate",
							"type": "int256"
						}
					],
					"name": "setWrapperBurnFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_wrapper",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_maxTokenAmount",
							"type": "uint256"
						}
					],
					"name": "setWrapperMaxTokenAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_wrapper",
							"type": "address"
						},
						{
							"internalType": "int256",
							"name": "_rate",
							"type": "int256"
						}
					],
					"name": "setWrapperMintFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "snxLiquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "targetThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tradingRewardsEnabled",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "waitingPeriodSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						}
					],
					"name": "wrapperBurnFeeRate",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						}
					],
					"name": "wrapperMaxTokenAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "wrapper",
							"type": "address"
						}
					],
					"name": "wrapperMintFeeRate",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xc78f371d395251ef1ee8c1305b485d38f084d31530560e802f5fc5147fe83451",
				"urls": [
					"bzz-raw://b9b7c2da32665fe30504f32be96c7cf326aa8ea84f34050aa6c338525be15fdc",
					"dweb:/ipfs/QmRD7KH7LH9Cy7kxUyK6y9zNDAXkNo737wFAjHmyPANDF3"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SystemSettings.sol": "SystemSettings"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SystemSettings.sol": {
						"keccak256": "0xc78f371d395251ef1ee8c1305b485d38f084d31530560e802f5fc5147fe83451",
						"urls": [
							"bzz-raw://b9b7c2da32665fe30504f32be96c7cf326aa8ea84f34050aa6c338525be15fdc",
							"dweb:/ipfs/QmRD7KH7LH9Cy7kxUyK6y9zNDAXkNo737wFAjHmyPANDF3"
						]
					}
				},
				"version": 1
			}
		},
		"SystemStatus": {
			"bytecode": "608060405234801561001057600080fd5b506040516128193803806128198339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505061271f806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106103835760003560e01c80636309a10c116101de578063a55ce9c51161010f578063e470df58116100ad578063f405f65a1161007c578063f405f65a14610d61578063f44d1e0b14610d69578063f4c80f5e14610d71578063f8b4b08414610d8e57610383565b8063e470df5814610cb1578063e665edf014610cce578063e91e691814610d3c578063f161620714610d5957610383565b8063b9a49869116100e9578063b9a4986914610bb0578063c0eee44314610c1e578063da5917ae14610c26578063de1b885114610c4357610383565b8063a55ce9c514610b68578063abc0bb6e14610b70578063b431c0ea14610b9357610383565b80637c3125411161017c5780638da5cb5b116101565780638da5cb5b14610b1757806394c79f7414610b1f5780639f8a95ba14610b3c578063a0aad31c14610b6057610383565b80637c31254114610a845780637fe9b23d14610a8c578063856aae6c14610afa57610383565b80636ef5d841116101b85780636ef5d841146109505780637118d43114610a575780637243bc2c14610a5f57806379ba509714610a7c57610383565b80636309a10c146108bd57806367a280b2146108da57806369eaced2146108e257610383565b80632dd8afdb116102b85780634abdb44d1161025657806355585bce1161023057806355585bce1461088257806356c3da451461088a5780636132eba414610892578063614d08f8146108b557610383565b80634abdb44d146106f8578063517d60c61461070057806353a47bb71461085e57610383565b8063396e258e11610292578063396e258e1461065f57806342a28e211461067c57806348bf1971146106995780634a661850146106d557610383565b80632dd8afdb146106335780632e8d0b9e1461063b578063346cde511461065757610383565b80631ce00ba21161032557806322264567116102ff578063222645671461057d5780632366245e146105a05780632a647ab7146105a85780632be470901461061657610383565b80631ce00ba2146104a55780631f4b3401146104c857806320f2bf001461053657610383565b80631588e817116103615780631588e817146103b45780631627540c146103d1578063180113bc146103f75780631cba727c1461043757610383565b8063086dabd11461038857806312bde51414610392578063157c51d3146103ac575b600080fd5b610390610d96565b005b61039a610da0565b60408051918252519081900360200190f35b610390610dad565b610390600480360360208110156103ca57600080fd5b5035610e17565b610390600480360360208110156103e757600080fd5b50356001600160a01b0316610e82565b6104146004803603602081101561040d57600080fd5b5035610ede565b6040805192151583526001600160f81b0390911660208301528051918290030190f35b6103906004803603604081101561044d57600080fd5b810190602081018135600160201b81111561046757600080fd5b82018360208201111561047957600080fd5b803590602001918460208302840111600160201b8311171561049a57600080fd5b919350915035610f03565b610390600480360360408110156104bb57600080fd5b5080359060200135610f46565b610390600480360360208110156104de57600080fd5b810190602081018135600160201b8111156104f857600080fd5b82018360208201111561050a57600080fd5b803590602001918460208302840111600160201b8311171561052b57600080fd5b509092509050610f7e565b6105626004803603604081101561054c57600080fd5b50803590602001356001600160a01b0316610fba565b60408051921515835290151560208301528051918290030190f35b6103906004803603604081101561059357600080fd5b5080359060200135610fe3565b610414611029565b610390600480360360408110156105be57600080fd5b810190602081018135600160201b8111156105d857600080fd5b8201836020820111156105ea57600080fd5b803590602001918460208302840111600160201b8311171561060b57600080fd5b919350915035611042565b6103906004803603602081101561062c57600080fd5b5035611080565b6104146110ea565b610643611103565b604080519115158252519081900360200190f35b61041461112d565b6103906004803603602081101561067557600080fd5b5035611146565b6103906004803603602081101561069257600080fd5b50356111b1565b610390600480360360808110156106af57600080fd5b508035906001600160a01b036020820135169060408101351515906060013515156111c5565b610390600480360360408110156106eb57600080fd5b50803590602001356111df565b61039a611225565b6103906004803603608081101561071657600080fd5b810190602081018135600160201b81111561073057600080fd5b82018360208201111561074257600080fd5b803590602001918460208302840111600160201b8311171561076357600080fd5b919390929091602081019035600160201b81111561078057600080fd5b82018360208201111561079257600080fd5b803590602001918460208302840111600160201b831117156107b357600080fd5b919390929091602081019035600160201b8111156107d057600080fd5b8201836020820111156107e257600080fd5b803590602001918460208302840111600160201b8311171561080357600080fd5b919390929091602081019035600160201b81111561082057600080fd5b82018360208201111561083257600080fd5b803590602001918460208302840111600160201b8311171561085357600080fd5b509092509050611234565b610866611325565b604080516001600160a01b039092168252519081900360200190f35b610390611334565b61039a61139f565b610390600480360360408110156108a857600080fd5b50803590602001356113ad565b61039a6113b5565b610390600480360360208110156108d357600080fd5b50356113c8565b61039061140d565b610390600480360360208110156108f857600080fd5b810190602081018135600160201b81111561091257600080fd5b82018360208201111561092457600080fd5b803590602001918460208302840111600160201b8311171561094557600080fd5b509092509050611479565b6109be6004803603602081101561096657600080fd5b810190602081018135600160201b81111561098057600080fd5b82018360208201111561099257600080fd5b803590602001918460208302840111600160201b831117156109b357600080fd5b5090925090506114b5565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610a025781810151838201526020016109ea565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a41578181015183820152602001610a29565b5050505090500194505050505060405180910390f35b6103906115de565b61041460048036036020811015610a7557600080fd5b50356115ee565b610390611613565b6103906116cf565b61039060048036036040811015610aa257600080fd5b810190602081018135600160201b811115610abc57600080fd5b820183602082011115610ace57600080fd5b803590602001918460208302840111600160201b83111715610aef57600080fd5b9193509150356116df565b61039060048036036020811015610b1057600080fd5b503561171d565b61086661173e565b61039060048036036020811015610b3557600080fd5b503561174d565b610b44611792565b604080516001600160f81b039092168252519081900360200190f35b610390611797565b61039a6117af565b61039060048036036040811015610b8657600080fd5b50803590602001356117c3565b61064360048036036020811015610ba957600080fd5b5035611809565b6109be60048036036020811015610bc657600080fd5b810190602081018135600160201b811115610be057600080fd5b820183602082011115610bf257600080fd5b803590602001918460208302840111600160201b83111715610c1357600080fd5b509092509050611831565b610643611952565b61039060048036036020811015610c3c57600080fd5b503561195b565b61039060048036036020811015610c5957600080fd5b810190602081018135600160201b811115610c7357600080fd5b820183602082011115610c8557600080fd5b803590602001918460208302840111600160201b83111715610ca657600080fd5b50909250905061196c565b61039060048036036020811015610cc757600080fd5b50356119a8565b6109be60048036036020811015610ce457600080fd5b810190602081018135600160201b811115610cfe57600080fd5b820183602082011115610d1057600080fd5b803590602001918460208302840111600160201b83111715610d3157600080fd5b509092509050611a1d565b61041460048036036020811015610d5257600080fd5b5035611b3e565b61039a611b63565b610390611b72565b61039a611bde565b61039060048036036020811015610d8757600080fd5b5035611bea565b610414611c2f565b610d9e611c48565b565b6553797374656d60d01b81565b610dbf6553797374656d60d01b611d27565b6003805460ff191690819055604080516101009092046001600160f81b03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b610e2b6745786368616e676560c01b611d84565b600580546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b610e8a611ddc565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60096020526000908152604090205460ff81169061010090046001600160f81b031682565b610f41838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611e25915050565b505050565b610f4e611c48565b610f56611ed3565b610f5f82611f15565b610f6881611f15565b610f7182611f63565b610f7a81611f63565b5050565b610f7a828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611fb192505050565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061101357fe5b602002602001018181525050610f418183612059565b60045460ff81169061010090046001600160f81b031682565b610f41838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612059915050565b611093664675747572657360c81b611d84565b600680546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fbb77bf6af5bb933d0fb912130167ce25b6debb9c728f232ee4e7c181f16c8e0c9181900360200190a150565b60035460ff81169061010090046001600160f81b031682565b60035460009060ff168015611128575060035461010090046001600160f81b03166001145b905090565b60065460ff81169061010090046001600160f81b031682565b61115a6749737375616e636560c01b611d84565b600480546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b6111b9611c48565b6111c281611f63565b50565b6111cd611ddc565b6111d984848484612101565b50505050565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061120f57fe5b602002602001018181525050610f418183611e25565b6749737375616e636560c01b81565b61123c611ddc565b868514801561124a57508483145b801561125557508281145b6112a6576040805162461bcd60e51b815260206004820152601e60248201527f496e707574206172726179206c656e67746873206d757374206d617463680000604482015290519081900360640190fd5b60005b8781101561131a576113128989838181106112c057fe5b905060200201358888848181106112d357fe5b905060200201356001600160a01b03168787858181106112ef57fe5b90506020020135151586868681811061130457fe5b905060200201351515612101565b6001016112a9565b505050505050505050565b6001546001600160a01b031681565b611347664675747572657360c81b611d27565b6006805460ff191690819055604080516101009092046001600160f81b03168252517fcbdc17547b5be7fb4a78666d4253509496561d5b1088a019865bd70d7e248fa6916020908290030190a16006805460ff169055565b664675747572657360c81b81565b610f68611c48565b6b53797374656d53746174757360a01b81565b6040805160018082528183019092526060916020808301908038833901905050905081816000815181106113f857fe5b602002602001018181525050610f7a81612247565b6114216749737375616e636560c01b611d27565b6004805460ff191690819055604080516101009092046001600160f81b03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b610f7a82828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061224792505050565b606080838390506040519080825280602002602001820160405280156114e5578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611512578160200160208202803883390190505b50905060005b838110156115d6576009600086868481811061153057fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff1683828151811061156257fe5b911515602092830291909101909101526009600086868481811061158257fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b03168282815181106115c357fe5b6020908102919091010152600101611518565b509250929050565b6115e6611c48565b610d9e611ed3565b60086020526000908152604090205460ff81169061010090046001600160f81b031682565b6001546001600160a01b0316331461165c5760405162461bcd60e51b815260040180806020018281038252603581526020018061251d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6116d7611c48565b610d9e6122f5565b610f41838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612337915050565b611725611c48565b61172d611ed3565b6117356123dd565b6111c28161241f565b6000546001600160a01b031681565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811061177d57fe5b602002602001018181525050610f7a81612476565b600181565b61179f611c48565b6117a7611ed3565b610d9e6123dd565b6c53796e746845786368616e676560981b81565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106117f357fe5b602002602001018181525050610f418183612337565b60035460009060ff168061182b575060008281526008602052604090205460ff165b92915050565b60608083839050604051908082528060200260200182016040528015611861578160200160208202803883390190505b5060408051858152602080870282010190915290925083801561188e578160200160208202803883390190505b50905060005b838110156115d657600860008686848181106118ac57fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff168382815181106118de57fe5b91151560209283029190910190910152600860008686848181106118fe57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061193f57fe5b6020908102919091010152600101611894565b60035460ff1690565b611963611c48565b6111c281611f15565b610f7a82828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061247692505050565b6119ba6553797374656d60d01b611d84565b600380546001600160f81b0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b60608083839050604051908082528060200260200182016040528015611a4d578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611a7a578160200160208202803883390190505b50905060005b838110156115d65760076000868684818110611a9857fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff16838281518110611aca57fe5b9115156020928302919091019091015260076000868684818110611aea57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b0316828281518110611b2b57fe5b6020908102919091010152600101611a80565b60076020526000908152604090205460ff81169061010090046001600160f81b031682565b6745786368616e676560c01b81565b611b866745786368616e676560c01b611d27565b6005805460ff191690819055604080516101009092046001600160f81b03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b640a6f2dce8d60db1b81565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110611c1a57fe5b602002602001018181525050610f7a81611fb1565b60055460ff81169061010090046001600160f81b031682565b60035460ff8116159061010090046001600160f81b0316600114611c84576040518060600160405280602c8152602001612659602c9139611c9e565b6040518060600160405280603e8152602001612685603e91395b906111c25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cec578181015183820152602001611cd4565b50505050905090810190601f168015611d195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600260209081526040808320338452909152902054610100900460ff166111c25760405162461bcd60e51b81526004018080602001828103825260218152602001806126386021913960400191505060405180910390fd5b600081815260026020908152604080832033845290915290205460ff166111c25760405162461bcd60e51b81526004018080602001828103825260218152602001806126386021913960400191505060405180910390fd5b6000546001600160a01b03163314610d9e5760405162461bcd60e51b815260040180806020018281038252602f8152602001806125de602f913960400191505060405180910390fd5b611e3e6c53796e746845786368616e676560981b611d84565b60005b8251811015610f41576000838281518110611e5857fe5b60209081029190910181015160008181526007835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcea0da706e9f2a6a1cb56cdab42ac548791339f1710deadf814f15fc0a6a7114928290030190a150600101611e41565b60055460ff1615610d9e5760405162461bcd60e51b815260040180806020018281038252602b81526020018061260d602b913960400191505060405180910390fd5b60008181526007602052604090205460ff16156111c25760405162461bcd60e51b815260040180806020018281038252602e81526020018061257d602e913960400191505060405180910390fd5b60008181526008602052604090205460ff16156111c25760405162461bcd60e51b81526004018080602001828103825260288152602001806126c36028913960400191505060405180910390fd5b611fc4664675747572657360c81b611d27565b60005b8151811015610f7a576000828281518110611fde57fe5b6020908102919091018101516000818152600983526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f250fcb5d34afaf9bc18ec9ca0bf709e0f2ecb8ae4d4a3a616c0bf54b2ddf53e6928290030190a1600090815260096020526040812055600101611fc7565b61206c664675747572657360c81b611d84565b60005b8251811015610f4157600083828151811061208657fe5b60209081029190910181015160008181526009835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcaa561b71353382b62092c429c14613b5db8f9c5f3a27cb51df16e51f350f8ca928290030190a15060010161206f565b6553797374656d60d01b84148061212257506749737375616e636560c01b84145b8061213757506745786368616e676560c01b84145b8061214b5750664675747572657360c81b84145b8061216557506c53796e746845786368616e676560981b84145b806121775750640a6f2dce8d60db1b84145b6121c8576040805162461bcd60e51b815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083206001600160a01b038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b6122606c53796e746845786368616e676560981b611d27565b60005b8151811015610f7a57600082828151811061227a57fe5b6020908102919091018101516000818152600783526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f91037f810fbf9c3c6d5573650d27de6b5e8d2187698822700d4524102472bc08928290030190a1600090815260076020526040812055600101612263565b60045460ff1615610d9e5760405162461bcd60e51b815260040180806020018281038252602b815260200180612552602b913960400191505060405180910390fd5b612348640a6f2dce8d60db1b611d84565b60005b8251811015610f4157600083828151811061236257fe5b60209081029190910181015160008181526008835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507f9cca506f9028bbcc0d976db0eaf80dfe6a6d7cadd99024edd88f690e1eda5541928290030190a15060010161234b565b60065460ff1615610d9e5760405162461bcd60e51b81526004018080602001828103825260338152602001806125ab6033913960400191505060405180910390fd5b60008181526009602052604090205460ff16156111c2576040805162461bcd60e51b815260206004820152601060248201526f13585c9ad95d081cdd5cdc195b99195960821b604482015290519081900360640190fd5b612487640a6f2dce8d60db1b611d27565b60005b8151811015610f7a5760008282815181106124a157fe5b6020908102919091018101516000818152600883526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f691b6c9654fa1f01847f7e98a061557ca10378bb9670782b60ed13891703d220928290030190a160009081526008602052604081205560010161248a56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697049737375616e63652069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e74682065786368616e67652073757370656e6465642e204f7065726174696f6e2070726f6869626974656446757475726573206d61726b657473206172652073757370656e6465642e204f7065726174696f6e2070726f686962697465644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e45786368616e67652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465645265737472696374656420746f2061636365737320636f6e74726f6c206c69737453796e7468657469782069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e7468657469782069732073757370656e6465642c207570677261646520696e2070726f67726573732e2e2e20706c65617365207374616e6420627953796e74682069732073757370656e6465642e204f7065726174696f6e2070726f68696269746564a265627a7a723158202225676251b5f53c6aeb0b703bd197b625c299226f79ad58e087f41a4b1e20ad64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "section",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"name": "AccessControlUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "ExchangeResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "ExchangeSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "FuturesMarketResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "FuturesMarketSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "FuturesResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "FuturesSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "IssuanceResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "IssuanceSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SynthExchangeResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SynthExchangeSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SynthResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SynthSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SystemResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SystemSuspended",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_EXCHANGE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_FUTURES",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_ISSUANCE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_SYNTH",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_SYNTH_EXCHANGE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_SYSTEM",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SUSPENSION_REASON_UPGRADE",
					"outputs": [
						{
							"internalType": "uint248",
							"name": "",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "accessControl",
					"outputs": [
						{
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "futuresMarketSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "futuresSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						}
					],
					"name": "getFuturesMarketSuspensions",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "suspensions",
							"type": "bool[]"
						},
						{
							"internalType": "uint256[]",
							"name": "reasons",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synths",
							"type": "bytes32[]"
						}
					],
					"name": "getSynthExchangeSuspensions",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "exchangeSuspensions",
							"type": "bool[]"
						},
						{
							"internalType": "uint256[]",
							"name": "reasons",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synths",
							"type": "bytes32[]"
						}
					],
					"name": "getSynthSuspensions",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "suspensions",
							"type": "bool[]"
						},
						{
							"internalType": "uint256[]",
							"name": "reasons",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isSystemUpgrading",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireExchangeActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireExchangeBetweenSynthsAllowed",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireFuturesActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "requireFuturesMarketActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireIssuanceActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireSynthActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireSynthExchangeActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireSynthsActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireSystemActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeFutures",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "resumeFuturesMarket",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resumeFuturesMarkets",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeIssuance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "resumeSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "resumeSynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resumeSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resumeSynthsExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeSystem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendFutures",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendFuturesMarket",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendFuturesMarkets",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendIssuance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSynthsExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSystem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthExchangeSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "synthSuspended",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "systemSuspended",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "systemSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "section",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"name": "updateAccessControl",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "sections",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "bool[]",
							"name": "canSuspends",
							"type": "bool[]"
						},
						{
							"internalType": "bool[]",
							"name": "canResumes",
							"type": "bool[]"
						}
					],
					"name": "updateAccessControls",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xd4ba3b8b574c2795ec994981815bdb6518da848579d169e419a906f4909ab8e1",
				"urls": [
					"bzz-raw://f1b100c21e7f590057d69e9a2a590dc9643369d060e4d3477021dd51bbeee5c9",
					"dweb:/ipfs/QmQaij3wLXzj9aewLx9QwaWAUfNDu3UqTw12n9ZDTjbj2p"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SystemStatus.sol": "SystemStatus"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SystemStatus.sol": {
						"keccak256": "0xd4ba3b8b574c2795ec994981815bdb6518da848579d169e419a906f4909ab8e1",
						"urls": [
							"bzz-raw://f1b100c21e7f590057d69e9a2a590dc9643369d060e4d3477021dd51bbeee5c9",
							"dweb:/ipfs/QmQaij3wLXzj9aewLx9QwaWAUfNDu3UqTw12n9ZDTjbj2p"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrow": {
			"bytecode": "608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780639b217f9011610097578063d0cc82e311610071578063d0cc82e31461045d578063da7bd3e914610465578063ee1d036c14610491578063fec9f9da146104bd57610173565b80639b217f90146103fd578063ae2e933b14610429578063b5ddb9c71461043157610173565b806370a082311461039157806371e780f3146103b7578063759b5225146103bf57806379ba5097146103c75780638da5cb5b146103cf57806397f46527146103d757610173565b8063326a3cfb11610130578063326a3cfb146102ab578063449d0eb1146102d1578063458efde31461030d57806345e5441f1461031557806353a47bb7146103475780636b3905c41461036b57610173565b80631627540c1461017857806319db2228146101a057806319e740c0146101c6578063204b676a146101fe578063227d517a146102245780632f5bb6611461024a575b600080fd5b61019e6004803603602081101561018e57600080fd5b50356001600160a01b03166104e3565b005b61019e600480360360208110156101b657600080fd5b50356001600160a01b031661053f565b6101ec600480360360208110156101dc57600080fd5b50356001600160a01b031661059b565b60408051918252519081900360200190f35b6101ec6004803603602081101561021457600080fd5b50356001600160a01b03166105dd565b6101ec6004803603602081101561023a57600080fd5b50356001600160a01b03166105f8565b6102706004803603602081101561026057600080fd5b50356001600160a01b031661060a565b6040518082600260200280838360005b83811015610298578181015183820152602001610280565b5050505090500191505060405180910390f35b6101ec600480360360208110156102c157600080fd5b50356001600160a01b031661065b565b6102f7600480360360208110156102e757600080fd5b50356001600160a01b031661066d565b6040518151815280826141008083836020610280565b61019e6106f3565b6101ec6004803603606081101561032b57600080fd5b506001600160a01b0381351690602081013590604001356108dc565b61034f610918565b604080516001600160a01b039092168252519081900360200190f35b6101ec6004803603602081101561038157600080fd5b50356001600160a01b0316610927565b6101ec600480360360208110156103a757600080fd5b50356001600160a01b0316610940565b6101ec61095b565b61034f610961565b61019e610970565b61034f610a2c565b6101ec600480360360208110156103ed57600080fd5b50356001600160a01b0316610a3b565b6101ec6004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a4d565b61034f610a68565b61019e6004803603604081101561044757600080fd5b506001600160a01b038135169060200135610a77565b6101ec610ad0565b6102706004803603604081101561047b57600080fd5b506001600160a01b038135169060200135610ad6565b6101ec600480360360408110156104a757600080fd5b506001600160a01b038135169060200135610b45565b61019e600480360360208110156104d357600080fd5b50356001600160a01b0316610b58565b6104eb610bb4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610547610bb4565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb62959181900360200190a150565b6000806105a7836105dd565b905060005b818110156105d4576105be8482610a4d565b156105cc5791506105d89050565b6001016105ac565b5090505b919050565b6001600160a01b031660009081526004602052604090205490565b60066020526000908152604090205481565b610612610f98565b600061061d8361059b565b9050610628836105dd565b81141561064a57505060408051808201909152600080825260208201526105d8565b6106548382610ad6565b9392505050565b60056020526000908152604090205481565b610675610fb6565b61067d610fb6565b6000610688846105dd565b905060005b818110156106ea5761069d610f98565b6106a78683610ad6565b8051909150846002840261020881106106bc57fe5b60200201528060016020020151848360020260010161020881106106dc57fe5b60200201525060010161068d565b50909392505050565b60006106fe336105dd565b90506000805b828110156107a35760006107183383610a4d565b90504281111561072857506107a3565b60006107343384610b45565b905080156107995760408051808201825260008082526020808301829052338252600490529190912080548590811061076957fe5b9060005260206000209060020201906002610785929190610fd6565b50610796848263ffffffff610bff16565b93505b5050600101610704565b5080156108d8576007546107bd908263ffffffff610c5916565b600755336000908152600560205260409020546107e0908263ffffffff610c5916565b3360009081526005602090815260408083209390935560069052205461080c908263ffffffff610bff16565b33600081815260066020908152604080832094909455600254845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b600460205282600052604060002082815481106108f557fe5b9060005260206000209060020201816002811061090e57fe5b0154925083915050565b6001546001600160a01b031681565b60006109328261060a565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b60075481565b6002546001600160a01b031681565b6001546001600160a01b031633146109b95760405162461bcd60e51b81526004018080602001828103825260358152602001806110656035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000610a468261060a565b6001610935565b6000610a598383610ad6565b60005b60200201519392505050565b6003546001600160a01b031681565b6003546001600160a01b0316331480610ac15760405162461bcd60e51b81526004018080602001828103825260328152602001806111476032913960400191505060405180910390fd5b610acb8383610cb6565b505050565b61010481565b610ade610f98565b6001600160a01b0383166000908152600460205260409020805483908110610b0257fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610b25575050505050905092915050565b6000610b518383610ad6565b6001610a5c565b610b60610bb4565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f46e9c68bd7831071bdd478f1ae4c4a52463961a9d620383a0a121dbfc0e0f06d9181900360200190a150565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040180806020018281038252602f815260200180611118602f913960400191505060405180910390fd5b565b600082820183811015610654576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115610cb0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b80610d08576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b600754610d1b908263ffffffff610bff16565b600755600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610d6957600080fd5b505afa158015610d7d573d6000803e3d6000fd5b505050506040513d6020811015610d9357600080fd5b50516007541115610dd55760405162461bcd60e51b81526004018080602001828103825260478152602001806110d16047913960600191505060405180910390fd5b6001600160a01b038216600090815260046020526040902054610104811115610e45576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b6301dfe200420181610e71576001600160a01b0384166000908152600560205260409020839055610efe565b80610e7f8560018503610a4d565b10610ebb5760405162461bcd60e51b815260040180806020018281038252603781526020018061109a6037913960400191505060405180910390fd5b6001600160a01b038416600090815260056020526040902054610ee4908463ffffffff610bff16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925284825281830187905280546001810180835591855292909320610f4d9260029081029091019190611019565b5050604080514281526020810185905281516001600160a01b038716927fedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c928290030190a250505050565b60405180604001604052806002906020820280388339509192915050565b604051806141000160405280610208906020820280388339509192915050565b8260028101928215611009579160200282015b82811115611009578251829060ff16905591602001919060010190610fe9565b50611015929150611047565b5090565b8260028101928215611009579160200282015b8281111561100957825182559160200191906001019061102c565b61106191905b80821115611015576000815560010161104d565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c792074686520466565506f6f6c20636f6e7472616374732063616e20706572666f726d207468697320616374696f6ea265627a7a72315820f97980e4b1a04f96c3355d39eed62d4382c5b755e484f54dd459e87cf8a9398d64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ISynthetix",
							"name": "_synthetix",
							"type": "address"
						},
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newFeePool",
							"type": "address"
						}
					],
					"name": "FeePoolUpdated",
					"type": "event",
					"signature": "0x6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb6295"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newSynthetix",
							"type": "address"
						}
					],
					"name": "SynthetixUpdated",
					"type": "event",
					"signature": "0x46e9c68bd7831071bdd478f1ae4c4a52463961a9d620383a0a121dbfc0e0f06d"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event",
					"signature": "0xfbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "VestingEntryCreated",
					"type": "event",
					"signature": "0xedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_VESTING_ENTRIES",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd0cc82e3"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb5ddb9c7"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x70a08231"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAccountSchedule",
					"outputs": [
						{
							"internalType": "uint256[520]",
							"name": "",
							"type": "uint256[520]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x449d0eb1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePool",
					"outputs": [
						{
							"internalType": "contract IFeePool",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xae2e933b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2f5bb661"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x19e740c0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x97f46527"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6b3905c4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xee1d036c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingScheduleEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xda7bd3e9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9b217f90"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x204b676a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"name": "setFeePool",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x19db2228"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract ISynthetix",
							"name": "_synthetix",
							"type": "address"
						}
					],
					"name": "setSynthetix",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xfec9f9da"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthetix",
					"outputs": [
						{
							"internalType": "contract ISynthetix",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x759b5225"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalEscrowedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x326a3cfb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalEscrowedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x71e780f3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x227d517a"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x458efde3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x45e5441f"
				}
			],
			"source": {
				"keccak256": "0x0a23762f25143cc09e9e45c41872fbaaf6c35ff873a3cc969674c6d5be3c1d60",
				"urls": [
					"bzz-raw://46fed4d9925e8b9ac86add563a3ee674e5af90df05e5eabe9108d60a15f3f00b",
					"dweb:/ipfs/QmR8sbyXVz6KqD4Fd1bFf76Pkrp7TML6QXSaCgQmom99eL"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardEscrow.sol": "RewardEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardEscrow.sol": {
						"keccak256": "0x0a23762f25143cc09e9e45c41872fbaaf6c35ff873a3cc969674c6d5be3c1d60",
						"urls": [
							"bzz-raw://46fed4d9925e8b9ac86add563a3ee674e5af90df05e5eabe9108d60a15f3f00b",
							"dweb:/ipfs/QmR8sbyXVz6KqD4Fd1bFf76Pkrp7TML6QXSaCgQmom99eL"
						]
					}
				},
				"version": 1
			}
		},
		"ImportableRewardEscrowV2": {
			"bytecode": "60806040526303bfc400600c62000015620001a6565b50506224ea00600d62000027620001a6565b505062093a80600e62000039620001a6565b50503480156200005357600080620000506200020a565b50505b506040516200421438038062004214833981016040819052620000769162000322565b8181806249d400836001600160a01b038116620000bb5760405162461bcd60e51b8152600401620000a790620003e9565b60405180910390620000b86200020a565b50505b806000600181620000cb62000277565b816001600160a01b0302191690836001600160a01b0316021790620000ef620001a6565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c60008260405162000126929190620003c3565b60405180910390a150805a6200013b620002c4565b0180600262000149620001a6565b5050505080600360006101000a816200016162000277565b816001600160a01b0302191690836001600160a01b031602179062000185620001a6565b5050505060016007819062000199620001a6565b505050505050506200044c565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60005b60408110156200020557600082820152602001620001ec565b505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200024457808601518282016040015260200162000227565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020620001ec565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020620001ec565b6000815190506200031c816200042a565b92915050565b6000806040838503121562000341576000806200033e6200020a565b50505b60006200034f85856200030b565b925050602062000362858286016200030b565b9150509250929050565b620003778162000416565b82525050565b620003778162000404565b600062000397601983620003fb565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620003d382856200036c565b620003e260208301846200037d565b9392505050565b602080825281016200031c8162000388565b90815260200190565b60006001600160a01b0382166200031c565b60006200031c8260006200031c8262000404565b620004358162000404565b81146200044957600080620002056200020a565b50565b613db8806200045c6000396000f3fe6080604052348015610019576000806100166128ae565b50505b506004361061025c5760003560e01c80636dc05bd31161014f57806380d46f58116100cc578063ae58254911610090578063ae582549146104d3578063b95375bd146104e6578063cd7b43dd146104f9578063e6b2cf6c1461050c578063eac6248914610514578063f0b882ba146105345761025c565b806380d46f581461047a578063899ffef41461049b5780638da5cb5b146104b0578063910a326d146104b8578063a0416ed3146104c05761025c565b8063773ab39f11610113578063773ab39f146104195780637839b92f146104395780637993e6991461044c57806379ba50971461045f5780637cc1d756146104675761025c565b80636dc05bd3146103d057806370a08231146103e357806371e780f3146103f657806373307e40146103fe57806374185360146104115761025c565b806330104c5f116101dd57806345626bd6116101a157806345626bd61461037757806346ba2d901461039857806353a47bb7146103a05780635eb8cf25146103b55780636154c343146103bd5761025c565b806330104c5f14610323578063326a3cfb1461033657806334c7fec91461034957806337088ffc1461035c5780634525aabc146103645761025c565b8063178c565511610224578063178c5655146102da5780631bb47b44146102e2578063204b676a146102f5578063227d517a146103085780632af64bd31461031b5761025c565b8063018c6c551461026a57806304f3bcec1461027f578063056629861461029d5780630fcdefb7146102b25780631627540c146102c7575b6000806102676128ae565b50505b61027d610278366004613105565b610547565b005b610287610598565b6040516102949190613afd565b60405180910390f35b6102a56105b7565b6040516102949190613ab3565b6102ba6105ec565b6040516102949190613ac1565b61027d6102d5366004612ddb565b6105f9565b61027d610662565b61027d6102f0366004612f4c565b6106d1565b6102ba610303366004612ddb565b610733565b6102ba610316366004612ddb565b61075b565b6102a5610773565b6102ba610331366004612e90565b6108f4565b6102ba610344366004612ddb565b610977565b61027d610357366004613064565b61098f565b6102ba610a99565b61027d610372366004613105565b610aa3565b61038a610385366004612e90565b610ae9565b604051610294929190613ca8565b6102ba610b34565b6103a8610b3e565b604051610294919061399d565b6102ba610b4a565b61038a6103cb366004612e90565b610b54565b6102ba6103de366004612e29565b610be1565b6102ba6103f1366004612ddb565b610cab565b6102ba610ccb565b6103a861040c366004612ddb565b610cd5565b61027d610cef565b61042c610427366004612f4c565b610e86565b6040516102949190613a91565b61027d610447366004612ddb565b611074565b61027d61045a366004613105565b61107f565b61027d611100565b61027d610475366004612ddb565b61125b565b61048d610488366004612e29565b611465565b604051610294929190613c3c565b6104a3611479565b6040516102949190613a80565b6103a86114f9565b6102ba611504565b61027d6104ce366004612f4c565b61150e565b6102ba6104e1366004612e90565b611670565b61027d6104f4366004612fa2565b6116a6565b61027d610507366004612ed3565b6116b6565b6102ba6118ee565b610527610522366004612f4c565b6118f8565b6040516102949190613aa2565b61027d610542366004612e29565b611a22565b61054f611f10565b8080600d61055b612919565b5050507fe829efae5d8a2f7163f46c23a8190bf14625c1e446561ca0f5cf279ab7c8015e8160405161058d9190613ac1565b60405180910390a150565b600060036105a4612976565b906101000a90046001600160a01b031681565b60005a6105c26129c2565b6105e5600e6105cf612976565b600f6105d9612976565b9063ffffffff611f7416565b1190505b90565b600f6105f6612976565b81565b610601611f10565b806001808061060e612976565b816001600160a01b0302191690836001600160a01b0316021790610630612919565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce228160405161058d919061399d565b61066a611f10565b5a6106736129c2565b80600f61067e612919565b5050507fceade2b9bc02350b17075c94bb699508b89ed2752f501ea42024b1bb5fd34445600f6106ac612976565b6106b9600e6105cf612976565b6040516106c7929190613c5c565b60405180910390a1565b6106d9611fb1565b6001600160a01b03165a6106eb612a08565b6001600160a01b0316146107235760405162461bcd60e51b815260040161071190613c0c565b604051809103906107206128ae565b50505b61072e838383611fcb565b505050565b6001600160a01b038116600090815260066020526040812080610754612976565b9392505050565b600960205280600052604060002090506105f6612976565b6000606061077f611479565b905060005b81518110156108eb57600082828151811061079b57fe5b602002602001015160008181526004602052909150604090206000906107bf612976565b6001600160a01b036101009290920a900416600060036107dd612976565b906101000a90046001600160a01b03166001600160a01b03166321f8a721836040518263ffffffff1660e01b81526004016108189190613ac1565b602060405180830381868061082b612a4e565b1580156108405760008061083d6128ae565b50505b505a61084a612a9a565b5050505050158015610869573d6000803e3d60006108666128ae565b50505b50505050604051601f3d908101601f1916820160405261088c9190810190612e02565b6001600160a01b03161415806108d1575060008181526004602052604081206000906108b6612976565b906101000a90046001600160a01b03166001600160a01b0316145b156108e257600093505050506105e9565b50600101610784565b50600191505090565b60006108fe612b85565b6001600160a01b038416600090815260056020526040902060008481526020919091526040902060405160408082019052908160008261093c612976565b6001600160401b036101009290920a90041681526020016001820161095f612976565b905250905061096d8161234f565b9150505b92915050565b600860205280600052604060002090506105f6612976565b6000805b82811015610a80576000600560005a6109aa612a08565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008686858181106109d857fe5b9050602002013581526020019081526020016000209050806001016109fb612976565b15610a77576000610a4882604051604080820190529081600082610a1d612976565b6001600160401b036101009290920a900416815260200160018201610a40612976565b90525061234f565b90508015610a635760008060018401610a5f612919565b5050505b610a73848263ffffffff611f7416565b9350505b50600101610993565b50801561072e5761072e5a610a93612a08565b82612389565b600d6105f6612976565b610aab611f10565b8080600c610ab7612919565b5050507f6b92bd20c4b2e6861047ba7209ddc78d538419aae187d0df46716b827b8997a48160405161058d9190613ac1565b600560205281600052604060002060205280600052604060002091506000905081610b12612976565b906101000a90046001600160401b03169080600101610b2f612976565b905082565b60026105f6612976565b600060016105a4612976565b600c6105f6612976565b6001600160a01b038216600090815260056020528060408120600084815260209190915260409020600090610b87612976565b906101000a90046001600160401b0316915060056000856001600160a01b03166001600160a01b03168152602001908152602001600020600084815260209190915260409020600101610bd8612976565b90509250929050565b6000805b82811015610ca357610bf5612b85565b6001600160a01b03861660009081526005602052604090206000868685818110610c1b57fe5b905060200201358152602001908152602001600020604051604080820190529081600082610c47612976565b6001600160401b036101009290920a900416815260200160018201610c6a612976565b9052509050602081015115610c9a576000610c848261234f565b9050610c96848263ffffffff611f7416565b9350505b50600101610be5565b509392505050565b6001600160a01b0381166000908152600860205260408120610971612976565b600b6105f6612976565b600a602052806000526040600020600091506105a4612976565b6060610cf9611479565b905060005b8151811015610e82576000828281518110610d1557fe5b602002602001015190506000806003610d2c612976565b906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d5c9190613992565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d88929190613add565b6020604051808303818680610d9b612a4e565b158015610db057600080610dad6128ae565b50505b505a610dba612a9a565b5050505050158015610dd9573d6000803e3d6000610dd66128ae565b50505b50505050604051601f3d908101601f19168201604052610dfc9190810190612e02565b60008381526004602052909150819060409020600181610e1a612976565b816001600160a01b0302191690836001600160a01b0316021790610e3c612919565b5050507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa688282604051610e70929190613acf565b60405180910390a15050600101610cfe565b5050565b6060828201838111610ed6576000604051908082528060200260200182016040528015610ecd57816020015b610eba612b9c565b815260200190600190039081610eb25790505b50915050610754565b6001600160a01b038516600090815260066020526040902080610ef7612976565b9050811115610f25576001600160a01b038516600090815260066020526040902080610f21612976565b9150505b838103606081604051908082528060200260200182016040528015610f6457816020015b610f51612b9c565b815260200190600190039081610f495790505b50905060005b82811015611069576001600160a01b038816600090815260066020526040812088830181610f96612976565b8110610f9e57fe5b90600052602060002001610fb0612976565b9050610fba612b85565b6001600160a01b038a166000908152600560205260409020600083815260209190915260409020604051604080820190529081600082610ff8612976565b6001600160401b036101009290920a90041681526020016001820161101b612976565b9052509050604051606081016040528082516001600160401b031681526020018260200151815260200183905284848151811061105457fe5b60209081029190910101525050600101610f6a565b509695505050505050565b61107c6124da565b50565b611087611f10565b600d611091612976565b8111156110c25760405162461bcd60e51b81526004016110b090613bfc565b604051809103906110bf6128ae565b50505b8080600e6110ce612919565b5050507f723c43349da7aeae47190396f2e2fbe6bedb46b9e9705bc5b908d65bc7a1e0e68160405161058d9190613ac1565b6000600161110c612976565b906101000a90046001600160a01b03166001600160a01b03165a61112e612a08565b6001600160a01b0316146111665760405162461bcd60e51b815260040161115490613b1c565b604051809103906111636128ae565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c600080611192612976565b906101000a90046001600160a01b031660016000906111af612976565b906101000a90046001600160a01b03166040516111cd929190613a3c565b60405180910390a1600060016111e1612976565b906101000a90046001600160a01b03166000806101000a81611201612976565b816001600160a01b0302191690836001600160a01b0316021790611223612919565b5050506000600160006101000a81611239612976565b816001600160a01b0302191690836001600160a01b031602179061072e612919565b5a611264612a08565b6001600160a01b0316816001600160a01b031614156112a75760405162461bcd60e51b815260040161129590613bcc565b604051809103906112a46128ae565b50505b6112af6105b7565b6112dd5760405162461bcd60e51b81526004016112cb90613bac565b604051809103906112da6128ae565b50505b6112e56124f2565b6001600160a01b031663d37c4d8b5a6112fc612a08565b6040518263ffffffff1660e01b815260040161131891906139db565b602060405180830381868061132b612a4e565b1580156113405760008061133d6128ae565b50505b505a61134a612a9a565b5050505050158015611369573d6000803e3d60006113666128ae565b50505b50505050604051601f3d908101601f1916820160405261138c919081019061312c565b156113bb5760405162461bcd60e51b81526004016113a990613c2c565b604051809103906113b86128ae565b50505b80600a60005a6113c9612a08565b6001600160a01b03166001600160a01b031681526020019081526020016000206001816113f4612976565b816001600160a01b0302191690836001600160a01b0316021790611416612919565b5050505a611422612a08565b6001600160a01b03167fcf51776bb16e5780edcca2e64a9ba8a9c7d5d00a6699cbd7606e465361ba48528260405161145a919061399d565b60405180910390a250565b600060606114716124da565b935093915050565b606080611484612506565b9050606060016040519080825280602002602001820160405280156114b3578160200160208202803883390190505b5090507453796e746865746978427269646765546f4261736560581b816000815181106114dc57fe5b6020026020010181815250506114f282826125a6565b9250505090565b6000806105a4612976565b600e6105f6612976565b6001600160a01b0383166115465760405162461bcd60e51b815260040161153490613b4c565b604051809103906115436128ae565b50505b61154e612662565b6001600160a01b03166323b872dd5a611565612a08565b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b60408110156115bb576000828201526020016115a4565b505050856040518463ffffffff1660e01b81526004016115dd939291906139ab565b602060405180830381600087806115f2612a4e565b158015611607576000806116046128ae565b50505b505a611611612bbb565b505050505050158015611631573d6000803e3d600061162e6128ae565b50505b50505050604051601f3d908101601f1916820160405261165491908101906130b7565b6107235760405162461bcd60e51b815260040161071190613bbc565b60066020528160005260406000208181611688612976565b811061169057fe5b9060005260206000200191506105f69050612976565b6116ae6124da565b505050505050565b6116be612679565b6001600160a01b03165a6116d0612a08565b6001600160a01b0316146117085760405162461bcd60e51b81526004016116f690613b5c565b604051809103906117056128ae565b50505b61171683600b6105d9612976565b80600b611721612919565b50505061172c612662565b6001600160a01b03166370a082315a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b604081101561179057600082820152602001611779565b5050506040518263ffffffff1660e01b81526004016117af919061399d565b60206040518083038186806117c2612a4e565b1580156117d7576000806117d46128ae565b50505b505a6117e1612a9a565b5050505050158015611800573d6000803e3d60006117fd6128ae565b50505b50505050604051601f3d908101601f19168201604052611823919081019061312c565b600b61182d612976565b111561185d5760405162461bcd60e51b815260040161184b90613c1c565b6040518091039061185a6128ae565b50505b6001600160a01b03841660009081526008602052611883908490604090206105d9612976565b6001600160a01b038516600090815260086020526040902081906118a5612919565b5060009150505b818110156118e7576118df858484848181106118c457fe5b9050604002018036036118da91908101906130de565b61269c565b6001016118ac565b5050505050565b60076105f6612976565b6001600160a01b03831660009081526006602052606090838301906040902080611920612976565b905081111561194e576001600160a01b03851660009081526006602052604090208061194a612976565b9150505b838111611988576000604051908082528060200260200182016040528015610ecd5781602001602082028038833901905050915050610754565b8381036060816040519080825280602002602001820160405280156119b7578160200160208202803883390190505b50905060005b82811015611069576001600160a01b0388166000908152600660205260409020878201816119e9612976565b81106119f157fe5b90600052602060002001611a03612976565b828281518110611a0f57fe5b60209081029190910101526001016119bd565b611a2a6105b7565b611a585760405162461bcd60e51b8152600401611a4690613bac565b60405180910390611a556128ae565b50505b611a606124f2565b6001600160a01b031663d37c4d8b846040518263ffffffff1660e01b8152600401611a8b9190613a57565b6020604051808303818680611a9e612a4e565b158015611ab357600080611ab06128ae565b50505b505a611abd612a9a565b5050505050158015611adc573d6000803e3d6000611ad96128ae565b50505b50505050604051601f3d908101601f19168201604052611aff919081019061312c565b15611b2e5760405162461bcd60e51b8152600401611b1c90613c2c565b60405180910390611b2b6128ae565b50505b5a611b37612a08565b6001600160a01b038481166000908152600a60205291169060409020600090611b5e612976565b906101000a90046001600160a01b03166001600160a01b031614611ba65760405162461bcd60e51b8152600401611b9490613bec565b60405180910390611ba36128ae565b50505b6000805b82811015611de657611bba612b85565b6001600160a01b03861660009081526005602052604090206000868685818110611be057fe5b905060200201358152602001908152602001600020604051604080820190529081600082611c0c612976565b6001600160401b036101009290920a900416815260200160018201611c2f612976565b9052509050602081015115611ddd5780600560005a611c4c612a08565b6001600160a01b03166001600160a01b031681526020019081526020016000206000878786818110611c7a57fe5b905060200201358152602001908152602001600020815181600181611c9d612976565b816001600160401b0302191690836001600160401b0316021790611cbf612919565b505050602082015181600101611cd3612919565b5050905050611ced8160200151849063ffffffff611f7416565b9250600660005a611cfc612a08565b6001600160a01b03166001600160a01b03168152602001908152602001600020858584818110611d2857fe5b905060200201359080600181611d3c612976565b018082611d47612919565b5050600092835291600019830191506020902091929101611d66612919565b5050506001600160a01b03861660009081526005602052604090206000868685818110611d8f57fe5b905060200201358152602001908152602001600020600081600181611db2612976565b906001600160401b0302191690611dc7612919565b505060018201600090611dd8612919565b505050505b50600101611baa565b506001600160a01b03841660009081526008602052611e1990829060409020611e0d612976565b9063ffffffff61278916565b6001600160a01b03851660009081526008602052604090208190611e3b612919565b505050611e7781600860005a611e4f612a08565b6001600160a01b03166001600160a01b031681526020019081526020016000206105d9612976565b600860005a611e84612a08565b6001600160a01b03166001600160a01b031681526020019081526020016000208190611eae612919565b505050836001600160a01b03167f48d567deaa7db90f8a443344e519ca8906521ffe118e1df43e89a3c257963f7c5a611ee5612a08565b8386865a611ef16129c2565b604051611f029594939291906139f5565b60405180910390a250505050565b600080611f1b612976565b906101000a90046001600160a01b03166001600160a01b03165a611f3d612a08565b6001600160a01b031614611f725760405162461bcd60e51b8152600401611f6390613bdc565b60405180910390610e826128ae565b565b6000828201838110156107545760405162461bcd60e51b8152600401611f9990613b2c565b60405180910390611fa86128ae565b50509392505050565b6000611fc666119959541bdbdb60ca1b6127c3565b905090565b81611ffa5760405162461bcd60e51b8152600401611fe890613b8c565b60405180910390611ff76128ae565b50505b6000811180156120135750600c61200f612976565b8111155b6120415760405162461bcd60e51b815260040161202f90613b3c565b6040518091039061203e6128ae565b50505b61204f82600b6105d9612976565b80600b61205a612919565b505050612065612662565b6001600160a01b03166370a082315a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b60408110156120c9576000828201526020016120b2565b5050506040518263ffffffff1660e01b81526004016120e8919061399d565b60206040518083038186806120fb612a4e565b1580156121105760008061210d6128ae565b50505b505a61211a612a9a565b5050505050158015612139573d6000803e3d60006121366128ae565b50505b50505050604051601f3d908101601f1916820160405261215c919081019061312c565b600b612166612976565b11156121965760405162461bcd60e51b815260040161218490613b9c565b604051809103906121936128ae565b50505b6000815a6121a26129c2565b6001600160a01b03861660009081526008602052910191506121cc908490604090206105d9612976565b6001600160a01b038516600090815260086020526040902081906121ee612919565b505050600060076121fd612976565b9050604051604080820181526001600160401b038416825260208083018790526001600160a01b038816600090815260059091522060008381526020919091526040902081518160018161224f612976565b816001600160401b0302191690836001600160401b0316021790612271612919565b505050602082015181600101612285612919565b5050506001600160a01b0386166000908152600660205260409150208190806001816122af612976565b0180826122ba612919565b50506000928352916000198301915060209020919291016122d9612919565b5050506122eb600160076105d9612976565b8060076122f6612919565b505050846001600160a01b03167f2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc05a61232d6129c2565b8686856040516123409493929190613c6a565b60405180910390a25050505050565b6000808260200151156109715782516001600160401b03165a6123706129c2565b101561237d576000610754565b82602001519392505050565b612393828261284a565b6001600160a01b038216600090815260096020526123b9908290604090206105d9612976565b6001600160a01b038316600090815260096020526040902081906123db612919565b5050506123e6612662565b6001600160a01b031663a9059cbb83836040518363ffffffff1660e01b8152600401612413929190613a65565b60206040518083038160008780612428612a4e565b15801561243d5760008061243a6128ae565b50505b505a612447612bbb565b505050505050158015612467573d6000803e3d60006124646128ae565b50505b50505050604051601f3d908101601f1916820160405261248a91908101906130b7565b50816001600160a01b03167ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc65a6124bf6129c2565b836040516124ce929190613c5c565b60405180910390a25050565b60405162461bcd60e51b8152600401611f6390613b7c565b6000611fc66524b9b9bab2b960d11b6127c3565b60606003604051908082528060200260200182016040528015612533578160200160208202803883390190505b509050680a6f2dce8d0cae8d2f60bb1b8160008151811061255057fe5b60200260200101818152505066119959541bdbdb60ca1b8160018151811061257457fe5b6020026020010181815250506524b9b9bab2b960d11b8160028151811061259757fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156125d6578160200160208202803883390190505b50905060005b8351811015612618578381815181106125f157fe5b602002602001015182828151811061260557fe5b60209081029190910101526001016125dc565b5060005b825181101561265b5782818151811061263157fe5b602002602001015182828651018151811061264857fe5b602090810291909101015260010161261c565b5092915050565b6000611fc6680a6f2dce8d0cae8d2f60bb1b6127c3565b6000611fc67453796e746865746978427269646765546f4261736560581b6127c3565b600060076126a8612976565b6001600160a01b038416600090815260056020529091508290604090206000838152602091909152604090208151816001816126e2612976565b816001600160401b0302191690836001600160401b0316021790612704612919565b505050602082015181600101612718612919565b5050506001600160a01b038416600090815260066020526040915020819080600181612742612976565b01808261274d612919565b505060009283529160001983019150602090209192910161276c612919565b50505061277e600160076105d9612976565b8060076116ae612919565b6000828211156127bd5760405162461bcd60e51b81526004016127ab90613b6c565b604051809103906127ba6128ae565b50505b50900390565b6000818152600460205280604081206000906127dd612976565b6001600160a01b036101009290920a9004169050801515836040516020016128059190613972565b6040516020818303038152906040529061265b5760405162461bcd60e51b81526004016128329190613b0b565b604051809103906128416128ae565b50505092915050565b61285881600b611e0d612976565b80600b612863612919565b5050506001600160a01b0382166000908152600860205261288c90829060409020611e0d612976565b6001600160a01b038316600090815260086020526040902081906118e7612919565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156128e65780860151828201604001526020016128cb565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60005b604081101561072e5760008282015260200161295f565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061295f565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061295f565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061295f565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061295f565b638540661f598160e01b8152612acb565b8080831115610971575090919050565b8080831015610971575090919050565b836004820152846024820152606060448201528660648201526084810160005b88811015612b03578088015182820152602001612aeb565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af15059612b588d3d612abb565b8c01612b648187612aab565b5b82811015612b795760008152602001612b65565b50929c50505050505050565b604051604080820190526000808252602082015290565b6040516060810160409081526000808352602083018190529082015290565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b89811015612bff578089015182820152602001612be7565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af15059612c548e3d612abb565b8d01612c608187612aab565b5b82811015612c755760008152602001612c61565b50929d50505050505050565b803561097181613d83565b60008151905061097181613d83565b60008083601f840112612cb657600080612cb36128ae565b50505b5081356001600160401b03811115612cd657600080612cd36128ae565b50505b602083019150836020820283011115612cf757600080612cf46128ae565b50505b9250929050565b60008083601f840112612d1957600080612d166128ae565b50505b5081356001600160401b03811115612d3957600080612d366128ae565b50505b602083019150836040820283011115612cf757600080612cf46128ae565b60008151905061097181613d9d565b600060408284031215612d8157600080612d7e6128ae565b50505b612d8b6040613cb6565b90506000612d998484612dd0565b8252506020612daa84848301612db6565b60208301525092915050565b803561097181613da6565b60008151905061097181613da6565b803561097181613daf565b600060208284031215612df657600080612df36128ae565b50505b600061096d8484612c81565b600060208284031215612e1d57600080612e1a6128ae565b50505b600061096d8484612c8c565b600080600060408486031215612e4757600080612e446128ae565b50505b6000612e538686612c81565b93505060208401356001600160401b03811115612e7857600080612e756128ae565b50505b612e8486828701612c9b565b92509250509250925092565b60008060408385031215612eac57600080612ea96128ae565b50505b6000612eb88585612c81565b9250506020612ec985828601612db6565b9150509250929050565b60008060008060608587031215612ef257600080612eef6128ae565b50505b6000612efe8787612c81565b9450506020612f0f87828801612db6565b93505060408501356001600160401b03811115612f3457600080612f316128ae565b50505b612f4087828801612cfe565b95989497509550505050565b600080600060608486031215612f6a57600080612f676128ae565b50505b6000612f768686612c81565b9350506020612f8786828701612db6565b9250506040612f9886828701612db6565b9150509250925092565b60008060008060008060608789031215612fc457600080612fc16128ae565b50505b86356001600160401b03811115612fe357600080612fe06128ae565b50505b612fef89828a01612c9b565b965096505060208701356001600160401b03811115613016576000806130136128ae565b50505b61302289828a01612c9b565b945094505060408701356001600160401b03811115613049576000806130466128ae565b50505b61305589828a01612c9b565b92509250509295509295509295565b600080602083850312156130805760008061307d6128ae565b50505b82356001600160401b0381111561309f5760008061309c6128ae565b50505b6130ab85828601612c9b565b92509250509250929050565b6000602082840312156130d2576000806130cf6128ae565b50505b600061096d8484612d57565b6000604082840312156130f9576000806130f66128ae565b50505b600061096d8484612d66565b6000602082840312156131205760008061311d6128ae565b50505b600061096d8484612db6565b600060208284031215613147576000806131446128ae565b50505b600061096d8484612dc1565b600061315f8383613335565b505060200190565b6000613173838361390a565b505060600190565b60006131878383613946565b505060400190565b61319881613d2f565b82525050565b61319881613d07565b60006131b282613cef565b6131bc8185613cf9565b93506131c783613ce9565b8060005b838110156131f55781516131df8882613153565b97506131ea83613ce9565b9250506001016131cb565b509495945050505050565b600061320b82613cef565b6132158185613cf9565b935061322083613ce9565b8060005b838110156131f55781516132388882613167565b975061324383613ce9565b925050600101613224565b600061325982613cef565b6132638185613cf9565b935061326e83613ce9565b8060005b838110156131f5578151613286888261317b565b975061329183613ce9565b925050600101613272565b60006132a88385613cf9565b93506001600160fb1b038311156132c7576000806132c46128ae565b50505b6020830292506132d8838584613d41565b50500190565b60006132e982613cef565b6132f38185613cf9565b93506132fe83613ce9565b8060005b838110156131f55781516133168882613153565b975061332183613ce9565b925050600101613302565b61319881613d12565b613198816105e9565b61319861334a826105e9565b6105e9565b61319881613d36565b600061336382613cef565b61336d8185613cf9565b935061337d818560208601613d4d565b61338681613d79565b9093019392505050565b600061339d603583613cf9565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006133f4601b83613cf9565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061342d603383613cf9565b7f43616e6e6f7420657363726f7720776974682030206475726174696f6e204f528152721030b137bb329036b0bc2fb23ab930ba34b7b760691b602082015260400192915050565b6000613482602483613cf9565b7f43616e6e6f742063726561746520657363726f772077697468206164647265738152637328302960e01b602082015260400192915050565b60006134c8603583613cf9565b7f43616e206f6e6c7920626520696e766f6b65642062792053796e746865746978815274109c9a5919d9551bd0985cd94818dbdb9d1c9858dd605a1b602082015260400192915050565b600061351f601e83613cf9565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613558601b83613cf9565b7f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000815260200192915050565b6000613591601183613d02565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006135be601783613cf9565b7f5175616e746974792063616e6e6f74206265207a65726f000000000000000000815260200192915050565b60006135f7604783613cf9565b7f4d75737420626520656e6f7567682062616c616e636520696e2074686520636f81527f6e747261637420746f2070726f7669646520666f72207468652076657374696e6020820152666720656e74727960c81b604082015260600192915050565b6000613666601983613cf9565b7f4163636f756e74206d657267696e672068617320656e64656400000000000000815260200192915050565b600061369f601583613cf9565b741d1bdad95b881d1c985b9cd9995c8819985a5b1959605a1b815260200192915050565b60006136d0602483613cf9565b7f43616e6e6f74206e6f6d696e617465206f776e206163636f756e7420746f206d8152636572676560e01b602082015260400192915050565b6000613716602f83613cf9565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b6000613773602183613cf9565b7f41646472657373206973206e6f74206e6f6d696e6174656420746f206d6572678152606560f81b602082015260400192915050565b60006137b6601c83613cf9565b7f65786365656473206d6178206d657267696e67206475726174696f6e00000000815260200192915050565b60006137ef601983613d02565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613828602883613cf9565b7f4f6e6c792074686520466565506f6f6c2063616e20706572666f726d20746869815267399030b1ba34b7b760c11b602082015260400192915050565b6000613872604483613cf9565b7f496e73756666696369656e742062616c616e636520696e2074686520636f6e7481527f7261637420746f2070726f7669646520666f7220657363726f7765642062616c602082015263616e636560e01b604082015260600192915050565b60006138de601f83613cf9565b7f43616e6e6f74206d65726765206163636f756e74732077697468206465627400815260200192915050565b60608201815161391a8482613969565b50602082015161392d6020850182613335565b5060408201516139406040850182613335565b50505050565b6040820181516139568482613969565b5060208201516139406020850182613335565b61319881613d23565b600061397d82613584565b9150613989828461333e565b50602001919050565b600061397d826137e2565b60208101610971828461319e565b606081016139b9828661318f565b6139c6602083018561319e565b6139d36040830184613335565b949350505050565b604081016139e9828461318f565b6109716020830161375a565b60808101613a03828861318f565b613a106020830187613335565b8181036040830152613a2381858761329c565b9050613a326060830184613335565b9695505050505050565b60408101613a4a828561319e565b610754602083018461319e565b604081016139e9828461319e565b60408101613a73828561319e565b6107546020830184613335565b6020808252810161075481846131a7565b602080825281016107548184613200565b6020808252810161075481846132de565b60208101610971828461332c565b602081016109718284613335565b60408101613a4a8285613335565b60408101613aeb8285613335565b81810360208301526139d38184613358565b60208101610971828461334f565b602080825281016107548184613358565b6020808252810161097181613390565b60208082528101610971816133e7565b6020808252810161097181613420565b6020808252810161097181613475565b60208082528101610971816134bb565b6020808252810161097181613512565b602080825281016109718161354b565b60208082528101610971816135b1565b60208082528101610971816135ea565b6020808252810161097181613659565b6020808252810161097181613692565b60208082528101610971816136c3565b6020808252810161097181613709565b6020808252810161097181613766565b60208082528101610971816137a9565b602080825281016109718161381b565b6020808252810161097181613865565b60208082528101610971816138d1565b60408101613c4a8285613335565b81810360208301526139d3818461324e565b60408101613a738285613335565b60808101613c788287613335565b613c856020830186613335565b613c926040830185613335565b613c9f6060830184613335565b95945050505050565b60408101613a738285613969565b600060405190508181018181106001600160401b0382111715613ce157600080613cde6128ae565b50505b604052919050565b60200190565b6000815192915050565b90815260200190565b919050565b600061097182613d17565b151590565b6001600160a01b031690565b6001600160401b031690565b6000610971825b600061097182613d07565b82818337506000910152565b60005b83811015613d68578082015183820152602001613d50565b838111156139405750506000910152565b601f01601f191690565b613d8c81613d07565b811461107c5760008061072e6128ae565b613d8c81613d12565b613d8c816105e9565b613d8c81613d2356",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "accountToMerge",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowAmountMerged",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "AccountMerged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "AccountMergingDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "endTime",
							"type": "uint256"
						}
					],
					"name": "AccountMergingStarted",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "MaxAccountMergingDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "MaxEscrowDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "NominateAccountToMerge",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "VestingEntryCreated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingIsOpen",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingStartTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountVestingEntryIDs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"name": "burnForMigration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "deposit",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "createEscrowEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "pageSize",
							"type": "uint256"
						}
					],
					"name": "getAccountVestingEntryIDs",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "getVestingEntry",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "endTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "getVestingEntryClaimable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "total",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "pageSize",
							"type": "uint256"
						}
					],
					"name": "getVestingSchedules",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "entryID",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntryWithID[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "escrowedAmount",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"name": "importVestingEntries",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxAccountMergingDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "max_duration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "accountToMerge",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "mergeAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"name": "migrateAccountEscrowBalances",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "migrateVestingSchedule",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nextEntryId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "nominateAccountToMerge",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "nominatedReceiver",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setAccountMergingDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setMaxAccountMergingWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setMaxEscrowDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "startMergingWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalEscrowedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalEscrowedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "endTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x202a8824149d6c2bc8eff04950c355d384d3a79bd6531c7702c0869822b05a08",
				"urls": [
					"bzz-raw://5b5099876ee4464a691a4e7a4bb0c9b985b0ca362ab93db18ef4fa86d8178b93",
					"dweb:/ipfs/QmWjgavmh9e2EPh3WocGtXDuipwwwgW1Es9CMHT2ZiCxPk"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ImportableRewardEscrowV2.sol": "ImportableRewardEscrowV2"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ImportableRewardEscrowV2.sol": {
						"keccak256": "0x202a8824149d6c2bc8eff04950c355d384d3a79bd6531c7702c0869822b05a08",
						"urls": [
							"bzz-raw://5b5099876ee4464a691a4e7a4bb0c9b985b0ca362ab93db18ef4fa86d8178b93",
							"dweb:/ipfs/QmWjgavmh9e2EPh3WocGtXDuipwwwgW1Es9CMHT2ZiCxPk"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de5780639b217f9011610097578063d0cc82e311610071578063d0cc82e3146104fe578063da7bd3e914610506578063ee1d036c14610532578063fec9f9da1461055e5761018e565b80639b217f90146103f8578063a15d59ce14610424578063bb2a7d0c1461042c5761018e565b806370a082311461038c578063759b5225146103b257806379ba5097146103ba5780638ad58777146103c25780638da5cb5b146103ca57806397f46527146103d25761018e565b80632f5bb6611161014b57806346ba2d901161012557806346ba2d901461033257806353a47bb71461033a57806363667eb71461035e5780636b3905c4146103665761018e565b80632f5bb66114610297578063458efde3146102f857806345e5441f146103005761018e565b8063135c0701146101935780631627540c146101bb57806319e740c0146101e15780631bb47b4414610219578063204b676a1461024b578063227d517a14610271575b600080fd5b6101b9600480360360208110156101a957600080fd5b50356001600160a01b0316610584565b005b6101b9600480360360208110156101d157600080fd5b50356001600160a01b0316610635565b610207600480360360208110156101f757600080fd5b50356001600160a01b0316610691565b60408051918252519081900360200190f35b6101b96004803603606081101561022f57600080fd5b506001600160a01b0381351690602081013590604001356106d3565b6102076004803603602081101561026157600080fd5b50356001600160a01b0316610a0e565b6102076004803603602081101561028757600080fd5b50356001600160a01b0316610a29565b6102bd600480360360208110156102ad57600080fd5b50356001600160a01b0316610a3b565b6040518082600260200280838360005b838110156102e55781810151838201526020016102cd565b5050505090500191505060405180910390f35b6101b9610a8c565b6102076004803603606081101561031657600080fd5b506001600160a01b038135169060208101359060400135610c49565b610207610c85565b610342610c8b565b604080516001600160a01b039092168252519081900360200190f35b610207610c9a565b6102076004803603602081101561037c57600080fd5b50356001600160a01b0316610c9f565b610207600480360360208110156103a257600080fd5b50356001600160a01b0316610cb8565b610342610cd3565b6101b9610ce2565b610207610d9e565b610342610da3565b610207600480360360208110156103e857600080fd5b50356001600160a01b0316610db2565b6102076004803603604081101561040e57600080fd5b506001600160a01b038135169060200135610dc4565b610207610ddf565b6101b96004803603606081101561044257600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561046d57600080fd5b82018360208201111561047f57600080fd5b803590602001918460208302840111640100000000831117156104a157600080fd5b9193909290916020810190356401000000008111156104bf57600080fd5b8201836020820111156104d157600080fd5b803590602001918460208302840111640100000000831117156104f357600080fd5b509092509050610de5565b610207610e6f565b6102bd6004803603604081101561051c57600080fd5b506001600160a01b038135169060200135610e74565b6102076004803603604081101561054857600080fd5b506001600160a01b038135169060200135610ee3565b6101b96004803603602081101561057457600080fd5b50356001600160a01b0316610ef6565b61058c610f52565b60025442106105cc5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604081206105ed91611054565b6001600160a01b0381166000908152600560205260409020546006546106189163ffffffff610f9d16565b6006556001600160a01b0316600090815260056020526040812055565b61063d610f52565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60008061069d83610a0e565b905060005b818110156106ca576106b48482610dc4565b156106c25791506106ce9050565b6001016106a2565b5090505b919050565b6106db610f52565b600254421061071b5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b81421061076f576040805162461bcd60e51b815260206004820152601a60248201527f54696d65206d75737420626520696e2074686520667574757265000000000000604482015290519081900360640190fd5b806107c1576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b6006546107d4908263ffffffff610ffa16565b600655600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561082257600080fd5b505afa158015610836573d6000803e3d6000fd5b505050506040513d602081101561084c57600080fd5b5051600654111561088e5760405162461bcd60e51b81526004018080602001828103825260478152602001806111c26047913960600191505060405180910390fd5b6001600160a01b03831660009081526004602052604090205460148111156108fd576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b80610922576001600160a01b03841660009081526005602052604090208290556109b7565b8261093885600161093288610a0e565b03610dc4565b106109745760405162461bcd60e51b815260040180806020018281038252603781526020018061118b6037913960400191505060405180910390fd5b6001600160a01b03841660009081526005602052604090205461099d908363ffffffff610ffa16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925286825281830186905280546001810180835591855292909320610a069260029081029091019190611078565b505050505050565b6001600160a01b031660009081526004602052604090205490565b60056020526000908152604090205481565b610a436110b6565b6000610a4e83610691565b9050610a5983610a0e565b811415610a7b57505060408051808201909152600080825260208201526106ce565b610a858382610e74565b9392505050565b6000610a9733610a0e565b90506000805b82811015610b3c576000610ab13383610dc4565b905042811115610ac15750610b3c565b6000610acd3384610ee3565b90508015610b3257604080518082018252600080825260208083018290523382526004905291909120805485908110610b0257fe5b9060005260206000209060020201906002610b1e9291906110d4565b50610b2f848263ffffffff610ffa16565b93505b5050600101610a9d565b508015610c4557600654610b56908263ffffffff610f9d16565b60065533600090815260056020526040902054610b79908263ffffffff610f9d16565b33600081815260056020908152604080832094909455600354845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b158015610bde57600080fd5b505af1158015610bf2573d6000803e3d6000fd5b505050506040513d6020811015610c0857600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b60046020528260005260406000208281548110610c6257fe5b90600052602060002090600202018160028110610c7b57fe5b0154925083915050565b60025481565b6001546001600160a01b031681565b600081565b6000610caa82610a3b565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b6003546001600160a01b031681565b6001546001600160a01b03163314610d2b5760405162461bcd60e51b81526004018080602001828103825260358152602001806111566035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600181565b6000546001600160a01b031681565b6000610dbd82610a3b565b6001610cad565b6000610dd08383610e74565b60005b60200201519392505050565b60065481565b610ded610f52565b6002544210610e2d5760405162461bcd60e51b81526004018080602001828103825260298152602001806112386029913960400191505060405180910390fd5b60005b83811015610a0657610e6786868684818110610e4857fe5b90506020020135858585818110610e5b57fe5b905060200201356106d3565b600101610e30565b601481565b610e7c6110b6565b6001600160a01b0383166000908152600460205260409020805483908110610ea057fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610ec3575050505050905092915050565b6000610eef8383610e74565b6001610dd3565b610efe610f52565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f46e9c68bd7831071bdd478f1ae4c4a52463961a9d620383a0a121dbfc0e0f06d9181900360200190a150565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611209602f913960400191505060405180910390fd5b565b600082821115610ff4576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610a85576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460008255600202906000526020600020908101906110759190611107565b50565b82600281019282156110a6579160200282015b828111156110a657825182559160200191906001019061108b565b506110b292915061112d565b5090565b60405180604001604052806002906020820280388339509192915050565b82600281019282156110a6579160200282015b828111156110a6578251829060ff169055916020019190600101906110e7565b61112a91905b808211156110b25760006111218282611147565b5060020161110d565b90565b61112a91905b808211156110b25760008155600101611133565b50600081556001016000905556fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a72315820686951b06a53efe90f5801cb39a7487f09bfc13b577084487ef7c270fc6efa0564736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ISynthetix",
							"name": "_synthetix",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newSynthetix",
							"type": "address"
						}
					],
					"name": "SynthetixUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_VESTING_ENTRIES",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "QUANTITY_INDEX",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TIME_INDEX",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "times",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "quantities",
							"type": "uint256[]"
						}
					],
					"name": "addVestingSchedule",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingScheduleEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "purgeAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract ISynthetix",
							"name": "_synthetix",
							"type": "address"
						}
					],
					"name": "setSynthetix",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthetix",
					"outputs": [
						{
							"internalType": "contract ISynthetix",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalVestedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xcabefdaf10474ee46f8c9beff0b73ed4444c4d730eb7d49361c6046bd2072981",
				"urls": [
					"bzz-raw://e77ce99cc883505dd530d6e176f268d459dcf8f5268b9f4e400abf35d8b91c7b",
					"dweb:/ipfs/QmU8t3ThttSKg6XWszsY4g5uh3M4SdbZJrav7byRWHkYq7"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixEscrow.sol": "SynthetixEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixEscrow.sol": {
						"keccak256": "0xcabefdaf10474ee46f8c9beff0b73ed4444c4d730eb7d49361c6046bd2072981",
						"urls": [
							"bzz-raw://e77ce99cc883505dd530d6e176f268d459dcf8f5268b9f4e400abf35d8b91c7b",
							"dweb:/ipfs/QmU8t3ThttSKg6XWszsY4g5uh3M4SdbZJrav7byRWHkYq7"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixState": {
			"bytecode": "608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063aefc4ccb1161007c578063aefc4ccb14610390578063b16c09f014610398578063b992812e146103be578063ba08f299146103f8578063cd92eba914610400578063dd9da1da1461040857610142565b80638da5cb5b1461028a5780639371bede146102925780639e49e9761461029a578063a764eb451461035c578063ae2e933b1461038857610142565b8063463177121161010a57806346317712146101e957806346ba2d90146101f157806352f445ca146101f957806353a47bb71461021f57806379ba5097146102435780638b3f80881461024b57610142565b806308d95cd5146101475780631627540c1461017657806319db22281461019e5780631bfba595146101c45780633d31e97b146101cc575b600080fd5b6101646004803603602081101561015d57600080fd5b5035610410565b60408051918252519081900360200190f35b61019c6004803603602081101561018c57600080fd5b50356001600160a01b031661042e565b005b61019c600480360360208110156101b457600080fd5b50356001600160a01b031661048a565b61019c6104e6565b61019c600480360360208110156101e257600080fd5b5035610548565b6101646105c6565b6101646105ec565b61019c6004803603602081101561020f57600080fd5b50356001600160a01b03166105f2565b61022761064e565b604080516001600160a01b039092168252519081900360200190f35b61019c61065d565b6102716004803603602081101561026157600080fd5b50356001600160a01b0316610719565b6040805192835260208301919091528051918290030190f35b610227610732565b610164610741565b61019c600480360360408110156102b057600080fd5b8101906020810181356401000000008111156102cb57600080fd5b8201836020820111156102dd57600080fd5b803590602001918460208302840111640100000000831117156102ff57600080fd5b91939092909160208101903564010000000081111561031d57600080fd5b82018360208201111561032f57600080fd5b8035906020019184602083028401116401000000008311171561035157600080fd5b509092509050610747565b61019c6004803603604081101561037257600080fd5b506001600160a01b03813516906020013561082f565b61022761089f565b6102276108ae565b61019c600480360360208110156103ae57600080fd5b50356001600160a01b03166108bd565b6103e4600480360360208110156103d457600080fd5b50356001600160a01b0316610926565b604080519115158252519081900360200190f35b61019c610943565b6101646109a0565b6101646109a6565b6005818154811061041d57fe5b600091825260209091200154905081565b6104366109ac565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6104926109ac565b600780546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb62959181900360200190a150565b6002546001600160a01b0316331461052f5760405162461bcd60e51b8152600401808060200182810382526034815260200180610f1b6034913960400191505060405180910390fd5b60045461054390600163ffffffff6109f716565b600455565b6002546001600160a01b031633146105915760405162461bcd60e51b8152600401808060200182810382526034815260200180610f1b6034913960400191505060405180910390fd5b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00155565b600580546000919060001981019081106105dc57fe5b9060005260206000200154905090565b60065481565b6105fa6109ac565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6001546001600160a01b031633146106a65760405162461bcd60e51b8152600401808060200182810382526035815260200180610e966035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6003602052600090815260409020805460019091015482565b6000546001600160a01b031681565b60045481565b61074f6109ac565b600654421061078f5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f4f6029913960400191505060405180910390fd5b8281146107d5576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b60ff81168411156108285761082085858360ff168181106107f557fe5b905060200201356001600160a01b031684848460ff1681811061081457fe5b90506020020135610a5a565b6001016107d8565b5050505050565b6002546001600160a01b031633146108785760405162461bcd60e51b8152600401808060200182810382526034815260200180610f1b6034913960400191505060405180910390fd5b6001600160a01b039091166000908152600360205260409020908155600554600190910155565b6007546001600160a01b031681565b6002546001600160a01b031681565b6002546001600160a01b031633146109065760405162461bcd60e51b8152600401808060200182810382526034815260200180610f1b6034913960400191505060405180910390fd5b6001600160a01b0316600090815260036020526040812081815560010155565b6001600160a01b0316600090815260036020526040902054151590565b6002546001600160a01b0316331461098c5760405162461bcd60e51b8152600401808060200182810382526034815260200180610f1b6034913960400191505060405180910390fd5b60045461054390600163ffffffff610cd416565b60055490565b60085481565b6000546001600160a01b031633146109f55760405162461bcd60e51b815260040180806020018281038252602f815260200180610ecb602f913960400191505060405180910390fd5b565b600082820183811015610a51576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6008546000610a6f838363ffffffff6109f716565b600881905590506000610a88848363ffffffff610d3116565b90506000610b0c82730142f40c25ce1f1177ed131101fa19217396cb8863d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b158015610ad457600080fd5b505af4158015610ae8573d6000803e3d6000fd5b505050506040513d6020811015610afe57600080fd5b50519063ffffffff610cd416565b6001600160a01b038716600090815260036020526040902054909150610b4457600454610b4090600163ffffffff6109f716565b6004555b6001600160a01b0386166000908152600360205260409020828155600554600190910181905515610bbe576005610ba382600560016005805490500381548110610b8a57fe5b9060005260206000200154610d4a90919063ffffffff16565b81546001810183556000928352602090922090910155610c47565b6005730142f40c25ce1f1177ed131101fa19217396cb8863d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0457600080fd5b505af4158015610c18573d6000803e3d6000fd5b505050506040513d6020811015610c2e57600080fd5b5051815460018101835560009283526020909220909101555b6007546001600160a01b0387811660008181526003602052604080822080546001909101548251632199149d60e21b815260048101959095526024850191909152604484015251929093169263866452749260648084019382900301818387803b158015610cb457600080fd5b505af1158015610cc8573d6000803e3d6000fd5b50505050505050505050565b600082821115610d2b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000610a5183836b033b2e3c9fd0803ce8000000610d63565b6000610a5183836b033b2e3c9fd0803ce8000000610da7565b600080610d8984610d7d87600a870263ffffffff610dd216565b9063ffffffff610e2b16565b90506005600a825b0610610d9b57600a015b600a9004949350505050565b600080600a8304610dbe868663ffffffff610dd216565b81610dc557fe5b0490506005600a82610d91565b600082610de157506000610a54565b82820282848281610dee57fe5b0414610a515760405162461bcd60e51b8152600401808060200182810382526021815260200180610efa6021913960400191505060405180910390fd5b6000808211610e81576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610e8c57fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a723158203db45f8686ef001b97fee5e0cf3d2b5eded13be58814a040469e36a525e41e6e64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "appendDebtLedgerValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3d31e97b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "clearIssuanceData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb16c09f0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "debtLedger",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x08d95cd5"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtLedgerLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcd92eba9"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "decrementTotalIssuerCount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xba08f299"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "hasIssued",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb992812e"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "incrementTotalIssuerCount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1bfba595"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "issuanceData",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "initialDebtOwnership",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8b3f8088"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastDebtLedgerEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46317712"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "initialDebtOwnership",
							"type": "uint256"
						}
					],
					"name": "setCurrentIssuanceData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa764eb45"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46ba2d90"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuerCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9371bede"
				}
			],
			"source": {
				"keccak256": "0xe55944d38fb7a248fe0e1e4b40991de57fcc88895f12c6505a42bb48523cee69",
				"urls": [
					"bzz-raw://cc0ac9716e8963afc62bbd621abf8e21de997664bfb1c701daf221a06da790a2",
					"dweb:/ipfs/QmeUk1TCR26fqSHqNo8nCmETdxMEZ9p7MUtQCdW2urBtEG"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixState.sol": "SynthetixState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixState.sol": {
						"keccak256": "0xe55944d38fb7a248fe0e1e4b40991de57fcc88895f12c6505a42bb48523cee69",
						"urls": [
							"bzz-raw://cc0ac9716e8963afc62bbd621abf8e21de997664bfb1c701daf221a06da790a2",
							"dweb:/ipfs/QmeUk1TCR26fqSHqNo8nCmETdxMEZ9p7MUtQCdW2urBtEG"
						]
					}
				},
				"version": 1
			}
		},
		"Proxy": {
			"bytecode": "608060405234801561001957600080610016610135565b50505b50604051610cff380380610cff8339818101604052602081101561004557600080610042610135565b50505b8101908080519250829150506001600160a01b0381166100b45760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f742062652030000000000000006044820152606401604051809103906100b1610135565b50505b8060006001816100c26101a0565b816001600160a01b0302191690836001600160a01b03160217906100e4610200565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1505061024e565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561016d578086015182820160400152602001610152565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156101fb576000828201526020016101e4565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206101e4565b610aa28061025d6000396000f3fe6080604052600436106100705760003560e01c806379ba50971161004e57806379ba50971461022a5780638da5cb5b14610248578063907dff9714610266578063d4b839921461032857610070565b80631627540c1461016457806353a47bb7146101ab578063776d1a01146101e5575b6000600261007c6107aa565b906101000a90046001600160a01b03166001600160a01b031663bc67f8325a6100a3610805565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087806100df61084b565b1580156100f4576000806100f1610897565b50505b505a6100fe610902565b50505050505015801561011e573d6000803e3d600061011b610897565b50505b505050506040513660008237600080368334600261013a6107aa565b5a610143610902565b5050505050503d6000833e80610160573d8261015d610897565b50505b3d82f35b34801561017957600080610176610897565b50505b506101a96004803603602081101561019957600080610196610897565b50505b50356001600160a01b0316610346565b005b3480156101c0576000806101bd610897565b50505b506101c96103c0565b6040516001600160a01b03909116815260200160405180910390f35b3480156101fa576000806101f7610897565b50505b506101a96004803603602081101561021a57600080610217610897565b50505b50356001600160a01b03166103df565b34801561023f5760008061023c610897565b50505b506101a961045a565b34801561025d5760008061025a610897565b50505b506101c96105dd565b34801561027b57600080610278610897565b50505b506101a9600480360360c081101561029b57600080610298610897565b50505b8101906020810181356401000000008111156102bf576000806102bc610897565b50505b8201836020820111156102da576000806102d7610897565b50505b8035906020019184600183028401116401000000008311171561030557600080610302610897565b50505b9193509150803590602081013590604081013590606081013590608001356105e8565b34801561033d5760008061033a610897565b50505b506101c9610721565b61034e61072d565b806001808061035b6107aa565b816001600160a01b0302191690836001600160a01b031602179061037d6109ef565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b600060016103cc6107aa565b906101000a90046001600160a01b031681565b6103e761072d565b8060026001816103f56107aa565b816001600160a01b0302191690836001600160a01b03160217906104176109ef565b5050507f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e816040516001600160a01b03909116815260200160405180910390a150565b600060016104666107aa565b906101000a90046001600160a01b03166001600160a01b03165a610488610805565b6001600160a01b0316146104d65760405162461bcd60e51b8152600401808060200182810382526035815260200180610a3e60359139604001915050604051809103906104d3610897565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000806105026107aa565b906101000a90046001600160a01b0316600160009061051f6107aa565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a16000600161055e6107aa565b906101000a90046001600160a01b03166000806101000a8161057e6107aa565b816001600160a01b0302191690836001600160a01b03160217906105a06109ef565b5050506000600160006101000a816105b66107aa565b816001600160a01b0302191690836001600160a01b03160217906105d86109ef565b505050565b6000806103cc6107aa565b600060026105f46107aa565b906101000a90046001600160a01b03166001600160a01b03165a610616610805565b6001600160a01b0316146106705760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b60448201526064016040518091039061066d610897565b50505b8560608882806020601f82018190048102016040519081016040528181529291906020840183838082843760009201919091525092935089925050811590506106d857600181146106e357600281146106ef57600381146106fc576004811461070a57610715565b8260208301a0610715565b868360208401a1610715565b85878460208501a2610715565b8486888560208601a3610715565b838587898660208701a45b50505050505050505050565b600060026103cc6107aa565b6000806107386107aa565b906101000a90046001600160a01b03166001600160a01b03165a61075a610805565b6001600160a01b0316146107a85760405162461bcd60e51b815260040180806020018281038252602f815260200180610a73602f9139604001915050604051809103906107a5610897565b50505b565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156105d8576000828201526020016107ee565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206107ee565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206107ee565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156108cf5780860151828201604001526020016108b4565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6385979f76598160e01b8152610935565b808083111561091f5750815b92915050565b808083101561091f575090919050565b836004820152846024820152606060448201528760648201526084810160005b8981101561096d578089015182820152602001610955565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af150596109c28e3d610925565b8d016109ce8187610913565b5b828110156109e357600081526020016109cf565b50929d50505050505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206107ee56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "contract Proxyable",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes",
							"name": "callData",
							"type": "bytes"
						},
						{
							"internalType": "uint256",
							"name": "numTopics",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "topic1",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic2",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic3",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic4",
							"type": "bytes32"
						}
					],
					"name": "_emit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract Proxyable",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "contract Proxyable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x53631d2b1f4ff2cfe60115674a26632a38ada985b5081959af31b8998d36de17",
				"urls": [
					"bzz-raw://b9211f366ec8ebf5eda0d3ecc6471d9472d8b3f90a853a1c9e2d22fe65b5d75b",
					"dweb:/ipfs/QmTyakvrh5abNMjLzC8ZRSQwduNoMMCLSdH8Y6KeJWzTLs"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Proxy.sol": "Proxy"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Proxy.sol": {
						"keccak256": "0x53631d2b1f4ff2cfe60115674a26632a38ada985b5081959af31b8998d36de17",
						"urls": [
							"bzz-raw://b9211f366ec8ebf5eda0d3ecc6471d9472d8b3f90a853a1c9e2d22fe65b5d75b",
							"dweb:/ipfs/QmTyakvrh5abNMjLzC8ZRSQwduNoMMCLSdH8Y6KeJWzTLs"
						]
					}
				},
				"version": 1
			}
		},
		"EternalStorage": {
			"bytecode": "60806040523480156200001c57600080620000196200023e565b50505b5060405162001c1938038062001c19833981810160405260408110156200004d576000806200004a6200023e565b50505b810190808051929190602001805192508291508390506001600160a01b038116620000c95760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390620000c66200023e565b50505b806000600181620000d9620002ab565b816001600160a01b0302191690836001600160a01b0316021790620000fd6200030d565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1506000808062000156620002ab565b906101000a90046001600160a01b03166001600160a01b03161415620001c15760405162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015260640160405180910390620001be6200023e565b50505b806002600181620001d1620002ab565b816001600160a01b0302191690836001600160a01b0316021790620001f56200030d565b5050507f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03816040516001600160a01b03909116815260200160405180910390a15050506200035c565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015620002785780860151828201604001526020016200025b565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156200030857600082820152602001620002ef565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020620002ef565b6118ad806200036c6000396000f3fe608060405234801561001957600080610016611517565b50505b50600436106101b25760003560e01c806353a47bb711610102578063a209a29c116100a0578063ba69fcaa1161007a578063ba69fcaa146105a8578063bdc963d8146105ce578063c9a52d2c146105f4578063f58660661461068f576101b2565b8063a209a29c1461054e578063a77aa49e14610574578063aefc4ccb146105a0576101b2565b80638267a9ee116100dc5780638267a9ee146104d45780638da5cb5b146104fa5780639007127b1461050257806393fe424814610528576101b2565b806353a47bb71461048f5780635a2bf25a1461049757806379ba5097146104cc576101b2565b806325cf512d1161016f5780633eba9ed2116101495780633eba9ed21461035357806344bfa56e146103815780634c77e5ba1461041e57806352f445ca14610460576101b2565b806325cf512d146102d55780633562fd20146103015780633cc1635c1461032d576101b2565b8063025ec81a146101c0578063043106c0146101f85780630c55d92514610220578063124f2418146102465780631627540c1461026c57806317e7dd221461029b575b6000806101bd611517565b50505b6101e6600480360360208110156101df576000806101dc611517565b50505b503561072a565b60405190815260200160405180910390f35b61021e6004803603602081101561021757600080610214611517565b50505b5035610746565b005b61021e6004803603602081101561023f5760008061023c611517565b50505b50356107f5565b61021e6004803603602081101561026557600080610262611517565b50505b503561088d565b61021e6004803603602081101561028b57600080610288611517565b50505b50356001600160a01b0316610922565b6102c1600480360360208110156102ba576000806102b7611517565b50505b503561099c565b604051901515815260200160405180910390f35b61021e600480360360408110156102f4576000806102f1611517565b50505b50803590602001356109c6565b61021e600480360360408110156103205760008061031d611517565b50505b5080359060200135610a63565b61021e6004803603602081101561034c57600080610349611517565b50505b5035610af9565b61021e600480360360408110156103725760008061036f611517565b50505b50803590602001351515610b9d565b6103a7600480360360208110156103a05760008061039d611517565b50505b5035610c49565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103e35780820151838201526020016103cb565b50505050905090810190601f1680156104105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104446004803603602081101561043d5760008061043a611517565b50505b5035610d15565b6040516001600160a01b03909116815260200160405180910390f35b61021e6004803603602081101561047f5760008061047c611517565b50505b50356001600160a01b0316610d45565b610444610dc0565b61021e600480360360408110156104b6576000806104b3611517565b50505b50803590602001356001600160a01b0316610ddf565b61021e610e98565b61021e600480360360208110156104f3576000806104f0611517565b50505b5035611016565b6104446110ab565b6101e6600480360360208110156105215760008061051e611517565b50505b50356110b6565b61021e6004803603602081101561054757600080610544611517565b50505b50356110cc565b6103a76004803603602081101561056d5760008061056a611517565b50505b5035611161565b61021e6004803603604081101561059357600080610590611517565b50505b5080359060200135611215565b6104446112ab565b61021e600480360360208110156105c7576000806105c4611517565b50505b50356112b7565b6101e6600480360360208110156105ed576000806105ea611517565b50505b503561134c565b61021e6004803603604081101561061357600080610610611517565b50505b8135919081019060408101602082013564010000000081111561063e5760008061063b611517565b50505b82018360208201111561065957600080610656611517565b50505b8035906020019184600183028401116401000000008311171561068457600080610681611517565b50505b509092509050611362565b61021e600480360360408110156106ae576000806106ab611517565b50505b813591908101906040810160208201356401000000008111156106d9576000806106d6611517565b50505b8201836020820111156106f4576000806106f1611517565b50505b8035906020019184600183028401116401000000008311171561071f5760008061071c611517565b50505b509092509050611401565b6000818152600760205260408120610740611582565b92915050565b60006002610752611582565b906101000a90046001600160a01b03166001600160a01b03165a6107746115dd565b6001600160a01b0316146107c25760405162461bcd60e51b815260040180806020018281038252603481526020018061187960349139604001915050604051809103906107bf611517565b50505b60008181526005602052604090206001816107db611582565b906001600160a01b03021916906107f0611623565b505050565b60006002610801611582565b906101000a90046001600160a01b03166001600160a01b03165a6108236115dd565b6001600160a01b0316146108715760405162461bcd60e51b8152600401808060200182810382526034815260200180611879603491396040019150506040518091039061086e611517565b50505b600081815260066020526040902061088a906000611671565b50565b60006002610899611582565b906101000a90046001600160a01b03166001600160a01b03165a6108bb6115dd565b6001600160a01b0316146109095760405162461bcd60e51b81526004018080602001828103825260348152602001806118796034913960400191505060405180910390610906611517565b50505b60008181526007602052604090206000906107f0611623565b61092a61149a565b8060018080610937611582565b816001600160a01b0302191690836001600160a01b0316021790610959611623565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b60008181526008602052604081206000906109b5611582565b906101000a900460ff169050919050565b600060026109d2611582565b906101000a90046001600160a01b03166001600160a01b03165a6109f46115dd565b6001600160a01b031614610a425760405162461bcd60e51b81526004018080602001828103825260348152602001806118796034913960400191505060405180910390610a3f611517565b50505b600082815260076020528190604090208190610a5c611623565b5050505050565b60006002610a6f611582565b906101000a90046001600160a01b03166001600160a01b03165a610a916115dd565b6001600160a01b031614610adf5760405162461bcd60e51b81526004018080602001828103825260348152602001806118796034913960400191505060405180910390610adc611517565b50505b600082815260036020528190604090208190610a5c611623565b60006002610b05611582565b906101000a90046001600160a01b03166001600160a01b03165a610b276115dd565b6001600160a01b031614610b755760405162461bcd60e51b81526004018080602001828103825260348152602001806118796034913960400191505060405180910390610b72611517565b50505b6000818152600860205260409020600181610b8e611582565b9060ff021916906107f0611623565b60006002610ba9611582565b906101000a90046001600160a01b03166001600160a01b03165a610bcb6115dd565b6001600160a01b031614610c195760405162461bcd60e51b81526004018080602001828103825260348152602001806118796034913960400191505060405180910390610c16611517565b50505b60008281526008602052819060409020600181610c34611582565b8160ff02191690831515021790610a5c611623565b600081815260066020526060906040902080610c63611582565b600181600116156101000203166002900480601f016020809104026020016040519081016040528181529190602083018280610c9d611582565b60018160011615610100020316600290048015610d095780601f10610cd7576101008083610cc9611582565b040283529160200191610d09565b820191906000526020600020905b81610cee611582565b81529060010190602001808311610ce557829003601f168201915b50505050509050919050565b6000818152600560205260408120600090610d2e611582565b906101000a90046001600160a01b03169050919050565b610d4d61149a565b806002600181610d5b611582565b816001600160a01b0302191690836001600160a01b0316021790610d7d611623565b5050507f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03816040516001600160a01b03909116815260200160405180910390a150565b60006001610dcc611582565b906101000a90046001600160a01b031681565b60006002610deb611582565b906101000a90046001600160a01b03166001600160a01b03165a610e0d6115dd565b6001600160a01b031614610e5b5760405162461bcd60e51b81526004018080602001828103825260348152602001806118796034913960400191505060405180910390610e58611517565b50505b60008281526005602052819060409020600181610e76611582565b816001600160a01b0302191690836001600160a01b0316021790610a5c611623565b60006001610ea4611582565b906101000a90046001600160a01b03166001600160a01b03165a610ec66115dd565b6001600160a01b031614610f145760405162461bcd60e51b81526004018080602001828103825260358152602001806118156035913960400191505060405180910390610f11611517565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c600080610f40611582565b906101000a90046001600160a01b03166001600090610f5d611582565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a160006001610f9c611582565b906101000a90046001600160a01b03166000806101000a81610fbc611582565b816001600160a01b0302191690836001600160a01b0316021790610fde611623565b5050506000600160006101000a81610ff4611582565b816001600160a01b0302191690836001600160a01b03160217906107f0611623565b60006002611022611582565b906101000a90046001600160a01b03166001600160a01b03165a6110446115dd565b6001600160a01b0316146110925760405162461bcd60e51b8152600401808060200182810382526034815260200180611879603491396040019150506040518091039061108f611517565b50505b60008181526009602052604090206000906107f0611623565b600080610dcc611582565b6000818152600960205260408120610740611582565b600060026110d8611582565b906101000a90046001600160a01b03166001600160a01b03165a6110fa6115dd565b6001600160a01b0316146111485760405162461bcd60e51b81526004018080602001828103825260348152602001806118796034913960400191505060405180910390611145611517565b50505b60008181526003602052604090206000906107f0611623565b60008181526004602052606090604090208061117b611582565b600181600116156101000203166002900480601f0160208091040260200160405190810160405281815291906020830182806111b5611582565b60018160011615610100020316600290048015610d095780601f106111e1576101008083610cc9611582565b820191906000526020600020905b816111f8611582565b815290600101906020018083116111ef5750939695505050505050565b60006002611221611582565b906101000a90046001600160a01b03166001600160a01b03165a6112436115dd565b6001600160a01b0316146112915760405162461bcd60e51b8152600401808060200182810382526034815260200180611879603491396040019150506040518091039061128e611517565b50505b600082815260096020528190604090208190610a5c611623565b60006002610dcc611582565b600060026112c3611582565b906101000a90046001600160a01b03166001600160a01b03165a6112e56115dd565b6001600160a01b0316146113335760405162461bcd60e51b81526004018080602001828103825260348152602001806118796034913960400191505060405180910390611330611517565b50505b600081815260046020526040902061088a906000611671565b6000818152600360205260408120610740611582565b6000600261136e611582565b906101000a90046001600160a01b03166001600160a01b03165a6113906115dd565b6001600160a01b0316146113de5760405162461bcd60e51b815260040180806020018281038252603481526020018061187960349139604001915050604051809103906113db611517565b50505b6000838152600660205282908290604090206113fb9290916116c3565b50505050565b6000600261140d611582565b906101000a90046001600160a01b03166001600160a01b03165a61142f6115dd565b6001600160a01b03161461147d5760405162461bcd60e51b8152600401808060200182810382526034815260200180611879603491396040019150506040518091039061147a611517565b50505b6000838152600460205282908290604090206113fb929091611763565b6000806114a5611582565b906101000a90046001600160a01b03166001600160a01b03165a6114c76115dd565b6001600160a01b0316146115155760405162461bcd60e51b815260040180806020018281038252602f81526020018061184a602f913960400191505060405180910390611512611517565b50505b565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561154f578086015182820160400152602001611534565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156107f0576000828201526020016115c6565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206115c6565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206115c6565b508061167b611582565b6001816001161561010002031660029004600082611697611623565b505080601f106116a7575061088a565b601f016020900490600052602060002061088a918101906117ec565b82806116cd611582565b600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117145782800160ff19823516178561170d611623565b5050611753565b82800160010185611723611623565b50508215611753579182015b8281111561175357823582611742611623565b50509160200191906001019061172f565b5061175f9291506117ec565b5090565b828061176d611582565b600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117ad5782800160ff19823516178561170d611623565b828001600101856117bc611623565b50508215611753579182015b82811115611753578235826117db611623565b5050916020019190600101906117c8565b61181191905b8082111561175f5760008082611806611623565b5050506001016117f2565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6e",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBooleanValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytesValue",
					"outputs": [
						{
							"internalType": "bytes",
							"name": "",
							"type": "bytes"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getStringValue",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes",
							"name": "value",
							"type": "bytes"
						}
					],
					"name": "setBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "string",
							"name": "value",
							"type": "string"
						}
					],
					"name": "setStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x10437b0324da2d0e4ab696d3b619ba0a308548fb967600a76df48f22db7aad26",
				"urls": [
					"bzz-raw://1c719a4a429c781fda0ff9934118865db9b937e330a3ed927e613591cf3ebbe7",
					"dweb:/ipfs/QmePmXcrf2GFWBFdyVcJXyfuGos8a8mnd4NX6j7A7qcA9L"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EternalStorage.sol": "EternalStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EternalStorage.sol": {
						"keccak256": "0x10437b0324da2d0e4ab696d3b619ba0a308548fb967600a76df48f22db7aad26",
						"urls": [
							"bzz-raw://1c719a4a429c781fda0ff9934118865db9b937e330a3ed927e613591cf3ebbe7",
							"dweb:/ipfs/QmePmXcrf2GFWBFdyVcJXyfuGos8a8mnd4NX6j7A7qcA9L"
						]
					}
				},
				"version": 1
			}
		},
		"DelegateApprovals": {
			"bytecode": "608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063b5bb561911610097578063c5e17ab011610071578063c5e17ab014610487578063d8eeb7c11461048f578063e32b3f5214610497578063faf431bb1461049f5761018e565b8063b5bb561914610415578063b9156efa1461043b578063bc87acbf146104615761018e565b80638da5cb5b1461038357806398ff9c541461038b5780639c79ce35146103935780639cbc2ebe146103b95780639f61d336146103c1578063b42e0f15146103e75761018e565b8063447fbc631161014b5780636c8bc9fe116101255780636c8bc9fe146103015780636f95200b1461032757806379ba50971461034d5780637d3f0ba2146103555761018e565b8063447fbc631461029157806353a47bb7146102b757806359cec3d6146102db5761018e565b806304872617146101935780631627540c146101d557806321f4ae57146101fd5780632c70aecf1461022b5780634180e5b514610245578063431ce5401461026b575b600080fd5b6101c1600480360360408110156101a957600080fd5b506001600160a01b03813581169160200135166104cd565b604080519115158252519081900360200190f35b6101fb600480360360208110156101eb57600080fd5b50356001600160a01b03166104f3565b005b6101c16004803603604081101561021357600080fd5b506001600160a01b038135811691602001351661054f565b61023361056e565b60408051918252519081900360200190f35b6101fb6004803603602081101561025b57600080fd5b50356001600160a01b0316610584565b6101fb6004803603602081101561028157600080fd5b50356001600160a01b03166105a4565b6101fb600480360360208110156102a757600080fd5b50356001600160a01b03166105c1565b6102bf6105e1565b604080516001600160a01b039092168252519081900360200190f35b6101fb600480360360208110156102f157600080fd5b50356001600160a01b03166105f0565b6101fb6004803603602081101561031757600080fd5b50356001600160a01b031661060c565b6101fb6004803603602081101561033d57600080fd5b50356001600160a01b0316610629565b6101fb61065a565b6101c16004803603604081101561036b57600080fd5b506001600160a01b0381358116916020013516610716565b6102bf610734565b6102bf610743565b6101fb600480360360208110156103a957600080fd5b50356001600160a01b0316610752565b61023361076e565b6101fb600480360360208110156103d757600080fd5b50356001600160a01b031661077f565b6101c1600480360360408110156103fd57600080fd5b506001600160a01b038135811691602001351661079c565b6101fb6004803603602081101561042b57600080fd5b50356001600160a01b031661082f565b6101fb6004803603602081101561045157600080fd5b50356001600160a01b03166108d6565b6101fb6004803603602081101561047757600080fd5b50356001600160a01b03166108f6565b61023361090e565b610233610924565b61023361093d565b6101c1600480360360408110156104b557600080fd5b506001600160a01b0381358116916020013516610952565b60006104ec6e4973737565466f724164647265737360881b8484610970565b9392505050565b6104fb610a0d565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006104ec6e436c61696d466f724164647265737360881b8484610970565b6e4973737565466f724164647265737360881b81565b6105a16e436c61696d466f724164647265737360881b3383610a58565b50565b6105a16e4973737565466f724164647265737360881b3383610b78565b6105a17145786368616e6765466f724164647265737360701b3383610a58565b6001546001600160a01b031681565b6105a16d4275726e466f724164647265737360901b3383610b78565b6105a16e436c61696d466f724164647265737360881b3383610b78565b60005b60058110156106565761064e6002826005811061064557fe5b01543384610b78565b60010161062c565b5050565b6001546001600160a01b031633146106a35760405162461bcd60e51b8152600401808060200182810382526035815260200180610d256035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104ec6d4275726e466f724164647265737360901b8484610970565b6000546001600160a01b031681565b6007546001600160a01b031681565b6105a16d4275726e466f724164647265737360901b3383610a58565b69105c1c1c9bdd99505b1b60b21b81565b6105a16e4973737565466f724164647265737360881b3383610a58565b6007546000906001600160a01b03166317e7dd226107c869105c1c1c9bdd99505b1b60b21b8686610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156107fc57600080fd5b505afa158015610810573d6000803e3d6000fd5b505050506040513d602081101561082657600080fd5b50519392505050565b610837610a0d565b6001600160a01b03811661087c5760405162461bcd60e51b8152600401808060200182810382526026815260200180610cff6026913960400191505060405180910390fd5b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fe3ebe3d58e84fbd094152babb730cf99a14b47f65ed04f35a3bd6356f8161a17916020908290030190a150565b6105a17145786368616e6765466f724164647265737360701b3383610b78565b6105a169105c1c1c9bdd99505b1b60b21b3383610a58565b6e436c61696d466f724164647265737360881b81565b7145786368616e6765466f724164647265737360701b81565b6d4275726e466f724164647265737360901b81565b60006104ec7145786368616e6765466f724164647265737360701b84845b600061097c838361079c565b15610989575060016104ec565b6007546001600160a01b03166317e7dd226109a5868686610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156109d957600080fd5b505afa1580156109ed573d6000803e3d6000fd5b505050506040513d6020811015610a0357600080fd5b5051949350505050565b6000546001600160a01b03163314610a565760405162461bcd60e51b815260040180806020018281038252602f815260200180610d5a602f913960400191505060405180910390fd5b565b6001600160a01b038116610ab3576040805162461bcd60e51b815260206004820152601c60248201527f43616e27742064656c656761746520746f206164647265737328302900000000604482015290519081900360640190fd5b6007546001600160a01b0316633eba9ed2610acf858585610cb2565b60016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610b1257600080fd5b505af1158015610b26573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201889052825190871694507f36a9e0c1da9cdc6d8f4bd4cb261f9ad6a45eb1641a557ead7530fbeff9a2633693509081900390910190a2505050565b6007546001600160a01b03166317e7dd22610b94858585610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610bc857600080fd5b505afa158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b505115610cad576007546001600160a01b0316633cc1635c610c15858585610cb2565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c4b57600080fd5b505af1158015610c5f573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201889052825190871694507f7e8dc09322ac82342d9dbfd49eb6497fa7ab69ac444f3763a9b8e16530342f4193509081900390910190a25b505050565b6040805160208082018690526bffffffffffffffffffffffff19606086811b82168486015285901b1660548301528251604881840301815260689092019092528051910120939250505056fe43616e27742073657420657465726e616c53746f7261676520746f2061646472657373283029596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820e12b7b14c18eca217ff78f5999c2f2cb4e2a6a9b5bc34992f3bd69f69dbc445164736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract EternalStorage",
							"name": "_eternalStorage",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "action",
							"type": "bytes32"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newEternalStorage",
							"type": "address"
						}
					],
					"name": "EternalStorageUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "action",
							"type": "bytes32"
						}
					],
					"name": "WithdrawApproval",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "APPROVE_ALL",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "BURN_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CLAIM_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "EXCHANGE_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "ISSUE_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveAllDelegatePowers",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveBurnOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveClaimOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveExchangeOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveIssueOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approvedAll",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canBurnFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canClaimFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canExchangeFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canIssueFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "eternalStorage",
					"outputs": [
						{
							"internalType": "contract EternalStorage",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeAllDelegatePowers",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeBurnOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeClaimOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeExchangeOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeIssueOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract EternalStorage",
							"name": "_eternalStorage",
							"type": "address"
						}
					],
					"name": "setEternalStorage",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x582394312406975b05d4b02309f0797ea6db83123cde07730963be40b45bf296",
				"urls": [
					"bzz-raw://72623300a4d0b348822d0d6f5eb99823171b841fe74a8a6bfdaca59f94b57dd9",
					"dweb:/ipfs/QmajaYcpWsDfS9wL2M2NvdZ2EhFoJGUz4P6RNpWVQWU5rH"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DelegateApprovals.sol": "DelegateApprovals"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DelegateApprovals.sol": {
						"keccak256": "0x582394312406975b05d4b02309f0797ea6db83123cde07730963be40b45bf296",
						"urls": [
							"bzz-raw://72623300a4d0b348822d0d6f5eb99823171b841fe74a8a6bfdaca59f94b57dd9",
							"dweb:/ipfs/QmajaYcpWsDfS9wL2M2NvdZ2EhFoJGUz4P6RNpWVQWU5rH"
						]
					}
				},
				"version": 1
			}
		},
		"FeePoolEternalStorage": {
			"bytecode": "608060405234801561001057600080fd5b50600436106101cf5760003560e01c806353a47bb711610104578063a209a29c116100a2578063ba69fcaa11610071578063ba69fcaa146105d5578063bdc963d8146105f2578063c9a52d2c1461060f578063f586606614610684576101cf565b8063a209a29c146104cf578063a77aa49e146104ec578063aefc4ccb1461050f578063b3ffbd9e14610517576101cf565b80638267a9ee116100de5780638267a9ee146104705780638da5cb5b1461048d5780639007127b1461049557806393fe4248146104b2576101cf565b806353a47bb7146104345780635a2bf25a1461043c57806379ba509714610468576101cf565b80633562fd201161017157806344bfa56e1161014b57806344bfa56e1461033b57806346ba2d90146103cd5780634c77e5ba146103d557806352f445ca1461040e576101cf565b80633562fd20146102d65780633cc1635c146102f95780633eba9ed214610316576101cf565b8063124f2418116101ad578063124f24181461023f5780631627540c1461025c57806317e7dd221461028257806325cf512d146102b3576101cf565b8063025ec81a146101d4578063043106c0146102035780630c55d92514610222575b600080fd5b6101f1600480360360208110156101ea57600080fd5b50356106f9565b60408051918252519081900360200190f35b6102206004803603602081101561021957600080fd5b503561070b565b005b6102206004803603602081101561023857600080fd5b5035610772565b6102206004803603602081101561025557600080fd5b50356107d5565b6102206004803603602081101561027257600080fd5b50356001600160a01b031661082f565b61029f6004803603602081101561029857600080fd5b503561088b565b604080519115158252519081900360200190f35b610220600480360360408110156102c957600080fd5b50803590602001356108a0565b610220600480360360408110156102ec57600080fd5b50803590602001356108fb565b6102206004803603602081101561030f57600080fd5b5035610956565b6102206004803603604081101561032c57600080fd5b508035906020013515156109b7565b6103586004803603602081101561035157600080fd5b5035610a20565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039257818101518382015260200161037a565b50505050905090810190601f1680156103bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f1610ac1565b6103f2600480360360208110156103eb57600080fd5b5035610ac7565b604080516001600160a01b039092168252519081900360200190f35b6102206004803603602081101561042457600080fd5b50356001600160a01b0316610ae2565b6103f2610b3e565b6102206004803603604081101561045257600080fd5b50803590602001356001600160a01b0316610b4d565b610220610bc4565b6102206004803603602081101561048657600080fd5b5035610c80565b6103f2610cda565b6101f1600480360360208110156104ab57600080fd5b5035610ce9565b610220600480360360208110156104c857600080fd5b5035610cfb565b610358600480360360208110156104e557600080fd5b5035610d55565b6102206004803603604081101561050257600080fd5b5080359060200135610dbf565b6103f2610e1a565b6102206004803603604081101561052d57600080fd5b810190602081018135600160201b81111561054757600080fd5b82018360208201111561055957600080fd5b803590602001918460208302840111600160201b8311171561057a57600080fd5b919390929091602081019035600160201b81111561059757600080fd5b8201836020820111156105a957600080fd5b803590602001918460208302840111600160201b831117156105ca57600080fd5b509092509050610e29565b610220600480360360208110156105eb57600080fd5b5035610fc1565b6101f16004803603602081101561060857600080fd5b5035611021565b6102206004803603604081101561062557600080fd5b81359190810190604081016020820135600160201b81111561064657600080fd5b82018360208201111561065857600080fd5b803590602001918460018302840111600160201b8311171561067957600080fd5b509092509050611033565b6102206004803603604081101561069a57600080fd5b81359190810190604081016020820135600160201b8111156106bb57600080fd5b8201836020820111156106cd57600080fd5b803590602001918460018302840111600160201b831117156106ee57600080fd5b50909250905061109b565b60009081526007602052604090205490565b6002546001600160a01b031633146107545760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260056020526040902080546001600160a01b0319169055565b6002546001600160a01b031633146107bb5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60008181526006602052604081206107d291611148565b50565b6002546001600160a01b0316331461081e5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260076020526040812055565b6108376110fd565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60009081526008602052604090205460ff1690565b6002546001600160a01b031633146108e95760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526007602052604090912055565b6002546001600160a01b031633146109445760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526003602052604090912055565b6002546001600160a01b0316331461099f5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b6000908152600860205260409020805460ff19169055565b6002546001600160a01b03163314610a005760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600091825260086020526040909120805460ff1916911515919091179055565b60008181526006602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b50505050509050919050565b600a5481565b6000908152600560205260409020546001600160a01b031690565b610aea6110fd565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6002546001600160a01b03163314610b965760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526005602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610c0d5760405162461bcd60e51b81526004018080602001828103825260358152602001806112286035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b03163314610cc95760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260096020526040812055565b6000546001600160a01b031681565b60009081526009602052604090205490565b6002546001600160a01b03163314610d445760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260036020526040812055565b60008181526004602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b6002546001600160a01b03163314610e085760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526009602052604090912055565b6002546001600160a01b031681565b610e316110fd565b600a544210610e715760405162461bcd60e51b81526004018080602001828103825260298152602001806112c06029913960400191505060405180910390fd5b828114610eb7576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b60ff8116841115610fba5730633562fd20721b185cdd17d9995957ddda5d1a191c985dd85b606a1b878760ff8616818110610ef157fe5b905060200201356001600160a01b031660405160200180838152602001826001600160a01b03166001600160a01b031660601b8152601401925050506040516020818303038152906040528051906020012085858560ff16818110610f5257fe5b905060200201356040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015610f9657600080fd5b505af1158015610faa573d6000803e3d6000fd5b505060019092019150610eba9050565b5050505050565b6002546001600160a01b0316331461100a5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60008181526004602052604081206107d291611148565b60009081526003602052604090205490565b6002546001600160a01b0316331461107c5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600083815260066020526040902061109590838361118c565b50505050565b6002546001600160a01b031633146110e45760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600083815260046020526040902061109590838361118c565b6000546001600160a01b031633146111465760405162461bcd60e51b815260040180806020018281038252602f81526020018061125d602f913960400191505060405180910390fd5b565b50805460018160011615610100020316600290046000825580601f1061116e57506107d2565b601f0160209004906000526020600020908101906107d2919061120a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111cd5782800160ff198235161785556111fa565b828001600101855582156111fa579182015b828111156111fa5782358255916020019190600101906111df565b5061120692915061120a565b5090565b61122491905b808211156112065760008155600101611210565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a72315820bc56e87fc75a62681e75808cb8070f1e6dea586a1becaa627698cf1bcb232bf264736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBooleanValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytesValue",
					"outputs": [
						{
							"internalType": "bytes",
							"name": "",
							"type": "bytes"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getStringValue",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "feePeriodIDs",
							"type": "uint256[]"
						}
					],
					"name": "importFeeWithdrawalData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes",
							"name": "value",
							"type": "bytes"
						}
					],
					"name": "setBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "string",
							"name": "value",
							"type": "string"
						}
					],
					"name": "setStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x5834ed652e08a0789bd0b5180a6bdb9ca743d8f01445142edcd8b55e4d19da5e",
				"urls": [
					"bzz-raw://5903bd1c926408201d1944cde06e56e2d3d1e685698ddab157247094ebdd4437",
					"dweb:/ipfs/QmVQT3gPjxoxwd1tSAKKNJeZgaN1pzt4a2RQUi2eJYbUv8"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePoolEternalStorage.sol": "FeePoolEternalStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FeePoolEternalStorage.sol": {
						"keccak256": "0x5834ed652e08a0789bd0b5180a6bdb9ca743d8f01445142edcd8b55e4d19da5e",
						"urls": [
							"bzz-raw://5903bd1c926408201d1944cde06e56e2d3d1e685698ddab157247094ebdd4437",
							"dweb:/ipfs/QmVQT3gPjxoxwd1tSAKKNJeZgaN1pzt4a2RQUi2eJYbUv8"
						]
					}
				},
				"version": 1
			}
		},
		"FeePool": {
			"bytecode": "6080604052631cd554d160e21b6007553480156200001c57600080fd5b50604051620045c2380380620045c28339810160408190526200003f9162000226565b8080621baf8085856001600160a01b038116620000795760405162461bcd60e51b8152600401620000709062000348565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c691849062000310565b60405180910390a1506000546001600160a01b0316620000fa5760405162461bcd60e51b8152600401620000709062000336565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e906200014790839062000300565b60405180910390a1504201600455600580546001600160a01b0319166001600160a01b0392909216919091179055506001620001846000620001e7565b80546001600160401b0319166001600160401b039290921691909117905542620001af6000620001e7565b80546001600160401b03929092166801000000000000000002600160401b600160801b031990921691909117905550620003a3915050565b60006008600260ff16836016540181620001fd57fe5b06600281106200020957fe5b6007020192915050565b8051620002208162000389565b92915050565b6000806000606084860312156200023c57600080fd5b60006200024a868662000213565b93505060206200025d8682870162000213565b9250506040620002708682870162000213565b9150509250925092565b620002858162000375565b82525050565b620002858162000363565b6000620002a56011836200035a565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620002d46019836200035a565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b602081016200022082846200027a565b604081016200032082856200027a565b6200032f60208301846200028b565b9392505050565b60208082528101620002208162000296565b602080825281016200022081620002c5565b90815260200190565b60006001600160a01b03821662000220565b600062000220826000620002208262000363565b620003948162000363565b8114620003a057600080fd5b50565b61420f80620003b36000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80636466f45e11610160578063b410a034116100d8578063e0e6393d1161008c578063ec55688911610071578063ec55688914610497578063f43d41611461049f578063fd1f498d146104b257610277565b8063e0e6393d14610487578063eb1edd611461048f57610277565b8063cff2ddad116100bd578063cff2ddad14610462578063d294f09314610477578063d67bdd251461047f57610277565b8063b410a03414610447578063bc67f8321461044f57610277565b806379ba50971161012f5780638da5cb5b116101145780638da5cb5b1461042457806397107d6d1461042c578063ac8341931461043f57610277565b806379ba509714610407578063899ffef41461040f57610277565b80636466f45e146103d15780636de813f1146103e457806373941b96146103ec57806374185360146103ff57610277565b806333140016116101f357806346ba2d90116101c2578063569249d0116101a7578063569249d0146103ae57806359a2f19f146103b6578063614d08f8146103c957610277565b806346ba2d901461039157806353a47bb71461039957610277565b8063331400161461033b5780633ebc457a1461035b5780633fcd22401461036357806341c178c31461038957610277565b80631627540c1161024a57806322bf55ef1161022f57806322bf55ef1461030b5780632af64bd31461031e5780632e227eeb1461033357610277565b80631627540c146102ee57806322425fa41461030357610277565b806304f3bcec1461027c57806307ea50cd1461029a5780630813071c146102ba5780630de58615146102cd575b600080fd5b6102846104c5565b6040516102919190613eb2565b60405180910390f35b6102ad6102a83660046131df565b6104d4565b6040516102919190613dea565b6102ad6102c8366004613223565b6105a9565b6102e06102db3660046131df565b6106bb565b604051610291929190613e06565b6103016102fc3660046131df565b61073d565b005b6102ad61079b565b6103016103193660046132b7565b6107ab565b610326610808565b6040516102919190613ddc565b6102e061091f565b61034e6103493660046131df565b610aa6565b6040516102919190613dbd565b610301610c9d565b6103766103713660046132b7565b610ea5565b604051610291979695949392919061402f565b6102e0610f53565b6102ad611001565b6103a1611007565b6040516102919190613d43565b6102ad611016565b6103266103c43660046131df565b611071565b6102ad611083565b6103266103df3660046131df565b6110a7565b6102ad6111d3565b6103016103fa366004613305565b611228565b610301611310565b610301611462565b6104176114fe565b6040516102919190613dcb565b6103a1611858565b61030161043a3660046131df565b611867565b6102ad6118ba565b6102ad611966565b61030161045d3660046131df565b611970565b61046a61199a565b6040516102919190614097565b61032661199f565b6103a1611a16565b6102ad611a25565b6103a1611a2f565b610284611a47565b6103016104ad366004613324565b611a56565b6103016104c03660046132b7565b611c06565b6005546001600160a01b031681565b60006104de611c72565b6001600160a01b031663bdc963d87f6c6173745f6665655f7769746864726177616c000000000000000000000000008460405160200161051f929190613cdc565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016105519190613dea565b60206040518083038186803b15801561056957600080fd5b505afa15801561057d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105a1919081019061327b565b90505b919050565b60008115806105b9575060028210155b156105c6575060006106b5565b6105d260018303611c9d565b5468010000000000000000900467ffffffffffffffff166105f5575060006106b5565b6105fd611cc7565b6001600160a01b0316638ced14df846008856002811061061957fe5b60070201546040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152610662929167ffffffffffffffff1690600401613d7a565b60206040518083038186803b15801561067a57600080fd5b505afa15801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106b2919081019061327b565b90505b92915050565b6000806106c66130ee565b6106cf84610aa6565b905060008060015b6002811015610730576106fc8482600281106106ef57fe5b6020020151518490611cf2565b925061072684826002811061070d57fe5b602002015160016020020151839063ffffffff611cf216565b91506001016106d7565b509093509150505b915091565b610745611d17565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610790908390613d43565b60405180910390a150565b60006107a5611d43565b90505b90565b6107b433611e0a565b6107d95760405162461bcd60e51b81526004016107d090613ed1565b60405180910390fd5b6107f7816107e76000611c9d565b600301549063ffffffff611cf216565b6108016000611c9d565b6003015550565b600060606108146114fe565b905060005b815181101561091657600082828151811061083057fe5b602090810291909101810151600081815260069092526040918290205460055492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610881908590600401613dea565b60206040518083038186803b15801561089957600080fd5b505afa1580156108ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108d19190810190613205565b6001600160a01b03161415806108fc57506000818152600660205260409020546001600160a01b0316155b1561090d57600093505050506107a8565b50600101610819565b50600191505090565b60008060008061094e7f6578743a41676772656761746f7249737375656453796e746873000000000000611fae565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561098657600080fd5b505afa15801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109be91908101906133c0565b509350509250506000806109f17f6578743a41676772656761746f7244656274526174696f000000000000000000611fae565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610a2957600080fd5b505afa158015610a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a6191908101906133c0565b50919450909250859150508215610a8757610a82818463ffffffff61200b16565b610a8a565b60005b9650818410610a995781610a9b565b835b955050505050509091565b610aae6130ee565b600080610ab9611cc7565b6040517fe6d24bbd0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0382169063e6d24bbd90610b01908790600401613d43565b60206040518083038186803b158015610b1957600080fd5b505afa158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b51919081019061327b565b9150600080610b61600085612024565b8651829052865160200181905290925090506000610b7e876104d4565b905060015b8015610c92576000610b9482611c9d565b5467ffffffffffffffff16905080831015610c88576040517f8ced14df0000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638ced14df90610bfa908c9067ffffffffffffffff861690600401613d7a565b60206040518083038186803b158015610c1257600080fd5b505afa158015610c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c4a919081019061327b565b9650610c568288612024565b909550935084888360028110610c6857fe5b60200201515283888360028110610c7b57fe5b6020020151600160200201525b5060001901610b83565b505050505050919050565b610ca5612088565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015610cdd57600080fd5b505afa158015610cf1573d6000803e3d6000fd5b505050506000610cff611d43565b11610d1c5760405162461bcd60e51b81526004016107d090614011565b610d24611d43565b4203610d306000611c9d565b5468010000000000000000900467ffffffffffffffff161115610d655760405162461bcd60e51b81526004016107d090613ef1565b6000610d6f610f53565b5090506000610d7c61091f565b509050610d8982826120b3565b6005546040517fdacb2d010000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063dacb2d0190610df2907f53796e746865746978427269646765546f4f7074696d69736d0000000000000090600401613e34565b60206040518083038186803b158015610e0a57600080fd5b505afa158015610e1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e429190810190613205565b6001600160a01b031663b9958ab883836040518363ffffffff1660e01b8152600401610e6f929190613e06565b600060405180830381600087803b158015610e8957600080fd5b505af1158015610e9d573d6000803e3d6000fd5b505050505050565b6000806000806000806000610eb861311b565b610ec189611c9d565b6040805161010081018252825467ffffffffffffffff80821680845268010000000000000000909204166020830181905260018501549383019390935260028401546060830152600384015460808301819052600485015460a08401819052600586015460c0850181905260069096015460e0909401849052919e60009e50939c509a50985091965090945092505050565b600080600080610f827f6578743a41676772656761746f7249737375656453796e746873000000000000611fae565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ff291908101906133c0565b50919791965090945050505050565b60045481565b6001546001600160a01b031681565b60008060015b600281101561106b5761104261103182611c9d565b60030154839063ffffffff611cf216565b915061106161105082611c9d565b60040154839063ffffffff61239a16565b915060010161101c565b50905090565b600061107c826123c2565b5092915050565b7f466565506f6f6c0000000000000000000000000000000000000000000000000081565b60006110b1612088565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156110e957600080fd5b505afa1580156110fd573d6000803e3d6000fd5b505050506111096124b6565b6111116124f5565b6003546040517f21f4ae570000000000000000000000000000000000000000000000000000000081526001600160a01b03928316926321f4ae579261115e92879290911690600401613d5f565b60206040518083038186803b15801561117657600080fd5b505afa15801561118a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111ae919081019061325d565b6111ca5760405162461bcd60e51b81526004016107d090613f81565b6105a182612520565b60008060015b600281101561106b576111ff6111ee82611c9d565b60050154839063ffffffff611cf216565b915061121e61120d82611c9d565b60060154839063ffffffff61239a16565b91506001016111d9565b333014806112e657506005546040516321f8a72160e01b81526001600160a01b03909116906321f8a72190611281907f53796e746865746978427269646765546f42617365000000000000000000000090600401613dea565b60206040518083038186803b15801561129957600080fd5b505afa1580156112ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112d19190810190613205565b6001600160a01b0316336001600160a01b0316145b6113025760405162461bcd60e51b81526004016107d090613fc1565b61130c82826120b3565b5050565b606061131a6114fe565b905060005b815181101561130c57600082828151811061133657fe5b602002602001015190506000600560009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016113789190613d2d565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016113a4929190613e14565b60206040518083038186803b1580156113bc57600080fd5b505afa1580156113d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113f49190810190613205565b6000838152600660205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906114509084908490613df8565b60405180910390a1505060010161131f565b6001546001600160a01b0316331461148c5760405162461bcd60e51b81526004016107d090613ee1565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926114cf926001600160a01b0391821692911690613d5f565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080611509612615565b60408051600e8082526101e0820190925291925060609190602082016101c0803883390190505090507f53797374656d53746174757300000000000000000000000000000000000000008160008151811061156057fe5b6020026020010181815250507f53796e74686574697844656274536861726500000000000000000000000000008160018151811061159a57fe5b6020026020010181815250507f466565506f6f6c457465726e616c53746f726167650000000000000000000000816002815181106115d457fe5b6020026020010181815250507f45786368616e67657200000000000000000000000000000000000000000000008160038151811061160e57fe5b6020026020010181815250506524b9b9bab2b960d11b8160048151811061163157fe5b6020026020010181815250507f526577617264457363726f7756320000000000000000000000000000000000008160058151811061166b57fe5b6020026020010181815250507f44656c6567617465417070726f76616c73000000000000000000000000000000816006815181106116a557fe5b6020026020010181815250507f52657761726473446973747269627574696f6e00000000000000000000000000816007815181106116df57fe5b6020026020010181815250507f436f6c6c61746572616c4d616e616765720000000000000000000000000000008160088151811061171957fe5b6020026020010181815250507f57726170706572466163746f72790000000000000000000000000000000000008160098151811061175357fe5b6020026020010181815250507f457468657257726170706572000000000000000000000000000000000000000081600a8151811061178d57fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600b815181106117c757fe5b6020026020010181815250507f6578743a41676772656761746f7244656274526174696f00000000000000000081600c8151811061180157fe5b6020026020010181815250507f467574757265734d61726b65744d616e6167657200000000000000000000000081600d8151811061183b57fe5b6020026020010181815250506118518282612674565b9250505090565b6000546001600160a01b031681565b61186f611d17565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e90610790908390613d51565b60006107a56119526118ca612729565b73__$f9217daff40bcb29719cec84f7ab900933$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561190e57600080fd5b505af4158015611922573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611946919081019061327b565b9063ffffffff611cf216565b61195a6127a0565b9063ffffffff61281716565b60006107a56127a0565b611978612841565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600281565b60006119a9612088565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b50505050611a016124b6565b6003546107a5906001600160a01b0316612520565b6003546001600160a01b031681565b60006107a5612729565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6002546001600160a01b031681565b611a5e61286b565b6004544210611a7f5760405162461bcd60e51b81526004016107d090613fd1565b60028710611a9f5760405162461bcd60e51b81526004016107d090613ff1565b6040518061010001604052808767ffffffffffffffff1681526020018667ffffffffffffffff16815260200160008152602001600081526020018581526020018481526020018381526020018281525060088860028110611afc57fe5b8251600791909102919091018054602084015167ffffffffffffffff90811668010000000000000000026fffffffffffffffff0000000000000000199190941667ffffffffffffffff19909216919091171691909117815560408201516001820155606082015160028201556080820151600382015560a0820151600482015560c0820151600582015560e09091015160069091015586611bfd57611b9f6128d9565b6001600160a01b03166331e6da5a876040518263ffffffff1660e01b8152600401611bca9190614021565b600060405180830381600087803b158015611be457600080fd5b505af1158015611bf8573d6000803e3d6000fd5b505050505b50505050505050565b611c0e6124b6565b611c166128ed565b6003546001600160a01b03908116911614611c435760405162461bcd60e51b81526004016107d090613f51565b611c6181611c516000611c9d565b600501549063ffffffff611cf216565b611c6b6000611c9d565b6005015550565b60006107a57f466565506f6f6c457465726e616c53746f726167650000000000000000000000611fae565b60006008600260ff16836016540181611cb257fe5b0660028110611cbd57fe5b6007020192915050565b60006107a57f53796e7468657469784465627453686172650000000000000000000000000000611fae565b6000828201838110156106b25760405162461bcd60e51b81526004016107d090613f11565b6000546001600160a01b03163314611d415760405162461bcd60e51b81526004016107d090613f91565b565b6000611d4d612918565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f666565506572696f644475726174696f6e0000000000000000000000000000006040518363ffffffff1660e01b8152600401611dba929190613e06565b60206040518083038186803b158015611dd257600080fd5b505afa158015611de6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107a5919081019061327b565b6000611e14612943565b6001600160a01b0316826001600160a01b03161480611eb657506000611e386128d9565b6001600160a01b03166316b2213f846040518263ffffffff1660e01b8152600401611e639190613d43565b60206040518083038186803b158015611e7b57600080fd5b505afa158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611eb3919081019061327b565b14155b80611f3f5750611ec461296e565b6001600160a01b031663b38988f7836040518263ffffffff1660e01b8152600401611eef9190613d43565b60206040518083038186803b158015611f0757600080fd5b505afa158015611f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f3f919081019061325d565b80611f625750611f4d612999565b6001600160a01b0316826001600160a01b0316145b80611f855750611f706129c4565b6001600160a01b0316826001600160a01b0316145b806105a15750611f936129ef565b6001600160a01b0316826001600160a01b0316149050919050565b60008181526006602090815260408083205490516001600160a01b039091169182151591611fde91869101613d0d565b6040516020818303038152906040529061107c5760405162461bcd60e51b81526004016107d09190613ec0565b60006106b283836b033b2e3c9fd0803ce8000000612a1a565b6000808261203757506000905080612081565b600061204285611c9d565b9050600061205d85836003015461281790919063ffffffff16565b9050600061207886846005015461281790919063ffffffff16565b91945090925050505b9250929050565b60006107a57f53797374656d5374617475730000000000000000000000000000000000000000611fae565b6120bb6129ef565b6001600160a01b031663bb57ad206040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156120f557600080fd5b505af1158015612109573d6000803e3d6000fd5b505050506121156129c4565b6001600160a01b031663bb57ad206040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561214f57600080fd5b505af1158015612163573d6000803e3d6000fd5b50505050806121726000611c9d565b60020155816121816000611c9d565b60010155600061219081611c9d565b9050600061219e6001611c9d565b90506121c382600301546119468360040154846003015461239a90919063ffffffff16565b6121cd6000611c9d565b600301556005808301546006830154918301546121f492611946919063ffffffff61239a16565b6121fe6000611c9d565b6005015560165461223b9060029061222f90600190612223908463ffffffff611cf216565b9063ffffffff61239a16565b9063ffffffff612a5f16565b60168190556008906002811061224d57fe5b6007020180547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168155600060018201819055600282018190556003820181905560048201819055600582018190556006909101819055429081906122b190611c9d565b805467ffffffffffffffff191667ffffffffffffffff92909216919091179055426122dc6000611c9d565b805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff0000000000000000199092169190911790556123196128d9565b6001600160a01b03166331e6da5a826040518263ffffffff1660e01b81526004016123449190614021565b600060405180830381600087803b15801561235e57600080fd5b505af1158015612372573d6000803e3d6000fd5b505050506123936123836001611c9d565b5467ffffffffffffffff16612a8f565b5050505050565b6000828211156123bc5760405162461bcd60e51b81526004016107d090613f21565b50900390565b6000806000806123d06128d9565b6001600160a01b031663ae3bbbbb866040518263ffffffff1660e01b81526004016123fb9190613d43565b604080518083038186803b15801561241257600080fd5b505afa158015612426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061244a91908101906132d5565b9150915060006124586127a0565b90508083101561247057506001935091506107389050565b600061248d6124806118ca612729565b839063ffffffff61281716565b9050808411156124a7576000839550955050505050610738565b50600194509092505050915091565b6002546001600160a01b031633148015906124dc57506003546001600160a01b03163314155b15611d4157600380546001600160a01b03191633179055565b60006107a57f44656c6567617465417070726f76616c73000000000000000000000000000000611fae565b6000808080808080612531886123c2565b91509150816125525760405162461bcd60e51b81526004016107d090613fa1565b80156125705760405162461bcd60e51b81526004016107d090613f61565b612579886106bb565b90945092508315158061258c5750600083115b6125a85760405162461bcd60e51b81526004016107d090613f41565b6125c6886125b66001611c9d565b5467ffffffffffffffff16612b47565b83156125e1576125d584612bc4565b94506125e18886612c88565b82156125fc576125f083612e5c565b95506125fc8887612f1e565b612607888688612f98565b506001979650505050505050565b604080516001808252818301909252606091602080830190803883390190505090507f466c657869626c6553746f7261676500000000000000000000000000000000008160008151811061266557fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156126a4578160200160208202803883390190505b50905060005b83518110156126e6578381815181106126bf57fe5b60200260200101518282815181106126d357fe5b60209081029190910101526001016126aa565b5060005b825181101561107c578281815181106126ff57fe5b602002602001015182828651018151811061271657fe5b60209081029190910101526001016126ea565b6000612733612918565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f7461726765745468726573686f6c6400000000000000000000000000000000006040518363ffffffff1660e01b8152600401611dba929190613e06565b60006127aa612918565b6001600160a01b03166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f69737375616e6365526174696f000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611dba929190613e06565b6000670de0b6b3a7640000612832848463ffffffff61305416565b8161283957fe5b049392505050565b6002546001600160a01b03163314611d415760405162461bcd60e51b81526004016107d090614001565b6002546001600160a01b0316331480159061289157506003546001600160a01b03163314155b156128a957600380546001600160a01b031916331790555b6000546003546001600160a01b03908116911614611d415760405162461bcd60e51b81526004016107d090613f01565b60006107a56524b9b9bab2b960d11b611fae565b60006107a57f52657761726473446973747269627574696f6e00000000000000000000000000611fae565b60006107a57f466c657869626c6553746f726167650000000000000000000000000000000000611fae565b60006107a57f45786368616e6765720000000000000000000000000000000000000000000000611fae565b60006107a57f436f6c6c61746572616c4d616e61676572000000000000000000000000000000611fae565b60006107a57f467574757265734d61726b65744d616e61676572000000000000000000000000611fae565b60006107a57f57726170706572466163746f7279000000000000000000000000000000000000611fae565b60006107a57f4574686572577261707065720000000000000000000000000000000000000000611fae565b600080612a4084612a3487600a870263ffffffff61305416565b9063ffffffff61308e16565b90506005600a820610612a5157600a015b600a900490505b9392505050565b600081612a7e5760405162461bcd60e51b81526004016107d090613f71565b818381612a8757fe5b069392505050565b6002546040516001600160a01b039091169063907dff9790612ab5908490602001613dea565b6040516020818303038152906040526001604051612ad290613d38565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168252612b1993929160009081908190600401613e53565b600060405180830381600087803b158015612b3357600080fd5b505af1158015612393573d6000803e3d6000fd5b612b4f611c72565b6001600160a01b0316633562fd207f6c6173745f6665655f7769746864726177616c0000000000000000000000000084604051602001612b90929190613cdc565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b8152600401610e6f929190613e06565b6000818160015b6002811015612c80576000612bdf82611c9d565b6004015490506000612c0482612bf485611c9d565b600301549063ffffffff61239a16565b90508015612c75576000858210612c1b5785612c1d565b815b9050612c2f838263ffffffff611cf216565b612c3885611c9d565b60040155612c4c868263ffffffff61239a16565b9550612c5e858263ffffffff611cf216565b945085612c73578496505050505050506105a4565b505b505060001901612bcb565b509392505050565b816001600160a01b03811673feefeefeefeefeefeefeefeefeefeefeefeefeef1415612cc65760405162461bcd60e51b81526004016107d090613fe1565b6000612cd06128d9565b6001600160a01b031663326080396007546040518263ffffffff1660e01b8152600401612cfd9190613dea565b60206040518083038186803b158015612d1557600080fd5b505afa158015612d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d4d9190810190613299565b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081529091506001600160a01b03821690639dc29fac90612dab9073feefeefeefeefeefeefeefeefeefeefeefeefeef908790600401613d7a565b600060405180830381600087803b158015612dc557600080fd5b505af1158015612dd9573d6000803e3d6000fd5b50506040517f867904b40000000000000000000000000000000000000000000000000000000081526001600160a01b038416925063867904b49150612e249087908790600401613d7a565b600060405180830381600087803b158015612e3e57600080fd5b505af1158015612e52573d6000803e3d6000fd5b5050505050505050565b6000818160015b6002811015612c80576000612e97612e7a83611c9d565b60060154612e8784611c9d565b600501549063ffffffff61239a16565b90508015612f14576000848210612eae5784612eb0565b815b9050612ecf81612ebf85611c9d565b600601549063ffffffff611cf216565b612ed884611c9d565b60060155612eec858263ffffffff61239a16565b9450612efe848263ffffffff611cf216565b935084612f125783955050505050506105a4565b505b5060001901612e63565b816001600160a01b03811673feefeefeefeefeefeefeefeefeefeefeefeefeef1415612f5c5760405162461bcd60e51b81526004016107d090613fe1565b6301dfe200612f696130c3565b6001600160a01b0316631bb47b448585846040518463ffffffff1660e01b8152600401612e2493929190613d95565b6002546040516001600160a01b039091169063907dff9790612fc290869086908690602001613d95565b6040516020818303038152906040526001604051612fdf90613d02565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16825261302693929160009081908190600401613e53565b600060405180830381600087803b15801561304057600080fd5b505af1158015611bfd573d6000803e3d6000fd5b600082613063575060006106b5565b8282028284828161307057fe5b04146106b25760405162461bcd60e51b81526004016107d090613fb1565b60008082116130af5760405162461bcd60e51b81526004016107d090613f31565b60008284816130ba57fe5b04949350505050565b60006107a57f526577617264457363726f775632000000000000000000000000000000000000611fae565b60405180604001604052806002905b613105613174565b8152602001906001900390816130fd5790505090565b604051806101000160405280600067ffffffffffffffff168152602001600067ffffffffffffffff1681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180604001604052806002906020820280388339509192915050565b80356106b581614191565b80516106b581614191565b80516106b5816141a8565b80516106b5816141b1565b80516106b5816141ba565b80356106b5816141b1565b80516106b5816141c3565b6000602082840312156131f157600080fd5b60006131fd8484613192565b949350505050565b60006020828403121561321757600080fd5b60006131fd848461319d565b6000806040838503121561323657600080fd5b60006132428585613192565b9250506020613253858286016131c9565b9150509250929050565b60006020828403121561326f57600080fd5b60006131fd84846131a8565b60006020828403121561328d57600080fd5b60006131fd84846131b3565b6000602082840312156132ab57600080fd5b60006131fd84846131be565b6000602082840312156132c957600080fd5b60006131fd84846131c9565b600080604083850312156132e857600080fd5b60006132f485856131b3565b9250506020613253858286016131a8565b6000806040838503121561331857600080fd5b600061324285856131c9565b600080600080600080600060e0888a03121561333f57600080fd5b600061334b8a8a6131c9565b975050602061335c8a828b016131c9565b965050604061336d8a828b016131c9565b955050606061337e8a828b016131c9565b945050608061338f8a828b016131c9565b93505060a06133a08a828b016131c9565b92505060c06133b18a828b016131c9565b91505092959891949750929550565b600080600080600060a086880312156133d857600080fd5b60006133e488886131d4565b95505060206133f5888289016131b3565b9450506040613406888289016131b3565b9350506060613417888289016131b3565b9250506080613428888289016131d4565b9150509295509295909350565b6000613441838361352b565b505060400190565b60006134558383613580565b505060200190565b6134668161411c565b82525050565b613466816140be565b613466613481826140be565b614170565b61348f816140ab565b61349981846105a4565b92506134a4826107a8565b8060005b83811015610e9d5781516134bc8782613435565b96506134c7836140a5565b9250506001016134a8565b60006134dd826140b1565b6134e781856140b5565b93506134f2836140a5565b8060005b8381101561352057815161350a8882613449565b9750613515836140a5565b9250506001016134f6565b509495945050505050565b613534816140ab565b61353e81846105a4565b9250613549826107a8565b8060005b83811015610e9d5781516135618782613449565b965061356c836140a5565b92505060010161354d565b613466816140c9565b613466816107a8565b613466613595826107a8565b6107a8565b60006135a5826140b1565b6135af81856140b5565b93506135bf818560208601614140565b6135c881614181565b9093019392505050565b613466816140ce565b61346681614127565b61346681614135565b60006135fa6017836140b5565b7f4f6e6c7920496e7465726e616c20436f6e747261637473000000000000000000815260200192915050565b60006136336035836140b5565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527f2063616e20616363657074206f776e6572736869700000000000000000000000602082015260400192915050565b6000613692601d836140b5565b7f546f6f206561726c7920746f20636c6f73652066656520706572696f64000000815260200192915050565b60006136cb6013836140b5565b7f4f776e6572206f6e6c792066756e6374696f6e00000000000000000000000000815260200192915050565b60006137046024836105a4565b7f46656573436c61696d656428616464726573732c75696e743235362c75696e7481527f3235362900000000000000000000000000000000000000000000000000000000602082015260240192915050565b6000613763601b836140b5565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061379c601e836140b5565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006137d5601a836140b5565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061380e6040836140b5565b7f4e6f2066656573206f72207265776172647320617661696c61626c6520666f7281527f20706572696f642c206f72206665657320616c726561647920636c61696d6564602082015260400192915050565b600061386d602b836140b5565b7f4d697373696e6720636f6e74726163743a2053796e746865746978427269646781527f65546f4f7074696d69736d000000000000000000000000000000000000000000602082015260400192915050565b60006138cc6011836105a4565b7f4d697373696e6720616464726573733a20000000000000000000000000000000815260110192915050565b60006139056018836140b5565b7f52657761726473446973747269627574696f6e206f6e6c790000000000000000815260200192915050565b600061393e601e836140b5565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b60006139776018836140b5565b7f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815260200192915050565b60006139b0601f836140b5565b7f4e6f7420617070726f76656420746f20636c61696d206f6e20626568616c6600815260200192915050565b60006139e9602f836140b5565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681527f6f726d207468697320616374696f6e0000000000000000000000000000000000602082015260400192915050565b6000613a48601f836140b5565b7f432d526174696f2062656c6f772070656e616c7479207468726573686f6c6400815260200192915050565b6000613a816021836140b5565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000613ae0601b836140b5565b7f4f6e6c792076616c69642072656c617965722063616e2063616c6c0000000000815260200192915050565b6000613b196029836140b5565b7f43616e206f6e6c7920706572666f726d207468697320616374696f6e2064757281527f696e672073657475700000000000000000000000000000000000000000000000602082015260400192915050565b6000613b786019836105a4565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613bb16017836140b5565b7f4665652061646472657373206e6f7420616c6c6f776564000000000000000000815260200192915050565b6000613bea6018836140b5565b7f696e76616c69642066656520706572696f6420696e6465780000000000000000815260200192915050565b6000613c236018836105a4565b7f466565506572696f64436c6f7365642875696e74323536290000000000000000815260180192915050565b6000613c5c6017836140b5565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b6000613c95601b836140b5565b7f46656520506572696f64204475726174696f6e206e6f74207365740000000000815260200192915050565b613466816140d9565b613466816140fa565b61346681614107565b6000613ce88285613589565b602082019150613cf88284613475565b5060140192915050565b60006106b5826136f7565b6000613d18826138bf565b9150613d248284613589565b50602001919050565b6000613d1882613b6b565b60006106b582613c16565b602081016106b5828461346c565b602081016106b5828461345d565b60408101613d6d828561346c565b612a58602083018461346c565b60408101613d88828561346c565b612a586020830184613580565b60608101613da3828661346c565b613db06020830185613580565b6131fd6040830184613580565b608081016106b58284613486565b602080825281016106b281846134d2565b602081016106b58284613577565b602081016106b58284613580565b60408101613d6d8285613580565b60408101613d888285613580565b60408101613e228285613580565b81810360208301526131fd818461359a565b60408101613e428284613580565b81810360208301526106b281613860565b60c08082528101613e64818961359a565b9050613e7360208301886135e4565b613e806040830187613580565b613e8d60608301866135db565b613e9a60808301856135db565b613ea760a08301846135db565b979650505050505050565b602081016106b582846135d2565b602080825281016106b2818461359a565b602080825281016105a1816135ed565b602080825281016105a181613626565b602080825281016105a181613685565b602080825281016105a1816136be565b602080825281016105a181613756565b602080825281016105a18161378f565b602080825281016105a1816137c8565b602080825281016105a181613801565b602080825281016105a1816138f8565b602080825281016105a181613931565b602080825281016105a18161396a565b602080825281016105a1816139a3565b602080825281016105a1816139dc565b602080825281016105a181613a3b565b602080825281016105a181613a74565b602080825281016105a181613ad3565b602080825281016105a181613b0c565b602080825281016105a181613ba4565b602080825281016105a181613bdd565b602080825281016105a181613c4f565b602080825281016105a181613c88565b602081016106b58284613cc1565b60e0810161403d828a613cca565b61404a6020830189613cca565b6140576040830188613cca565b6140646060830187613580565b6140716080830186613580565b61407e60a0830185613580565b61408b60c0830184613580565b98975050505050505050565b602081016106b58284613cd3565b60200190565b50600290565b5190565b90815260200190565b60006105a1826140ee565b151590565b60006105a1826140be565b6fffffffffffffffffffffffffffffffff1690565b6001600160a01b031690565b67ffffffffffffffff1690565b60ff1690565b69ffffffffffffffffffff1690565b60006105a1826140ce565b60006105a1613595836107a8565b60006105a1826107a8565b60005b8381101561415b578181015183820152602001614143565b8381111561416a576000848401525b50505050565b60006105a18260006105a18261418b565b601f01601f191690565b60601b90565b61419a816140be565b81146141a557600080fd5b50565b61419a816140c9565b61419a816107a8565b61419a816140ce565b61419a8161410d56fea365627a7a72315820220520b39512e28275c7a4b3a7705149a66773c9db921b235fce506c078fa5d76c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feePeriodId",
							"type": "uint256"
						}
					],
					"name": "FeePeriodClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "sUSDAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "snxRewards",
							"type": "uint256"
						}
					],
					"name": "FeesClaimed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_ADDRESS",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_PERIOD_LENGTH",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allNetworksDebtSharesSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "sharesSupply",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "updatedAt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allNetworksSnxBackedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "updatedAt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "claimFees",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "claimingForAddress",
							"type": "address"
						}
					],
					"name": "claimOnBehalf",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "closeCurrentFeePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "allNetworksSnxBackedDebt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "allNetworksDebtSharesSupply",
							"type": "uint256"
						}
					],
					"name": "closeSecondary",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "period",
							"type": "uint256"
						}
					],
					"name": "effectiveDebtRatioForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePeriodDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "feesAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "feesByPeriod",
					"outputs": [
						{
							"internalType": "uint256[2][2]",
							"name": "results",
							"type": "uint256[2][2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_claimingAddress",
							"type": "address"
						}
					],
					"name": "getLastFeeWithdrawal",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getPenaltyThresholdRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "feePeriodIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feePeriodId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startTime",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesClaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsClaimed",
							"type": "uint256"
						}
					],
					"name": "importFeePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isFeesClaimable",
					"outputs": [
						{
							"internalType": "bool",
							"name": "feesClaimable",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "recentFeePeriods",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "feePeriodId",
							"type": "uint64"
						},
						{
							"internalType": "uint64",
							"name": "unused",
							"type": "uint64"
						},
						{
							"internalType": "uint64",
							"name": "startTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "feesToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesClaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsClaimed",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "recordFeePaid",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setRewardsToDistribute",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "targetThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalFeesAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalRewardsAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x8efb90365897b11502997b1dea8760062b6e607e9c183847380d76e620e749a3",
				"urls": [
					"bzz-raw://59c490d9c94c8a648ef85e322d831566011d85e827188be2646cc1eb90ef756d",
					"dweb:/ipfs/QmRRxkgvwXFKpxYQZwuSEGjXv7HFAM7oFZd2FutSJ1EKri"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePool.sol": "FeePool"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 1500
					},
					"remappings": []
				},
				"sources": {
					"FeePool.sol": {
						"keccak256": "0x8efb90365897b11502997b1dea8760062b6e607e9c183847380d76e620e749a3",
						"urls": [
							"bzz-raw://59c490d9c94c8a648ef85e322d831566011d85e827188be2646cc1eb90ef756d",
							"dweb:/ipfs/QmRRxkgvwXFKpxYQZwuSEGjXv7HFAM7oFZd2FutSJ1EKri"
						]
					}
				},
				"version": 1
			}
		},
		"FeePoolState": {
			"bytecode": "608060405234801561001057600080fd5b50600436106100cf5760003560e01c80637de655451161008c578063ae2e933b11610066578063ae2e933b146102b5578063b326f84e146102bd578063cff2ddad146102e9578063d29c000a14610307576100cf565b80637de65545146102305780638da5cb5b1461027557806394e1a4481461027d576100cf565b80631627540c146100d457806319db2228146100fc57806339a3f63f1461012257806346ba2d90146101ea57806353a47bb71461020457806379ba509714610228575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b0316610333565b005b6100fa6004803603602081101561011257600080fd5b50356001600160a01b031661038f565b6100fa6004803603608081101561013857600080fd5b81019060208101813564010000000081111561015357600080fd5b82018360208201111561016557600080fd5b8035906020019184602083028401116401000000008311171561018757600080fd5b9193909290916020810190356401000000008111156101a557600080fd5b8201836020820111156101b757600080fd5b803590602001918460208302840111640100000000831117156101d957600080fd5b9193509150803590602001356103b9565b6101f2610593565b60408051918252519081900360200190f35b61020c610599565b604080516001600160a01b039092168252519081900360200190f35b6100fa6105a8565b61025c6004803603604081101561024657600080fd5b506001600160a01b038135169060200135610664565b6040805192835260208301919091528051918290030190f35b61020c610691565b6100fa6004803603608081101561029357600080fd5b506001600160a01b0381351690602081013590604081013590606001356106a0565b61020c610739565b61025c600480360360408110156102d357600080fd5b506001600160a01b038135169060200135610748565b6102f16107e9565b6040805160ff9092168252519081900360200190f35b61025c6004803603604081101561031d57600080fd5b506001600160a01b0381351690602001356107ee565b61033b6108d1565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6103976108d1565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6103c16108d1565b60025442106104015760405162461bcd60e51b8152600401808060200182810382526029815260200180610aee6029913960400191505060405180910390fd5b848314610447576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b8581101561058a5784848281811061045e57fe5b905060200201356004600089898581811061047557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002084600681106104b057fe5b600202015581600460008989858181106104c657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020846006811061050157fe5b600202016001018190555086868281811061051857fe5b905060200201356001600160a01b03166001600160a01b03167f3846bc3c5dca9c6ef89995aa7b28d43a5a99aa2e3ea230494da474b8d4b29aea86868481811061055e57fe5b9050602002013584604051808381526020018281526020019250505060405180910390a260010161044a565b50505050505050565b60025481565b6001546001600160a01b031681565b6001546001600160a01b031633146105f15760405162461bcd60e51b8152600401808060200182810382526035815260200180610a366035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6004602052816000526040600020816006811061067d57fe5b600202018054600190910154909250905082565b6000546001600160a01b031681565b6003546001600160a01b031633146106e95760405162461bcd60e51b8152600401808060200182810382526031815260200180610a8e6031913960400191505060405180910390fd5b6001600160a01b038416600090815260046020526040902060010154811115610715576107158461091c565b506001600160a01b0392909216600090815260046020526040902090815560010155565b6003546001600160a01b031681565b6000806006831061078a5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a6b6023913960400191505060405180910390fd5b6001600160a01b038416600090815260046020526040902083600681106107ad57fe5b60020201546001600160a01b038516600090815260046020526040902090925083600681106107d857fe5b600202016001015490509250929050565b600681565b6000806107f96109ee565b6001600160a01b038516600090815260046020526040808220815160c081019092529091600690835b8282101561085e578382600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610822565b509293506000925050505b60068110156108c75781816006811061087e57fe5b60200201516020015185106108bf5781816006811061089957fe5b6020020151518282600681106108ab57fe5b6020020151602001519350935050506108ca565b600101610869565b50505b9250929050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b815260040180806020018281038252602f815260200180610abf602f913960400191505060405180910390fd5b565b60045b60068110156109ea576001600160a01b03821660009081526004602052604090206001820190826006811061095057fe5b60020201546001600160a01b0384166000908152600460205260409020826006811061097857fe5b60020201556001600160a01b038316600090815260046020526040902082600681106109a057fe5b600202016001015460046000856001600160a01b03166001600160a01b0316815260200190815260200160002082600681106109d857fe5b6002020160010155506000190161091f565b5050565b6040518060c001604052806006905b610a05610a1b565b8152602001906001900390816109fd5790505090565b60405180604001604052806000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970696e646578206578636565647320746865204645455f504552494f445f4c454e4754484f6e6c792074686520466565506f6f6c20636f6e74726163742063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a72315820af3fc0e4bfa291513d9d4ed3e03edd0f330cc03c3f2b2084571658c35cc9e71664736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "debtRatio",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feePeriodCloseIndex",
							"type": "uint256"
						}
					],
					"name": "IssuanceDebtRatioEntry",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_PERIOD_LENGTH",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountIssuanceLedger",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtPercentage",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "debtRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "currentPeriodStartDebtIndex",
							"type": "uint256"
						}
					],
					"name": "appendAccountIssuanceRecord",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "closingDebtIndex",
							"type": "uint256"
						}
					],
					"name": "applicableIssuanceData",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePool",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getAccountsDebtEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtPercentage",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "ratios",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256",
							"name": "periodToInsert",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feePeriodCloseIndex",
							"type": "uint256"
						}
					],
					"name": "importIssuerData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"name": "setFeePool",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xb69532fe7191400f82c489360332ae520b276eb05249a6978ad2bb3c7a8f8b9b",
				"urls": [
					"bzz-raw://e23c9b30cfeeef0b7dbdf3fff90c02c06fe6d6d1248cb848521f055a7cfacd30",
					"dweb:/ipfs/QmYRVtWUvC9Z9FHT2MWW42fEMHhZNyb364pumCWgB7TXNT"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePoolState.sol": "FeePoolState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FeePoolState.sol": {
						"keccak256": "0xb69532fe7191400f82c489360332ae520b276eb05249a6978ad2bb3c7a8f8b9b",
						"urls": [
							"bzz-raw://e23c9b30cfeeef0b7dbdf3fff90c02c06fe6d6d1248cb848521f055a7cfacd30",
							"dweb:/ipfs/QmYRVtWUvC9Z9FHT2MWW42fEMHhZNyb364pumCWgB7TXNT"
						]
					}
				},
				"version": 1
			}
		},
		"RewardsDistribution": {
			"bytecode": "608060405234801561001057600080fd5b50600436106101165760003560e01c8063817a6951116100a2578063bdd1248211610071578063bdd12482146102c5578063bf7e214f146102cd578063c9e9cc4d146102d5578063d8297e44146102dd578063e54c16711461030357610116565b8063817a6951146102725780638da5cb5b1461028f57806395896b7614610297578063a430be6c146102bd57610116565b806359974e38116100e957806359974e38146101c15780635de39934146101f257806360eb3ff21461021857806379ba5097146102445780637a9e5e4b1461024c57610116565b8063060ca2501461011b5780631627540c146101355780634487d3df1461015d57806353a47bb71461019d575b600080fd5b610123610335565b60408051918252519081900360200190f35b61015b6004803603602081101561014b57600080fd5b50356001600160a01b031661033c565b005b61017a6004803603602081101561017357600080fd5b5035610398565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6101a56103cd565b604080516001600160a01b039092168252519081900360200190f35b6101de600480360360208110156101d757600080fd5b50356103dc565b604080519115158252519081900360200190f35b61015b6004803603602081101561020857600080fd5b50356001600160a01b0316610a2f565b6101de6004803603604081101561022e57600080fd5b506001600160a01b038135169060200135610a59565b61015b610bfc565b61015b6004803603602081101561026257600080fd5b50356001600160a01b0316610cb8565b61015b6004803603602081101561028857600080fd5b5035610ce2565b6101a5610dcd565b61015b600480360360208110156102ad57600080fd5b50356001600160a01b0316610ddc565b6101a5610e06565b6101a5610e15565b6101a5610e24565b6101a5610e33565b61015b600480360360208110156102f357600080fd5b50356001600160a01b0316610e42565b6101de6004803603606081101561031957600080fd5b508035906001600160a01b036020820135169060400135610e6c565b6006545b90565b610344610f38565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600681815481106103a557fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6001546001600160a01b031681565b600080821161042a576040805162461bcd60e51b81526020600482015260156024820152744e6f7468696e6720746f206469737472696275746560581b604482015290519081900360640190fd5b6002546001600160a01b03163314610489576040805162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420617574686f72697365640000000000000000604482015290519081900360640190fd5b6004546001600160a01b03166104e6576040805162461bcd60e51b815260206004820152601760248201527f526577617264457363726f77206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0316610543576040805162461bcd60e51b815260206004820152601960248201527f53796e74686574697850726f7879206973206e6f742073657400000000000000604482015290519081900360640190fd5b6005546001600160a01b03166105a0576040805162461bcd60e51b815260206004820152601760248201527f466565506f6f6c50726f7879206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b600354604080516370a0823160e01b8152306004820152905184926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156105ea57600080fd5b505afa1580156105fe573d6000803e3d6000fd5b505050506040513d602081101561061457600080fd5b505110156106535760405162461bcd60e51b815260040180806020018281038252604681526020018061108d6046913960600191505060405180910390fd5b8160005b6006548110156109065760006001600160a01b03166006828154811061067957fe5b60009182526020909120600290910201546001600160a01b03161415806106bf5750600681815481106106a857fe5b906000526020600020906002020160010154600014155b156108fe576106f5600682815481106106d457fe5b90600052602060002090600202016001015483610f8390919063ffffffff16565b600354600680549294506001600160a01b039091169163a9059cbb91908490811061071c57fe5b6000918252602090912060029091020154600680546001600160a01b03909216918590811061074757fe5b9060005260206000209060020201600101546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050506040513d60208110156107d257600080fd5b50506006805460609190839081106107e657fe5b60009182526020808320600160029093020191909101546040805160248082019390935281518082039093018352604401905290810180516001600160e01b0316633c6b16ab60e01b17905260068054919350908490811061084457fe5b60009182526020918290206002909102015460405184516001600160a01b0390921692859282918401908083835b602083106108915780518252601f199092019160209182019101610872565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146108f3576040519150601f19603f3d011682016040523d82523d6000602084013e6108f8565b606091505b50505050505b600101610657565b50600354600480546040805163a9059cbb60e01b81526001600160a01b0392831693810193909352602483018590525192169163a9059cbb916044808201926020929091908290030181600087803b15801561096157600080fd5b505af1158015610975573d6000803e3d6000fd5b505050506040513d602081101561098b57600080fd5b50506005546040805163fd1f498d60e01b81526004810184905290516001600160a01b039092169163fd1f498d9160248082019260009290919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b50506040805186815290517f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be4429350908190036020019150a150600192915050565b610a37610f38565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a63610f38565b6001600160a01b038316610abe576040805162461bcd60e51b815260206004820152601760248201527f43616e74206164642061207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b81610b09576040805162461bcd60e51b815260206004820152601660248201527510d85b9d081859190818481e995c9bc8185b5bdd5b9d60521b604482015290519081900360640190fd5b610b11610fe0565b506040805180820182526001600160a01b03858116808352602080840187815260068054600181018255600082905286517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290920291820180546001600160a01b031916919097161790955590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40909401939093559154845160001991909101815291820152808301859052915190917f08fff3cb767a84a8039ea0f84053799c5cdca0e8efb031eeb6b05b9c174aa208916060918190039190910190a15060019392505050565b6001546001600160a01b03163314610c455760405162461bcd60e51b81526004018080602001828103825260358152602001806110586035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b610cc0610f38565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610cea610f38565b60065460001901811115610d3b576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b805b60065460001901811015610db55760068160010181548110610d5b57fe5b906000526020600020906002020160068281548110610d7657fe5b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b039092169190911781556001918201549082015501610d3d565b506006805490610dc9906000198301610ff7565b5050565b6000546001600160a01b031681565b610de4610f38565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b031681565b6003546001600160a01b031681565b6002546001600160a01b031681565b6005546001600160a01b031681565b610e4a610f38565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e76610f38565b60065460001901841115610ec7576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b8260068581548110610ed557fe5b906000526020600020906002020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160068581548110610f1857fe5b906000526020600020906002020160010181905550600190509392505050565b6000546001600160a01b03163314610f815760405162461bcd60e51b815260040180806020018281038252602f8152602001806110d3602f913960400191505060405180910390fd5b565b600082821115610fda576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080518082019091526000808252602082015290565b815481835581811115611023576002028160020283600052602060002091820191016110239190611028565b505050565b61033991905b808211156110535780546001600160a01b03191681556000600182015560020161102e565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697052657761726473446973747269627574696f6e20636f6e747261637420646f6573206e6f74206861766520656e6f75676820746f6b656e7320746f20646973747269627574654f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158201783aecc9651cfd55de09fe10b96093e01ad669b72c2c14bcd5551dfa60202a764736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_authority",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_synthetixProxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_rewardEscrow",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_feePoolProxy",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardDistributionAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardsDistributed",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "addRewardDistribution",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "authority",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "distributeRewards",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "distributions",
					"outputs": [
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "distributionsLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "editRewardDistribution",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePoolProxy",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "removeRewardDistribution",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardEscrow",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_authority",
							"type": "address"
						}
					],
					"name": "setAuthority",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_feePoolProxy",
							"type": "address"
						}
					],
					"name": "setFeePoolProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_rewardEscrow",
							"type": "address"
						}
					],
					"name": "setRewardEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_synthetixProxy",
							"type": "address"
						}
					],
					"name": "setSynthetixProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthetixProxy",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x791d35b999f83d842dbf1f47977c083e7f983549c7015cdca2fde5da7c362ca6",
				"urls": [
					"bzz-raw://6e8d77d7b7d3cb06f313d90a0325b637f24f8fdbe021701784c2f4d280d0622f",
					"dweb:/ipfs/QmPeP6deyBVMTEnBWNZVgFEzoN2KxohA92uv1mrQF5o2pL"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardsDistribution.sol": "RewardsDistribution"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardsDistribution.sol": {
						"keccak256": "0x791d35b999f83d842dbf1f47977c083e7f983549c7015cdca2fde5da7c362ca6",
						"urls": [
							"bzz-raw://6e8d77d7b7d3cb06f313d90a0325b637f24f8fdbe021701784c2f4d280d0622f",
							"dweb:/ipfs/QmPeP6deyBVMTEnBWNZVgFEzoN2KxohA92uv1mrQF5o2pL"
						]
					}
				},
				"version": 1
			}
		},
		"ProxyERC20": {
			"bytecode": "608060405234801561001057600080fd5b50604051610f7f380380610f7f8339818101604052602081101561003357600080fd5b505180806001600160a01b038116610092576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505050610e83806100fc6000396000f3fe6080604052600436106100f35760003560e01c8063776d1a011161008a57806395d89b411161005957806395d89b4114610473578063a9059cbb14610488578063d4b83992146104c1578063dd62ed3e146104d6576100f3565b8063776d1a011461038157806379ba5097146103b45780638da5cb5b146103c9578063907dff97146103de576100f3565b806323b872dd116100c657806323b872dd146102af578063313ce567146102f257806353a47bb71461031d57806370a082311461034e576100f3565b806306fdde031461017c578063095ea7b3146102065780631627540c1461025357806318160ddd14610288575b60025460408051635e33fc1960e11b815233600482015290516001600160a01b039092169163bc67f8329160248082019260009290919082900301818387803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e80610178573d82fd5b3d82f35b34801561018857600080fd5b50610191610511565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101cb5781810151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021257600080fd5b5061023f6004803603604081101561022957600080fd5b506001600160a01b038135169060200135610648565b604080519115158252519081900360200190f35b34801561025f57600080fd5b506102866004803603602081101561027657600080fd5b50356001600160a01b0316610736565b005b34801561029457600080fd5b5061029d610792565b60408051918252519081900360200190f35b3480156102bb57600080fd5b5061023f600480360360608110156102d257600080fd5b506001600160a01b03813581169160208101359091169060400135610808565b3480156102fe57600080fd5b506103076108ff565b6040805160ff9092168252519081900360200190f35b34801561032957600080fd5b50610332610944565b604080516001600160a01b039092168252519081900360200190f35b34801561035a57600080fd5b5061029d6004803603602081101561037157600080fd5b50356001600160a01b0316610953565b34801561038d57600080fd5b50610286600480360360208110156103a457600080fd5b50356001600160a01b03166109d6565b3480156103c057600080fd5b50610286610a32565b3480156103d557600080fd5b50610332610aee565b3480156103ea57600080fd5b50610286600480360360c081101561040157600080fd5b81019060208101813564010000000081111561041c57600080fd5b82018360208201111561042e57600080fd5b8035906020019184600183028401116401000000008311171561045057600080fd5b919350915080359060208101359060408101359060608101359060800135610afd565b34801561047f57600080fd5b50610191610c06565b34801561049457600080fd5b5061023f600480360360408110156104ab57600080fd5b506001600160a01b038135169060200135610c4b565b3480156104cd57600080fd5b50610332610d04565b3480156104e257600080fd5b5061029d600480360360408110156104f957600080fd5b506001600160a01b0381358116916020013516610d13565b600254604080516306fdde0360e01b815290516060926001600160a01b0316916306fdde03916004808301926000929190829003018186803b15801561055657600080fd5b505afa15801561056a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561059357600080fd5b81019080805160405193929190846401000000008211156105b357600080fd5b9083019060208201858111156105c857600080fd5b82516401000000008111828201881017156105e257600080fd5b82525081516020918201929091019080838360005b8381101561060f5781810151838201526020016105f7565b50505050905090810190601f16801561063c5780820380516001836020036101000a031916815260200191505b50604052505050905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b50506002546040805163095ea7b360e01b81526001600160a01b03888116600483015260248201889052915191909216935063095ea7b3925060448083019260209291908290030181600087803b15801561070157600080fd5b505af1158015610715573d6000803e3d6000fd5b505050506040513d602081101561072b57600080fd5b506001949350505050565b61073e610d9f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156107d757600080fd5b505afa1580156107eb573d6000803e3d6000fd5b505050506040513d602081101561080157600080fd5b5051905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561085357600080fd5b505af1158015610867573d6000803e3d6000fd5b5050600254604080516323b872dd60e01b81526001600160a01b03898116600483015288811660248301526044820188905291519190921693506323b872dd925060648083019260209291908290030181600087803b1580156108c957600080fd5b505af11580156108dd573d6000803e3d6000fd5b505050506040513d60208110156108f357600080fd5b50600195945050505050565b6002546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b1580156107d757600080fd5b6001546001600160a01b031681565b600254604080516370a0823160e01b81526001600160a01b038481166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b1580156109a457600080fd5b505afa1580156109b8573d6000803e3d6000fd5b505050506040513d60208110156109ce57600080fd5b505192915050565b6109de610d9f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b6001546001600160a01b03163314610a7b5760405162461bcd60e51b8152600401808060200182810382526035815260200180610deb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b03163314610b53576040805162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b604482015290519081900360640190fd5b604080516020601f89018190048102820181019092528781528791606091908a908490819084018382808284376000920191909152509293508992505081159050610bbd5760018114610bc85760028114610bd45760038114610be15760048114610bef57610bfa565b8260208301a0610bfa565b868360208401a1610bfa565b85878460208501a2610bfa565b8486888560208601a3610bfa565b838587898660208701a45b50505050505050505050565b600254604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b41916004808301926000929190829003018186803b15801561055657600080fd5b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b158015610c9657600080fd5b505af1158015610caa573d6000803e3d6000fd5b50506002546040805163a9059cbb60e01b81526001600160a01b03888116600483015260248201889052915191909216935063a9059cbb925060448083019260209291908290030181600087803b15801561070157600080fd5b6002546001600160a01b031681565b60025460408051636eb1769f60e11b81526001600160a01b03858116600483015284811660248301529151600093929092169163dd62ed3e91604480820192602092909190829003018186803b158015610d6c57600080fd5b505afa158015610d80573d6000803e3d6000fd5b505050506040513d6020811015610d9657600080fd5b50519392505050565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040180806020018281038252602f815260200180610e20602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582013a8d66279443827ac7a2929743c768342ad5e1b305528501c480b9b8bca16ac64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "contract Proxyable",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes",
							"name": "callData",
							"type": "bytes"
						},
						{
							"internalType": "uint256",
							"name": "numTopics",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "topic1",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic2",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic3",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic4",
							"type": "bytes32"
						}
					],
					"name": "_emit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract Proxyable",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "contract Proxyable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x450f870a93352e0feae6dfb45be1371d9e0dcb42c57b8795f2392ccf7ec6b87a",
				"urls": [
					"bzz-raw://eb2b8fed1e5ffeac84d9d5f40822b2ddd969ebdb4be6189ccb1a69b579a45d92",
					"dweb:/ipfs/QmXdYeGb969F9MgzY65gmwdffMaGXPQ7kyKwPMa23ZALmy"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ProxyERC20.sol": "ProxyERC20"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ProxyERC20.sol": {
						"keccak256": "0x450f870a93352e0feae6dfb45be1371d9e0dcb42c57b8795f2392ccf7ec6b87a",
						"urls": [
							"bzz-raw://eb2b8fed1e5ffeac84d9d5f40822b2ddd969ebdb4be6189ccb1a69b579a45d92",
							"dweb:/ipfs/QmXdYeGb969F9MgzY65gmwdffMaGXPQ7kyKwPMa23ZALmy"
						]
					}
				},
				"version": 1
			}
		},
		"TokenState": {
			"bytecode": "608060405234801561001057600080fd5b5060405161075d38038061075d8339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050506105b7806101a66000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610155578063aefc4ccb1461015d578063b46310f614610165578063da46098c14610191578063dd62ed3e146101c75761009e565b80631627540c146100a357806352f445ca146100cb57806353a47bb7146100f157806370a082311461011557806379ba50971461014d575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b03166101f5565b005b6100c9600480360360208110156100e157600080fd5b50356001600160a01b0316610251565b6100f96102ad565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603602081101561012b57600080fd5b50356001600160a01b03166102bc565b60408051918252519081900360200190f35b6100c96102ce565b6100f961038a565b6100f9610399565b6100c96004803603604081101561017b57600080fd5b506001600160a01b0381351690602001356103a8565b6100c9600480360360608110156101a757600080fd5b506001600160a01b0381358116916020810135909116906040013561040d565b61013b600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610482565b6101fd61049f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b61025961049f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b60036020526000908152604090205481565b6001546001600160a01b031633146103175760405162461bcd60e51b81526004018080602001828103825260358152602001806104eb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6002546001600160a01b031633146103f15760405162461bcd60e51b815260040180806020018281038252603481526020018061054f6034913960400191505060405180910390fd5b6001600160a01b03909116600090815260036020526040902055565b6002546001600160a01b031633146104565760405162461bcd60e51b815260040180806020018281038252603481526020018061054f6034913960400191505060405180910390fd5b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b600460209081526000928352604080842090915290825290205481565b6000546001600160a01b031633146104e85760405162461bcd60e51b815260040180806020018281038252602f815260200180610520602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a723158202abf91edcd8505a6d8cc595bf71e8760b60a0c59eebec19b24816880549cec0b64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "tokenOwner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setAllowance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setBalanceOf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xd22abb3b26a3a908924ea980e019c9e61bb2e80be675db7ff683d4f64c1e66f2",
				"urls": [
					"bzz-raw://0540228aacffa325e382f62aa9f940119e867e3260c36683519ea3c1151b65bd",
					"dweb:/ipfs/QmUUEMA2to3Q5qDyeG7fUSgEshSt8TKXs9DcH7jEnunFAn"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"TokenState.sol": "TokenState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"TokenState.sol": {
						"keccak256": "0xd22abb3b26a3a908924ea980e019c9e61bb2e80be675db7ff683d4f64c1e66f2",
						"urls": [
							"bzz-raw://0540228aacffa325e382f62aa9f940119e867e3260c36683519ea3c1151b65bd",
							"dweb:/ipfs/QmUUEMA2to3Q5qDyeG7fUSgEshSt8TKXs9DcH7jEnunFAn"
						]
					}
				},
				"version": 1
			}
		},
		"MintableSynthetix": {
			"bytecode": "6080604052600a805460ff191690553480156200001b57600080fd5b5060405162004dd138038062004dd1833981810160405260a08110156200004157600080fd5b508051602080830151604080850151606086015160809096015182518084018452601781527f53796e746865746978204e6574776f726b20546f6b656e00000000000000000081870152835180850190945260038452620a69cb60eb1b958401959095529495929490939091869186918691869186918291879187918660128986816001600160a01b0381166200011f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316620001ca576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9181900360200190a150600480546001600160a01b0319166001600160a01b03881617905584516200024c906005906020880190620002b5565b50835162000262906006906020870190620002b5565b50506007919091556008805460ff191660ff90921691909117610100600160a81b0319166101006001600160a01b03979097169690960295909517909455506200035a9c50505050505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f857805160ff191683800117855562000328565b8280016001018555821562000328579182015b82811115620003285782518255916020019190600101906200030b565b50620003369291506200033a565b5090565b6200035791905b8082111562000336576000815560010162000341565b90565b614a67806200036a6000396000f3fe608060405234801561001057600080fd5b50600436106104125760003560e01c806370a0823111610220578063a47ed94c11610130578063d67bdd25116100b8578063e8e09b8b11610087578063e8e09b8b14610ce2578063e90dd9e214610d0e578063ec55688914610d16578063edef719a14610d1e578063ee52a2f314610d4a57610412565b8063d67bdd2514610c87578063d8a1f76f14610c8f578063dbf6334014610cac578063dd62ed3e14610cb457610412565b8063af086c7e116100ff578063af086c7e14610bc9578063bc67f83214610bd1578063c2bf388014610bf7578063c836fa0a14610c23578063d37c4d8b14610c5b57610412565b8063a47ed94c14610b28578063a5fdc5de14610b45578063a9059cbb14610b6b578063ace88afd14610b9757610412565b80638da5cb5b116101b357806397107d6d1161018257806397107d6d14610a915780639741fb2214610ab7578063987757dd14610abf5780639f76980714610adc578063a311c7c214610b0257610412565b80638da5cb5b14610a3357806391e56b6814610a3b5780639324cac714610a8157806395d89b4114610a8957610412565b8063835e119c116101ef578063835e119c146109d457806383d625d4146109f1578063899ffef414610a0e5780638a29001414610a1657610412565b806370a082311461094657806372cb051f1461096c57806374185360146109c457806379ba5097146109cc57610412565b80632d3169eb116103265780634e99bda9116102ae5780635e22846a1161027d5780635e22846a14610856578063666ed4f11461087c5780636ac0bf9c146108a85780636c00f310146108ce5780636f01a9861461091457610412565b80634e99bda914610800578063528c7efb1461080857806353a47bb7146108105780635af090ef1461081857610412565b8063320223db116102f5578063320223db1461076357806332608039146107895780633b05796b146107a65780633e89b9e5146107ae57806344b3e923146107cb57610412565b80632d3169eb146106d05780632e0f2625146106ff57806330ead7601461071d578063313ce5671461075b57610412565b806316b2213f116103a957806323b872dd1161037857806323b872dd14610647578063295da87d1461067d5780632a9053181461069a5780632af64bd3146106a25780632c955fa7146106aa57610412565b806316b2213f146105f457806318160ddd1461061a57806318821400146106225780631fce304d1461062a57610412565b80630e30963c116103e55780630e30963c146105305780631137aedf146105805780631249c58b146105c45780631627540c146105cc57610412565b806304f3bcec1461041757806305b3c1c91461043b57806306fdde0314610473578063095ea7b3146104f0575b600080fd5b61041f610d73565b604080516001600160a01b039092168252519081900360200190f35b6104616004803603602081101561045157600080fd5b50356001600160a01b0316610d87565b60408051918252519081900360200190f35b61047b610e1a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104b557818101518382015260200161049d565b50505050905090810190601f1680156104e25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61051c6004803603604081101561050657600080fd5b506001600160a01b038135169060200135610ea8565b604080519115158252519081900360200190f35b61055f6004803603608081101561054657600080fd5b5080359060208101359060408101359060600135610f43565b604080519283526001600160a01b0390911660208301528051918290030190f35b6105a66004803603602081101561059657600080fd5b50356001600160a01b0316610f57565b60408051938452602084019290925282820152519081900360600190f35b61051c610ffd565b6105f2600480360360208110156105e257600080fd5b50356001600160a01b031661100a565b005b6104616004803603602081101561060a57600080fd5b50356001600160a01b0316611066565b6104616110c5565b61047b6110cb565b61051c6004803603602081101561064057600080fd5b5035611104565b61051c6004803603606081101561065d57600080fd5b506001600160a01b03813581169160208101359091169060400135611197565b6105f26004803603602081101561069357600080fd5b50356111d4565b61047b61125e565b61051c61127d565b6105f2600480360360208110156106c057600080fd5b50356001600160a01b031661138e565b6105f2600480360360808110156106e657600080fd5b50803590602081013590604081013590606001356113fd565b610707611540565b6040805160ff9092168252519081900360200190f35b610461600480360360a081101561073357600080fd5b508035906020810135906040810135906001600160a01b036060820135169060800135611545565b610707611623565b6105f26004803603602081101561077957600080fd5b50356001600160a01b031661162c565b61041f6004803603602081101561079f57600080fd5b503561169b565b61051c6116e8565b610461600480360360208110156107c457600080fd5b50356116f1565b610461600480360360a08110156107e157600080fd5b508035906020810135906040810135906060810135906080013561174b565b61051c61175e565b61051c6117d1565b61041f61195d565b610461600480360360a081101561082e57600080fd5b508035906020810135906040810135906001600160a01b03606082013516906080013561174b565b61051c6004803603602081101561086c57600080fd5b50356001600160a01b031661196c565b6105f26004803603604081101561089257600080fd5b506001600160a01b038135169060200135611d5d565b610461600480360360208110156108be57600080fd5b50356001600160a01b0316611d73565b6105f2600480360360c08110156108e457600080fd5b506001600160a01b03813581169160208101359160408201359160608101359160808201359160a0013516611e7d565b6105f26004803603606081101561092a57600080fd5b506001600160a01b038135169060208101359060400135611fdc565b6104616004803603602081101561095c57600080fd5b50356001600160a01b031661211d565b610974612170565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156109b0578181015183820152602001610998565b505050509050019250505060405180910390f35b6105f2612280565b6105f2612459565b61041f600480360360208110156109ea57600080fd5b5035612515565b61046160048036036020811015610a0757600080fd5b5035612562565b6109746125bc565b6105f260048036036020811015610a2c57600080fd5b5035612630565b61041f61269d565b610461600480360360c0811015610a5157600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a001356126ac565b61046161278f565b61047b61279a565b6105f260048036036020811015610aa757600080fd5b50356001600160a01b03166127f5565b6105f2612851565b6105a660048036036020811015610ad557600080fd5b50356128d3565b6105f260048036036020811015610af257600080fd5b50356001600160a01b0316612953565b61046160048036036020811015610b1857600080fd5b50356001600160a01b031661297f565b6105f260048036036020811015610b3e57600080fd5b50356129de565b61046160048036036020811015610b5b57600080fd5b50356001600160a01b0316612a70565b61051c60048036036040811015610b8157600080fd5b506001600160a01b038135169060200135612acf565b6105f260048036036060811015610bad57600080fd5b506001600160a01b038135169060208101359060400135612b0f565b6105f2612b6f565b6105f260048036036020811015610be757600080fd5b50356001600160a01b0316612bd6565b6105f260048036036040811015610c0d57600080fd5b506001600160a01b038135169060200135612c00565b61046160048036036080811015610c3957600080fd5b506001600160a01b038135169060208101359060408101359060600135612c92565b61046160048036036040811015610c7157600080fd5b506001600160a01b038135169060200135612d70565b61041f612e0a565b6105f260048036036020811015610ca557600080fd5b5035612e19565b610461612ea7565b61046160048036036040811015610cca57600080fd5b506001600160a01b0381358116916020013516612ee9565b6105f260048036036040811015610cf857600080fd5b506001600160a01b038135169060200135612f44565b61041f612fba565b61041f612fc9565b6105f260048036036040811015610d3457600080fd5b506001600160a01b038135169060200135612fd8565b61046160048036036060811015610d6057600080fd5b508035906020810135906040013561310d565b60085461010090046001600160a01b031681565b6000610d916131eb565b6001600160a01b03166305b3c1c9836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610de657600080fd5b505afa158015610dfa573d6000803e3d6000fd5b505050506040513d6020811015610e1057600080fd5b505190505b919050565b6005805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ea05780601f10610e7557610100808354040283529160200191610ea0565b820191906000526020600020905b815481529060010190602001808311610e8357829003601f168201915b505050505081565b6000610eb2613204565b6003546004805460408051633691826360e21b81526001600160a01b03948516938101849052878516602482015260448101879052905192939091169163da46098c9160648082019260009290919082900301818387803b158015610f1657600080fd5b505af1158015610f2a573d6000803e3d6000fd5b50505050610f39818585613243565b5060019392505050565b600080610f4e61330d565b94509492505050565b6000806000610f646131eb565b6001600160a01b0316631137aedf856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060606040518083038186803b158015610fb957600080fd5b505afa158015610fcd573d6000803e3d6000fd5b505050506040513d6060811015610fe357600080fd5b508051602082015160409092015190969195509350915050565b600061100761330d565b90565b61101261335a565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006110706131eb565b6001600160a01b03166316b2213f836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610de657600080fd5b60075481565b6040518060400160405280601781526020017f53796e746865746978204e6574776f726b20546f6b656e00000000000000000081525081565b60008061110f6133a3565b600354604080516301670a7b60e21b81526001600160a01b039283166004820152602481018790529051929091169163059c29ec91604480820192602092909190829003018186803b15801561116457600080fd5b505afa158015611178573d6000803e3d6000fd5b505050506040513d602081101561118e57600080fd5b50511192915050565b60006111a16133ba565b6111a961343e565b6111b38483613492565b506003546111cc906001600160a01b03168585856136e2565b949350505050565b6111dc6137da565b6111e4613204565b6111ec6131eb565b6003546040805163b06e8c6560e01b81526001600160a01b039283166004820152602481018590529051929091169163b06e8c659160448082019260009290919082900301818387803b15801561124257600080fd5b505af1158015611256573d6000803e3d6000fd5b505050505b50565b604051806040016040528060038152602001620a69cb60eb1b81525081565b600060606112896125bc565b905060005b81518110156113855760008282815181106112a557fe5b6020908102919091018101516000818152600983526040908190205460085482516321f8a72160e01b81526004810185905292519395506001600160a01b0391821694610100909104909116926321f8a721926024808201939291829003018186803b15801561131457600080fd5b505afa158015611328573d6000803e3d6000fd5b505050506040513d602081101561133e57600080fd5b50516001600160a01b031614158061136b57506000818152600960205260409020546001600160a01b0316155b1561137c5760009350505050611007565b5060010161128e565b50600191505090565b6113966137da565b61139e613204565b6113a66131eb565b6003546040805163159fa0d560e11b81526001600160a01b038581166004830152928316602482015290519290911691632b3f41aa9160448082019260009290919082900301818387803b15801561124257600080fd5b61140561381a565b6002805460408051602081018790528082018690526060808201869052825180830390910181526080909101918290526001600160a01b039092169263907dff979291806031614887823960310190506040518091039020886000806040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018460001b81526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b838110156114d15781810151838201526020016114b9565b50505050905090810190601f1680156114fe5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561152257600080fd5b505af1158015611536573d6000803e3d6000fd5b5050505050505050565b601281565b600085846115538282613887565b61155b613204565b6115636133a3565b600354604080516327c319e960e11b81526001600160a01b039283166004820181905260248201819052604482018d9052606482018c9052608482018b905260a4820152600060c4820181905289841660e4830152610104820189905282519490931693634f8633d29361012480840194938390030190829087803b1580156115eb57600080fd5b505af11580156115ff573d6000803e3d6000fd5b505050506040513d604081101561161557600080fd5b505198975050505050505050565b60085460ff1681565b6116346137da565b61163c613204565b6116446131eb565b6003546040805163fd864ccf60e01b81526001600160a01b03858116600483015292831660248201529051929091169163fd864ccf9160448082019260009290919082900301818387803b15801561124257600080fd5b60006116a56131eb565b6001600160a01b03166332608039836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610de657600080fd5b600a5460ff1681565b60006116fb6131eb565b6001600160a01b0316637b1001b78360016040518363ffffffff1660e01b815260040180838152602001821515151581526020019250505060206040518083038186803b158015610de657600080fd5b600061175561330d565b95945050505050565b60006117686131eb565b6001600160a01b0316634e99bda96040518163ffffffff1660e01b815260040160206040518083038186803b1580156117a057600080fd5b505afa1580156117b4573d6000803e3d6000fd5b505050506040513d60208110156117ca57600080fd5b5051905090565b60006117db61343e565b6117e3613204565b6000806117ee6131eb565b600354604080516339632c0b60e11b81526001600160a01b03928316600482015260016024820152815193909216926372c658169260448082019392918290030181600087803b15801561184157600080fd5b505af1158015611855573d6000803e3d6000fd5b505050506040513d604081101561186b57600080fd5b5080516020909101516003549193509150611891906001600160a01b03168383826138ee565b6003546000906118b2906001600160a01b03166118ac6139c5565b856139e4565b9050806118f05760405162461bcd60e51b815260040180806020018281038252602481526020018061494b6024913960400191505060405180910390fd5b6118f86139c5565b6001600160a01b0316633c6b16ab846040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561193d57600080fd5b505af1158015611951573d6000803e3d6000fd5b50929550505050505090565b6001546001600160a01b031681565b600061197661343e565b61197e613204565b6000806119896131eb565b604080516339632c0b60e11b81526001600160a01b038781166004830152600060248301819052835194909116936372c65816936044808501949193918390030190829087803b1580156119dc57600080fd5b505af11580156119f0573d6000803e3d6000fd5b505050506040513d6040811015611a0657600080fd5b5080516020909101516003549193509150611a2f908590849084906001600160a01b03166138ee565b8115611d5257600080611a406139f1565b6001600160a01b0316638074b3726040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7857600080fd5b505afa158015611a8c573d6000803e3d6000fd5b505050506040513d6020811015611aa257600080fd5b505190506000611ab06139f1565b6001600160a01b03166331e4e0306040518163ffffffff1660e01b815260040160206040518083038186803b158015611ae857600080fd5b505afa158015611afc573d6000803e3d6000fd5b505050506040513d6020811015611b1257600080fd5b50519050611b26828263ffffffff613a0916565b851115611c88576000611b376139f1565b6001600160a01b0316635616c957896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611b8c57600080fd5b505afa158015611ba0573d6000803e3d6000fd5b505050506040513d6020811015611bb657600080fd5b505190506000611bc78983866139e4565b905080611c055760405162461bcd60e51b815260040180806020018281038252602481526020018061483b6024913960400191505060405180910390fd5b600354600090611c20908b906001600160a01b0316866139e4565b905080611c5e5760405162461bcd60e51b81526004018080602001828103825260298152602001806149e96029913960400191505060405180910390fd5b611c7e611c71868663ffffffff613a0916565b899063ffffffff613a6a16565b9550505050611c8c565b8492505b6000611ca088611c9a6139c5565b866139e4565b905080611cde5760405162461bcd60e51b815260040180806020018281038252602481526020018061494b6024913960400191505060405180910390fd5b611ce66139c5565b6001600160a01b0316633c6b16ab856040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b5050505060019650505050505050610e15565b600092505050610e15565b611d65613ac7565b611d6f8282613b34565b5050565b6000611d7d6131eb565b60048054604080516370a0823160e01b81526001600160a01b0387811694820194909452905193831693636bed041593879316916370a08231916024808301926020929190829003018186803b158015611dd657600080fd5b505afa158015611dea573d6000803e3d6000fd5b505050506040513d6020811015611e0057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091528051604480840193829003018186803b158015611e4b57600080fd5b505afa158015611e5f573d6000803e3d6000fd5b505050506040513d6040811015611e7557600080fd5b505192915050565b611e8561381a565b60028054604080516020810189905280820188905260608101879052608081018690526001600160a01b0385811660a0808401919091528351808403909101815260c0909201928390529092169263907dff97929180603e6148b88239603e0190506040518091039020611ef88b613c51565b6000806040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018460001b81526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b83811015611f6b578181015183820152602001611f53565b50505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b158015611fbc57600080fd5b505af1158015611fd0573d6000803e3d6000fd5b50505050505050505050565b611fe461381a565b6002805460408051602081018690528082018590528151808203830181526060909101918290526001600160a01b039092169263907dff97929180602761499082396027019050604051809103902061203c88613c51565b6000806040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018460001b81526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b838110156120af578181015183820152602001612097565b50505050905090810190601f1680156120dc5780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561210057600080fd5b505af1158015612114573d6000803e3d6000fd5b50505050505050565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b158015610de657600080fd5b606061217a6131eb565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b1580156121b257600080fd5b505afa1580156121c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156121ef57600080fd5b810190808051604051939291908464010000000082111561220f57600080fd5b90830190602082018581111561222457600080fd5b825186602082028301116401000000008211171561224157600080fd5b82525081516020918201928201910280838360005b8381101561226e578181015183820152602001612256565b50505050905001604052505050905090565b606061228a6125bc565b905060005b8151811015611d6f5760008282815181106122a657fe5b602002602001015190506000600860019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612371578181015183820152602001612359565b50505050905090810190601f16801561239e5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156123bc57600080fd5b505afa1580156123d0573d6000803e3d6000fd5b505050506040513d60208110156123e657600080fd5b505160008381526009602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a1505060010161228f565b6001546001600160a01b031633146124a25760405162461bcd60e51b81526004018080602001828103825260358152602001806148066035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600061251f6131eb565b6001600160a01b031663835e119c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610de657600080fd5b600061256c6131eb565b6001600160a01b0316637b1001b78360006040518363ffffffff1660e01b815260040180838152602001821515151581526020019250505060206040518083038186803b158015610de657600080fd5b6060806125c7613c5d565b60408051600180825281830190925291925060609190602080830190803883390190505090507453796e746865746978427269646765546f4261736560581b8160008151811061261357fe5b6020026020010181815250506126298282613d7a565b9250505090565b6126386137da565b612640613204565b6126486131eb565b600354604080516285c0d160e31b81526001600160a01b039283166004820152602481018590529051929091169163042e06889160448082019260009290919082900301818387803b15801561124257600080fd5b6000546001600160a01b031681565b600085846126ba8282613887565b6126c2613204565b6126ca6133a3565b600354604080516327c319e960e11b81526001600160a01b038d8116600483018190529381166024830152604482018d9052606482018c9052608482018b905260a4820193909352600060c4820181905289841660e4830152610104820189905282519490931693634f8633d29361012480840194938390030190829087803b15801561275657600080fd5b505af115801561276a573d6000803e3d6000fd5b505050506040513d604081101561278057600080fd5b50519998505050505050505050565b631cd554d160e21b81565b6006805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ea05780601f10610e7557610100808354040283529160200191610ea0565b6127fd61335a565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9181900360200190a150565b6128596137da565b612861613204565b6128696131eb565b600354604080516324beb82560e11b81526001600160a01b0392831660048201529051929091169163497d704a9160248082019260009290919082900301818387803b1580156128b857600080fd5b505af11580156128cc573d6000803e3d6000fd5b505050505b565b60008060006128e0613204565b6128e86133a3565b600354604080516306c5a00b60e21b81526001600160a01b0392831660048201526024810188905290519290911691631b16802c916044808201926060929091908290030181600087803b15801561293f57600080fd5b505af1158015610fcd573d6000803e3d6000fd5b61295b613e36565b600480546001600160a01b0319166001600160a01b03831617905561125b81613ecf565b60006129896131eb565b6001600160a01b031663a311c7c2836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610de657600080fd5b6129e661335a565b600a5460ff1661125b57600a805460ff191660011790556000612a1c612a0a6139c5565b6000546001600160a01b0316846139e4565b905080611d6f576040805162461bcd60e51b815260206004820152601b60248201527f7265737469747574696f6e207472616e73666572206661696c65640000000000604482015290519081900360640190fd5b6000612a7a6131eb565b6001600160a01b031663a5fdc5de836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610de657600080fd5b6000612ad96133ba565b612ae161343e565b600354612af7906001600160a01b031683613492565b50600354610f39906001600160a01b031684846139e4565b612b1761381a565b6002805460408051602081018690528082018590528151808203830181526060909101918290526001600160a01b039092169263907dff97929180602861485f82396028019050604051809103902061203c88613c51565b612b776137da565b612b7f613204565b612b876131eb565b6003546040805163644bb89960e11b81526001600160a01b0392831660048201529051929091169163c89771329160248082019260009290919082900301818387803b1580156128b857600080fd5b612bde613ffa565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b612c086137da565b612c10613204565b612c186131eb565b60035460408051632694552d60e21b81526001600160a01b03868116600483015292831660248201526044810185905290519290911691639a5154b49160648082019260009290919082900301818387803b158015612c7657600080fd5b505af1158015612c8a573d6000803e3d6000fd5b505050505050565b60008382612ca08282613887565b612ca8613204565b612cb06133a3565b600354604080516327c319e960e11b81526001600160a01b038b8116600483018190529381166024830152604482018b9052606482018a90526084820189905260a48201849052600060c4830181905260e483019490945261010482018490528251941693634f8633d29361012480840194938390030190829087803b158015612d3957600080fd5b505af1158015612d4d573d6000803e3d6000fd5b505050506040513d6040811015612d6357600080fd5b5051979650505050505050565b6000612d7a6131eb565b6001600160a01b031663d37c4d8b84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015612dd757600080fd5b505afa158015612deb573d6000803e3d6000fd5b505050506040513d6020811015612e0157600080fd5b50519392505050565b6003546001600160a01b031681565b612e21613ac7565b6000612e2b614053565b9050612e378183613b34565b806001600160a01b03166359974e38836040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b158015612e7d57600080fd5b505af1158015612e91573d6000803e3d6000fd5b505050506040513d60208110156128cc57600080fd5b6000612eb16131eb565b6001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b1580156117a057600080fd5b6004805460408051636eb1769f60e11b81526001600160a01b0386811694820194909452848416602482015290516000939092169163dd62ed3e91604480820192602092909190829003018186803b158015612dd757600080fd5b612f4c6137da565b612f54613204565b612f5c6131eb565b6003546040805163227635b160e11b81526001600160a01b038681166004830152928316602482015260448101859052905192909116916344ec6b629160648082019260009290919082900301818387803b158015612c7657600080fd5b6004546001600160a01b031681565b6002546001600160a01b031681565b612fe0613ac7565b612fe861343e565b60048054604080516370a0823160e01b81526001600160a01b03868116948201949094529051929091169163b46310f691859161308091869186916370a08231916024808301926020929190829003018186803b15801561304857600080fd5b505afa15801561305c573d6000803e3d6000fd5b505050506040513d602081101561307257600080fd5b50519063ffffffff613a6a16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156130cf57600080fd5b505af11580156130e3573d6000803e3d6000fd5b505050506130f382600083614074565b600754613106908263ffffffff613a6a16565b6007555050565b6000838261311b8282613887565b613123613204565b61312b6133a3565b600354604080516327c319e960e11b81526001600160a01b039283166004820181905260248201819052604482018b9052606482018a90526084820189905260a48201819052600060c4830181905260e4830191909152610104820181905282519490931693634f8633d29361012480840194938390030190829087803b1580156131b557600080fd5b505af11580156131c9573d6000803e3d6000fd5b505050506040513d60408110156131df57600080fd5b50519695505050505050565b60006131ff6524b9b9bab2b960d11b6140c7565b905090565b6002546001600160a01b0316331480159061322a57506003546001600160a01b03163314155b156128d157600380546001600160a01b03191633179055565b60025460408051602080820185905282518083039091018152908201918290526001600160a01b039092169163907dff979160039080602161496f82396021019050604051809103902061329688613c51565b61329f88613c51565b60006040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018481526020018360001b815260200182810382528881815181526020019150805190602001908083836000838110156120af578181015183820152602001612097565b6040805162461bcd60e51b815260206004820152601b60248201527f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000604482015290519081900360640190fd5b6000546001600160a01b031633146128d15760405162461bcd60e51b815260040180806020018281038252602f81526020018061491c602f913960400191505060405180910390fd5b60006131ff6822bc31b430b733b2b960b91b6140c7565b6002546001600160a01b03163314156133d2576128d1565b6133db336141a4565b156133f757600380546001600160a01b031916331790556128d1565b6040805162461bcd60e51b815260206004820152601760248201527613db9b1e481d1a19481c1c9bde1e4818d85b8818d85b1b604a1b604482015290519081900360640190fd5b6134466145a1565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b15801561347e57600080fd5b505afa1580156128cc573d6000803e3d6000fd5b60008061349d6131eb565b6001600160a01b031663d37c4d8b85631cd554d160e21b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b15801561350157600080fd5b505afa158015613515573d6000803e3d6000fd5b505050506040513d602081101561352b57600080fd5b505111156136d95760008061353e6131eb565b60048054604080516370a0823160e01b81526001600160a01b038a811694820194909452905193831693636bed0415938a9316916370a08231916024808301926020929190829003018186803b15801561359757600080fd5b505afa1580156135ab573d6000803e3d6000fd5b505050506040513d60208110156135c157600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091528051604480840193829003018186803b15801561360c57600080fd5b505afa158015613620573d6000803e3d6000fd5b505050506040513d604081101561363657600080fd5b5080516020909101519092509050818411156136835760405162461bcd60e51b81526004018080602001828103825260268152602001806148f66026913960400191505060405180910390fd5b80156136d6576040805162461bcd60e51b815260206004820152601e60248201527f412073796e7468206f7220534e58207261746520697320696e76616c69640000604482015290519081900360640190fd5b50505b50600192915050565b6004805460408051636eb1769f60e11b81526001600160a01b0387811694820194909452878416602482015290516000939092169163da46098c918791899161374f918891879163dd62ed3e91604480820192602092909190829003018186803b15801561304857600080fd5b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b1580156137b757600080fd5b505af11580156137cb573d6000803e3d6000fd5b505050506117558484846145bb565b6137e26145a1565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561347e57600080fd5b6138226133a3565b6001600160a01b0316336001600160a01b0316146128d1576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c792045786368616e6765722063616e20696e766f6b6520746869730000604482015290519081900360640190fd5b61388f6145a1565b6001600160a01b0316631ce00ba283836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060006040518083038186803b1580156138da57600080fd5b505afa158015612c8a573d6000803e3d6000fd5b6002805460408051602081018790528082018690526001600160a01b03858116606080840191909152835180840390910181526080909201928390529092169263907dff9792918060326149b782396032019050604051809103902061395389613c51565b6000806040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018460001b81526020018360001b815260200182810382528881815181526020019150805190602001908083836000838110156114d15781810151838201526020016114b9565b60006131ff704c697175696461746f725265776172647360781b6140c7565b60006111cc8484846145bb565b60006131ff692634b8bab4b230ba37b960b11b6140c7565b600082820183811015613a63576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115613ac1576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b613acf6147e2565b6001600160a01b0316336001600160a01b0316146128d1576040805162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c7920626520696e766f6b656420627920627269646765000000604482015290519081900360640190fd5b60048054604080516370a0823160e01b81526001600160a01b03868116948201949094529051929091169163b46310f6918591613bcc91869186916370a08231916024808301926020929190829003018186803b158015613b9457600080fd5b505afa158015613ba8573d6000803e3d6000fd5b505050506040513d6020811015613bbe57600080fd5b50519063ffffffff613a0916565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613c1b57600080fd5b505af1158015613c2f573d6000803e3d6000fd5b50505050613c3e308383614074565b600754613106908263ffffffff613a0916565b6001600160a01b031690565b60408051600680825260e082019092526060916020820160c0803883390190505090506b53797374656d53746174757360a01b81600081518110613c9d57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110613cc357fe5b6020026020010181815250506524b9b9bab2b960d11b81600281518110613ce657fe5b602002602001018181525050722932bbb0b93239a234b9ba3934b13aba34b7b760691b81600381518110613d1657fe5b602002602001018181525050704c697175696461746f725265776172647360781b81600481518110613d4457fe5b602002602001018181525050692634b8bab4b230ba37b960b11b81600581518110613d6b57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015613daa578160200160208202803883390190505b50905060005b8351811015613dec57838181518110613dc557fe5b6020026020010151828281518110613dd957fe5b6020908102919091010152600101613db0565b5060005b8251811015613e2f57828181518110613e0557fe5b6020026020010151828286510181518110613e1c57fe5b6020908102919091010152600101613df0565b5092915050565b6002546001600160a01b03163314801590613e5c57506003546001600160a01b03163314155b15613e7457600380546001600160a01b031916331790555b6000546003546001600160a01b039081169116146128d1576040805162461bcd60e51b815260206004820152601360248201527227bbb732b91037b7363c90333ab731ba34b7b760691b604482015290519081900360640190fd5b600254604080516001600160a01b038481166020808401919091528351808403820181528385018086527f546f6b656e5374617465557064617465642861646472657373290000000000009052935192839003605a01832063907dff9760e01b8452600160248501819052604485018290526000606486018190526084860181905260a4860181905260c060048701908152875160c48801528751959098169763907dff97979692959394919384938493839260e490920191908a0190808383885b83811015613fa9578181015183820152602001613f91565b50505050905090810190601f168015613fd65780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561124257600080fd5b6002546001600160a01b031633146128d1576040805162461bcd60e51b815260206004820152601760248201527613db9b1e481d1a19481c1c9bde1e4818d85b8818d85b1b604a1b604482015290519081900360640190fd5b60006131ff722932bbb0b93239a234b9ba3934b13aba34b7b760691b6140c7565b60025460408051602080820185905282518083039091018152908201918290526001600160a01b039092169163907dff9791600390806021614a1282396021019050604051809103902061329688613c51565b600081815260096020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081613e2f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614169578181015183820152602001614151565b50505050905090810190601f1680156141965780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600854604080516321f8a72160e01b81527f53796e746865746978427269646765546f4f7074696d69736d000000000000006004820152905160009261010090046001600160a01b0316916321f8a721916024808301926020929190829003018186803b15801561421457600080fd5b505afa158015614228573d6000803e3d6000fd5b505050506040513d602081101561423e57600080fd5b50516001600160a01b03838116911614806142f95750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b815260040180806d2932bbb0b93222b9b1b937bbab1960911b815250602001905060206040518083038186803b1580156142be57600080fd5b505afa1580156142d2573d6000803e3d6000fd5b505050506040513d60208110156142e857600080fd5b50516001600160a01b038381169116145b806143a25750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b815260040180806b526577617264457363726f7760a01b815250602001905060206040518083038186803b15801561436757600080fd5b505afa15801561437b573d6000803e3d6000fd5b505050506040513d602081101561439157600080fd5b50516001600160a01b038381169116145b8061444e5750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b815260040180806e53796e746865746978457363726f7760881b815250602001905060206040518083038186803b15801561441357600080fd5b505afa158015614427573d6000803e3d6000fd5b505050506040513d602081101561443d57600080fd5b50516001600160a01b038381169116145b806144f95750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b815260040180806d54726164696e675265776172647360901b815250602001905060206040518083038186803b1580156144be57600080fd5b505afa1580156144d2573d6000803e3d6000fd5b505050506040513d60208110156144e857600080fd5b50516001600160a01b038381169116145b8061459b5750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b815260040180806411195c1bdd60da1b815250602001905060206040518083038186803b15801561456057600080fd5b505afa158015614574573d6000803e3d6000fd5b505050506040513d602081101561458a57600080fd5b50516001600160a01b038381169116145b92915050565b60006131ff6b53797374656d53746174757360a01b6140c7565b60006001600160a01b038316158015906145de57506001600160a01b0383163014155b80156145f857506002546001600160a01b03848116911614155b614649576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f2074686973206164647265737300604482015290519081900360640190fd5b60048054604080516370a0823160e01b81526001600160a01b03888116948201949094529051929091169163b46310f69187916146a991879186916370a08231916024808301926020929190829003018186803b15801561304857600080fd5b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156146f857600080fd5b505af115801561470c573d6000803e3d6000fd5b505060048054604080516370a0823160e01b81526001600160a01b0389811694820194909452905192909116935063b46310f69250869161477091879186916370a08231916024808301926020929190829003018186803b158015613b9457600080fd5b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156147bf57600080fd5b505af11580156147d3573d6000803e3d6000fd5b50505050610f39848484614074565b60006131ff7453796e746865746978427269646765546f4261736560581b6140c756fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970466c616720726577617264207472616e7366657220646964206e6f74207375636365656445786368616e67655265636c61696d28616464726573732c627974657333322c75696e743235362945786368616e6765547261636b696e6728627974657333322c627974657333322c75696e743235362c75696e743235362953796e746845786368616e676528616464726573732c627974657333322c75696e743235362c627974657333322c75696e743235362c616464726573732943616e6e6f74207472616e73666572207374616b6564206f7220657363726f77656420534e584f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e5472616e7366657220746f204c697175696461746f7252657761726473206661696c6564417070726f76616c28616464726573732c616464726573732c75696e743235362945786368616e676552656261746528616464726573732c627974657333322c75696e74323536294163636f756e744c69717569646174656428616464726573732c75696e743235362c75696e743235362c61646472657373294c697175696461746520726577617264207472616e7366657220646964206e6f7420737563636565645472616e7366657228616464726573732c616464726573732c75696e7432353629a265627a7a7231582040e513b13586dbe77dc8669110fcb80eb4668e64de26b8327036fc3dbc0f773d64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_totalSupply",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "snxRedeemed",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						}
					],
					"name": "AccountLiquidated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "ExchangeRebate",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "ExchangeReclaim",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						}
					],
					"name": "ExchangeTracking",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "fromCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						}
					],
					"name": "SynthExchange",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTokenState",
							"type": "address"
						}
					],
					"name": "TokenStateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "DECIMALS",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TOKEN_NAME",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TOKEN_SYMBOL",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "anySynthOrSNXRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableCurrencyKeys",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableSynthCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "availableSynths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSecondary",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "burnSynthsToTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						}
					],
					"name": "burnSynthsToTargetOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "collateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "debtBalanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "emitExchangeRebate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "emitExchangeReclaim",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						}
					],
					"name": "emitExchangeTracking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "fromCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						}
					],
					"name": "emitSynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "exchangeAtomically",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchangeOnBehalf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "rewardAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeOnBehalfWithTracking",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "rewardAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithTracking",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithTrackingForInitiator",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithVirtual",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "contract IVirtualSynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "initializeLiquidatorRewardsRestitution",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isWaitingPeriod",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "issueMaxSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						}
					],
					"name": "issueMaxSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "liquidateDelinquentAccount",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "liquidateSelf",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "maxIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "mint",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "mintSecondary",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "mintSecondaryRewards",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "remainingIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyIssued",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalSystemDebt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "restituted",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "sUSD",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						}
					],
					"name": "setTokenState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settle",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntriesSettled",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "synthAddress",
							"type": "address"
						}
					],
					"name": "synthsByAddress",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tokenState",
					"outputs": [
						{
							"internalType": "contract TokenState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedSynthsExcludeOtherCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "transferableSynthetix",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xe5dd48f48970597d6808bffeeb3b787580800e99158506d0d726f1ecd86d4b57",
				"urls": [
					"bzz-raw://4ccec868deedcc07682048075da2d97174c181499913bb0ad0e30ca0a7b8461e",
					"dweb:/ipfs/QmRg4pVLHQf9JGLH7rpJuyJcnP5m7sUceFF3DbwmgUUhyM"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"MintableSynthetix.sol": "MintableSynthetix"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"MintableSynthetix.sol": {
						"keccak256": "0xe5dd48f48970597d6808bffeeb3b787580800e99158506d0d726f1ecd86d4b57",
						"urls": [
							"bzz-raw://4ccec868deedcc07682048075da2d97174c181499913bb0ad0e30ca0a7b8461e",
							"dweb:/ipfs/QmRg4pVLHQf9JGLH7rpJuyJcnP5m7sUceFF3DbwmgUUhyM"
						]
					}
				},
				"version": 1
			}
		},
		"RealtimeDebtCache": {
			"bytecode": "608060405260016007818162000014620001b8565b8160ff021916908315150217906200002b6200021a565b50505034801562000046576000806200004362000269565b50505b50604051620024a7380380620024a78339818101604052604081101562000077576000806200007462000269565b50505b810190808051929190602001805192508391508290508080836001600160a01b038116620000f65760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390620000f362000269565b50505b80600060018162000106620001b8565b816001600160a01b0302191690836001600160a01b03160217906200012a6200021a565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a15080600260018162000185620001b8565b816001600160a01b0302191690836001600160a01b0316021790620001a96200021a565b505050505050505050620002d6565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156200021557600082820152602001620001fc565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020620001fc565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015620002a357808601518282016040015260200162000286565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6121c180620002e66000396000f3fe608060405234801561001957600080610016611e64565b50505b50600436106101615760003560e01c806379ba5097116100cc578063b13cd78511610085578063b13cd7851461053c578063cda218c7146105ce578063d0fffafd14610660578063d685743a14610668578063e3476cd414610694578063fc5247731461069c57610161565b806379ba50971461049b578063899ffef4146104a35780638da5cb5b146104fe5780638dd5bfbc14610506578063a5f27edb1461052c578063af5355d81461053457610161565b80632af64bd31161011e5780632af64bd3146103295780633a900a2e1461034557806353a47bb71461037b5780636bf7c435146103835780637418536014610471578063759076e51461047957610161565b806304bd11e51461016f57806304f3bcec1461019957806305393262146101bd5780630fb38465146101d75780631627540c146101fd57806317b38db41461022c575b60008061016c611e64565b50505b6101976004803603602081101561018e5760008061018b611e64565b50505b503515156106a4565b005b6101a16106a7565b6040516001600160a01b03909116815260200160405180910390f35b6101c56106c6565b60405190815260200160405180910390f35b6101c5600480360360208110156101f6576000806101f3611e64565b50505b50356106d9565b6101976004803603602081101561021c57600080610219611e64565b50505b50356001600160a01b0316610750565b6101976004803603604081101561024b57600080610248611e64565b50505b810190602081018135600160201b81111561026e5760008061026b611e64565b50505b82018360208201111561028957600080610286611e64565b50505b803590602001918460208302840111600160201b831117156102b3576000806102b0611e64565b50505b919390929091602081019035600160201b8111156102d9576000806102d6611e64565b50505b8201836020820111156102f4576000806102f1611e64565b50505b803590602001918460208302840111600160201b8311171561031e5760008061031b611e64565b50505b5090925090506107ca565b6103316107d0565b604051901515815260200160405180910390f35b61034d61095f565b6040519384526020840192909252151560408084019190915290151560608301526080909101905180910390f35b6101a161098f565b610415600480360360208110156103a25760008061039f611e64565b50505b810190602081018135600160201b8111156103c5576000806103c2611e64565b50505b8201836020820111156103e0576000806103dd611e64565b50505b803590602001918460208302840111600160201b8311171561040a57600080610407611e64565b50505b50909250905061099b565b604051811515602082015260408082528190810184818151815260200191508051906020019060200280838360005b8381101561045c578082015183820152602001610444565b50505050905001935050505060405180910390f35b6101976109e6565b610481610c19565b604051918252151560208201526040908101905180910390f35b610197610c2c565b6104ab610daf565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156104ea5780820151838201526020016104d2565b505050509050019250505060405180910390f35b6101a1610f23565b6101976004803603602081101561052557600080610522611e64565b50505b50356106a4565b610331610f2e565b6101c5610f39565b6104ab6004803603602081101561055b57600080610558611e64565b50505b810190602081018135600160201b81111561057e5760008061057b611e64565b50505b82018360208201111561059957600080610596611e64565b50505b803590602001918460208302840111600160201b831117156105c3576000806105c0611e64565b50505b509092509050610f3f565b610197600480360360208110156105ed576000806105ea611e64565b50505b810190602081018135600160201b8111156106105760008061060d611e64565b50505b82018360208201111561062b57600080610628611e64565b50505b803590602001918460208302840111600160201b8311171561065557600080610652611e64565b50505b509092509050610c15565b6101c5610f89565b6101976004803603604081101561068757600080610684611e64565b50505b5080359060200135610c15565b610197610f99565b610331610f9b565b50565b600060026106b3611ecf565b906101000a90046001600160a01b031681565b6000806106d1610fa0565b509150505b90565b600060606001604051908082528060200260200182016040528015610708578160200160208202803883390190505b509050828160008151811061071957fe5b602002602001018181525050606061073082611224565b5090508060008151811061074057fe5b6020026020010151949350505050565b6107586113e9565b8060018080610765611ecf565b816001600160a01b0302191690836001600160a01b0316021790610787611f2a565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b50505050565b600060606107dc610daf565b905060005b81518110156109565760008282815181106107f857fe5b6020026020010151600081815260036020529091506040902060009061081c611ecf565b6001600160a01b036101009290920a9004166000600261083a611ecf565b906101000a90046001600160a01b03166001600160a01b03166321f8a721836040516001600160e01b031960e084901b1681526004810191909152602401602060405180830381868061088b611f78565b1580156108a05760008061089d611e64565b50505b505a6108aa611fc4565b50505050501580156108c9573d6000803e3d60006108c6611e64565b50505b505050506040513d60208110156108e8576000806108e5611e64565b50505b8101908080516001600160a01b03169390931415925082915061093c905057506000818152600360205260408120600090610921611ecf565b906101000a90046001600160a01b03166001600160a01b0316145b1561094d57600093505050506106d6565b506001016107e1565b50600191505090565b600080600080600080610970610fa0565b91509150815a61097e6120af565b909790965090945060009350915050565b600060016106b3611ecf565b606060006109db84848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061122492505050565b915091509250929050565b60606109f0610daf565b905060005b8151811015610c15576000828281518110610a0c57fe5b602002602001015190506000806002610a23611ecf565b906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040517f5265736f6c766572206d697373696e67207461726765743a2000000000000000602082015260398101919091526059016040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ad8578082015183820152602001610ac0565b50505050905090810190601f168015610b055780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818680610b1e611f78565b158015610b3357600080610b30611e64565b50505b505a610b3d611fc4565b5050505050158015610b5c573d6000803e3d6000610b59611e64565b50505b505050506040513d6020811015610b7b57600080610b78611e64565b50505b8101908080516000868152600360205290945084935060409250905020600181610ba3611ecf565b816001600160a01b0302191690836001600160a01b0316021790610bc5611f2a565b5050507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6882826040519182526001600160a01b031660208201526040908101905180910390a150506001016109f5565b5050565b600080610c24610fa0565b915091509091565b60006001610c38611ecf565b906101000a90046001600160a01b03166001600160a01b03165a610c5a6120f5565b6001600160a01b031614610ca85760405162461bcd60e51b815260040180806020018281038252603581526020018061213c6035913960400191505060405180910390610ca5611e64565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c600080610cd4611ecf565b906101000a90046001600160a01b03166001600090610cf1611ecf565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a160006001610d30611ecf565b906101000a90046001600160a01b03166000806101000a81610d50611ecf565b816001600160a01b0302191690836001600160a01b0316021790610d72611f2a565b5050506000600160006101000a81610d88611ecf565b816001600160a01b0302191690836001600160a01b0316021790610daa611f2a565b505050565b606080610dba611461565b905060606007604051908082528060200260200182016040528015610de9578160200160208202803883390190505b5090506524b9b9bab2b960d11b81600081518110610e0357fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110610e2957fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110610e5357fe5b6020026020010181815250506b53797374656d53746174757360a01b81600381518110610e7c57fe5b6020026020010181815250506e115d1a195c90dbdb1b185d195c985b608a1b81600481518110610ea857fe5b60200260200101818152505072115d1a195c90dbdb1b185d195c985b1cd554d1606a1b81600581518110610ed857fe5b6020026020010181815250507021b7b63630ba32b930b626b0b730b3b2b960791b81600681518110610f0657fe5b602002602001018181525050610f1c82826114c0565b9250505090565b6000806106b3611ecf565b600080610f1c610fa0565b60001990565b606080610f7e84848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061122492505050565b509150505b92915050565b60005a610f946120af565b905090565b565b600090565b60008060606000611101610fb261157c565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b81526004016000604051808303818680610fe5611f78565b158015610ffa57600080610ff7611e64565b50505b505a611004611fc4565b5050505050158015611023573d6000803e3d6000611020611e64565b50505b505050506040513d6000823e601f3d908101601f19168201604052602081101561105557600080611052611e64565b50505b8101908080516040519392919084600160201b82111561107d5760008061107a611e64565b50505b90830190602082018581111561109b57600080611098611e64565b50505b82518660208202830111600160201b821117156110c0576000806110bd611e64565b50505b825250602001908051906020019060200280838360005b838110156110ef5780820151838201526020016110d7565b50505050905001604052505050611224565b915091506000825190506000805b828110156111455761113b85828151811061112657fe5b6020026020010151839063ffffffff61159016565b915060010161110f565b506000806111516115f9565b6001600160a01b031663ad79a8586040518163ffffffff1660e01b815260040160408051808303818680611183611f78565b15801561119857600080611195611e64565b50505b505a6111a2611fc4565b50505050501580156111c1573d6000803e3d60006111be611e64565b50505b505050506040513d60408110156111e0576000806111dd611e64565b50505b810190808051929190602001805193955092935061120a925085915084905063ffffffff61161816565b925084806112155750805b92975091955050505050509091565b606060006060600061123461167d565b6001600160a01b031663c8e5bbd5866040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b8381101561129257808201518382015260200161127a565b505050509050019250505060006040518083038186806112b0611f78565b1580156112c5576000806112c2611e64565b50505b505a6112cf611fc4565b50505050501580156112ee573d6000803e3d60006112eb611e64565b50505b505050506040513d6000823e601f3d908101601f1916820160409081528110156113205760008061131d611e64565b50505b8101908080516040519392919084600160201b82111561134857600080611345611e64565b50505b90830190602082018581111561136657600080611363611e64565b50505b82518660208202830111600160201b8211171561138b57600080611388611e64565b50505b825250602001908051906020019060200280838360005b838110156113ba5780820151838201526020016113a2565b5050505090500160405260200180519395509293506113df9250879150849050611698565b9350915050915091565b6000806113f4611ecf565b906101000a90046001600160a01b03166001600160a01b03165a6114166120f5565b6001600160a01b031614610f995760405162461bcd60e51b815260040180806020018281038252602f815260200180612171602f913960400191505060405180910390610c15611e64565b6060600160405190808252806020026020018201604052801561148e578160200160208202803883390190505b5090506e466c657869626c6553746f7261676560881b816000815181106114b157fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156114f0578160200160208202803883390190505b50905060005b83518110156115325783818151811061150b57fe5b602002602001015182828151811061151f57fe5b60209081029190910101526001016114f6565b5060005b82518110156115755782818151811061154b57fe5b602002602001015182828651018151811061156257fe5b6020908102919091010152600101611536565b5092915050565b6000610f946524b9b9bab2b960d11b611c80565b6000828201838110156115f25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401604051809103906115ef611e64565b50505b9392505050565b6000610f947021b7b63630ba32b930b626b0b730b3b2b960791b611c80565b6000828211156116775760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015260640160405180910390611674611e64565b50505b50900390565b6000610f946c45786368616e6765526174657360981b611c80565b60606000835190506060816040519080825280602002602001820160405280156116cc578160200160208202803883390190505b50905060606116d961157c565b6001600160a01b0316633b6afe40876040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b8381101561173757808201518382015260200161171f565b50505050905001925050506000604051808303818680611755611f78565b15801561176a57600080611767611e64565b50505b505a611774611fc4565b5050505050158015611793573d6000803e3d6000611790611e64565b50505b505050506040513d6000823e601f3d908101601f1916820160405260208110156117c5576000806117c2611e64565b50505b8101908080516040519392919084600160201b8211156117ed576000806117ea611e64565b50505b90830190602082018581111561180b57600080611808611e64565b50505b82518660208202830111600160201b821117156118305760008061182d611e64565b50505b825250602001908051906020019060200280838360005b8381101561185f578082015183820152602001611847565b50505050905001604052505050905060008090505b83811015611c7557600087828151811061188a57fe5b6020026020010151905060008383815181106118a257fe5b602002602001015190506001600160a01b0381166119065760405162461bcd60e51b815260206004820152601460248201527314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b604482015260640160405180910390611903611e64565b50505b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381868061193c611f78565b1580156119515760008061194e611e64565b50505b505a61195b611fc4565b505050505015801561197a573d6000803e3d6000611977611e64565b50505b505050506040513d602081101561199957600080611996611e64565b50505b81019080805193506119ae92506115f9915050565b6001600160a01b0316638471db13846040516001600160e01b031960e084901b168152600481019190915260240160206040518083038186806119ef611f78565b158015611a0457600080611a01611e64565b50505b505a611a0e611fc4565b5050505050158015611a2d573d6000803e3d6000611a2a611e64565b50505b505050506040513d6020811015611a4c57600080611a49611e64565b50505b810190808051159250611b35915050576000611a666115f9565b6001600160a01b031663d2f00475856040516001600160e01b031960e084901b16815260048101919091526024016020604051808303818680611aa7611f78565b158015611abc57600080611ab9611e64565b50505b505a611ac6611fc4565b5050505050158015611ae5573d6000803e3d6000611ae2611e64565b50505b505050506040513d6020811015611b0457600080611b01611e64565b50505b810190808051935050505081811115611b205760009150611b33565b611b30828263ffffffff61161816565b91505b505b631cd554d160e21b83148080611b515750630e68aa8960e31b84145b15611c2a57600081611b6a57611b65611d81565b611b72565b611b72611d9e565b90506000816001600160a01b031663ee5f3f5c6040518163ffffffff1660e01b81526004016020604051808303818680611baa611f78565b158015611bbf57600080611bbc611e64565b50505b505a611bc9611fc4565b5050505050158015611be8573d6000803e3d6000611be5611e64565b50505b505050506040513d6020811015611c0757600080611c04611e64565b50505b8101908080519350611c25925086915083905063ffffffff61161816565b935050505b611c4e8a8681518110611c3957fe5b6020026020010151839063ffffffff611dbf16565b878681518110611c5a57fe5b60209081029190910101525050600190920191506118749050565b509095945050505050565b600081815260036020528060408120600090611c9a611ecf565b6001600160a01b036101009290920a90041690508015158360405170026b4b9b9b4b7339030b2323932b9b99d1607d1b60208201526031810191909152605101604051602081830303815290604052906115755760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d37578082015183820152602001611d1f565b50505050905090810190601f168015611d645780820380516001836020036101000a031916815260200191505b509250505060405180910390611d78611e64565b50505092915050565b6000610f946e115d1a195c90dbdb1b185d195c985b608a1b611c80565b6000610f9472115d1a195c90dbdb1b185d195c985b1cd554d1606a1b611c80565b60006115f28383670de0b6b3a7640000848067016345785d8a0000611de48686611e09565b81611deb57fe5b0490506005600a820610611dfd57600a015b600a9004949350505050565b600082611e1857506000610f83565b82820282848281611e2557fe5b04146115f25760405162461bcd60e51b81526004018080602001828103825260218152602001806121a060219139604001915050604051809103906115ef5b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015611e9c578086015182820160400152602001611e81565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015610daa57600082820152602001611f13565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020611f13565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020611f13565b638540661f598160e01b8152611ff5565b8080831115610f83575090919050565b8080831015610f83575090919050565b836004820152846024820152606060448201528660648201526084810160005b8881101561202d578088015182820152602001612015565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af150596120828d3d611fe5565b8c0161208e8187611fd5565b5b828110156120a3576000815260200161208f565b50929c50505050505050565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020611f13565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020611f1356fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "DebtCacheSnapshotTaken",
					"type": "event",
					"signature": "0xc481e742c89630d4b1a5ed3a0fc624c1c41ed463bd00ac26a7e93c71e932126f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "cachedDebt",
							"type": "uint256"
						}
					],
					"name": "DebtCacheUpdated",
					"type": "event",
					"signature": "0x294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be599"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"name": "DebtCacheValidityChanged",
					"type": "event",
					"signature": "0x8eebec690c34bbf0fe0d5b93e442beaf16bdaf99052569581de2dcb3e31a53a7"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheInfo",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "isStale",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3a900a2e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa5f27edb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheStale",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfc524773"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd0fffafd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cachedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x05393262"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "cachedSynthDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0fb38465"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "cachedSynthDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "debtValues",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb13cd785"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x759076e5"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "currentSynthDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "debtValues",
							"type": "uint256[]"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6bf7c435"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtSnapshotStaleTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaf5355d8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "purgeCachedSynthDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8dd5bfbc"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "takeDebtSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe3476cd4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "currencyRate",
							"type": "uint256"
						}
					],
					"name": "updateCachedSynthDebtWithRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd685743a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "updateCachedSynthDebts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xcda218c7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "currencyRates",
							"type": "uint256[]"
						}
					],
					"name": "updateCachedSynthDebtsWithRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x17b38db4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "currentlyInvalid",
							"type": "bool"
						}
					],
					"name": "updateDebtCacheValidity",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x04bd11e5"
				}
			],
			"source": {
				"keccak256": "0x454e9ea380368ea2274863d885f08745fd34e6ea2cfbb8217e1d891583172e23",
				"urls": [
					"bzz-raw://72259dd2d1cd26c029025bd8af29de3529984783f1034fc7e62ee416eaa1271e",
					"dweb:/ipfs/QmbNY1hA5NYKokJTaGHAYQdYC5BFBzJfUsJgVu3yidWJnU"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RealtimeDebtCache.sol": "RealtimeDebtCache"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RealtimeDebtCache.sol": {
						"keccak256": "0x454e9ea380368ea2274863d885f08745fd34e6ea2cfbb8217e1d891583172e23",
						"urls": [
							"bzz-raw://72259dd2d1cd26c029025bd8af29de3529984783f1034fc7e62ee416eaa1271e",
							"dweb:/ipfs/QmbNY1hA5NYKokJTaGHAYQdYC5BFBzJfUsJgVu3yidWJnU"
						]
					}
				},
				"version": 1
			}
		},
		"Exchanger": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162004b2738038062004b27833981810160405260408110156200003757600080fd5b5080516020909101518080836001600160a01b0381166200009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050506149fb806200012c6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806353a47bb7116100de5780638925711711610097578063c193f0d811610071578063c193f0d8146104a5578063c39def0b146104ad578063d6f32e06146104e9578063f450aa341461051557610173565b8063892571171461043d578063899ffef4146104455780638da5cb5b1461049d57610173565b806353a47bb7146103e357806357af302c146103eb578063614d08f814610408578063741853601461041057806379ba5097146104185780637dd1a57a1461042057610173565b80631b16802c116101305780631b16802c1461028c5780632af64bd3146102b857806333a76880146102d4578063372a395a146103205780634c268fc8146103285780634f8633d21461036057610173565b806304f3bcec14610178578063059c29ec1461019c5780630b9e31c9146101da5780631627540c146101f957806319d5c6651461021f5780631a5c609514610269575b600080fd5b61018061053e565b604080516001600160a01b039092168252519081900360200190f35b6101c8600480360360408110156101b257600080fd5b506001600160a01b03813516906020013561054d565b60408051918252519081900360200190f35b6101f7600480360360208110156101f057600080fd5b50356105f1565b005b6101f76004803603602081101561020f57600080fd5b50356001600160a01b0316610715565b61024b6004803603604081101561023557600080fd5b506001600160a01b038135169060200135610771565b60408051938452602084019290925282820152519081900360600190f35b6101c86004803603604081101561027f57600080fd5b508035906020013561078f565b61024b600480360360408110156102a257600080fd5b506001600160a01b0381351690602001356107ec565b6102c061086d565b604080519115158252519081900360200190f35b6101c8600480360360e08110156102ea57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c00135610978565b6101c861098d565b6101c86004803603608081101561033e57600080fd5b506001600160a01b03813516906020810135906040810135906060013561099c565b6103c2600480360361012081101561037757600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a081013582169160c082013515159160e0810135909116906101000135610abc565b604080519283526001600160a01b0390911660208301528051918290030190f35b610180610ce2565b6102c06004803603602081101561040157600080fd5b5035610cf1565b6101c8610d76565b6101f7610d86565b6101f7610f4a565b6101c86004803603602081101561043657600080fd5b5035611006565b6101c8611085565b61044d61108f565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610489578181015183820152602001610471565b505050509050019250505060405180910390f35b610180611270565b6102c061127f565b6104d0600480360360408110156104c357600080fd5b5080359060200135611289565b6040805192835290151560208301528051918290030190f35b6102c0600480360360408110156104ff57600080fd5b506001600160a01b0381351690602001356112a2565b61024b6004803603606081101561052b57600080fd5b50803590602081013590604001356112d4565b6002546001600160a01b031681565b60006105e861055a611664565b6001600160a01b031663f1406dc885856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b1580156105b757600080fd5b505afa1580156105cb573d6000803e3d6000fd5b505050506040513d60208110156105e157600080fd5b505161167f565b90505b92915050565b6105f96116de565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b15801561063157600080fd5b505afa158015610645573d6000803e3d6000fd5b5050505060006106536116f8565b6001600160a01b031663a47af19e836040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b505050506040513d60408110156106c157600080fd5b5060200151905080610711576040805162461bcd60e51b815260206004820152601460248201527314de5b9d1a081c1c9a58d9481a5cc81d985b1a5960621b604482015290519081900360640190fd5b5050565b61071d61171c565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60008060006107808585611767565b50919790965090945092505050565b600080600061079e8585611ab0565b9150915080156107e4576040805162461bcd60e51b815260206004820152600c60248201526b746f6f20766f6c6174696c6560a01b604482015290519081900360640190fd5b509392505050565b60008060006107f96116de565b6001600160a01b03166342a28e21856040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561083c57600080fd5b505afa158015610850573d6000803e3d6000fd5b5050505061086085856001611b03565b9250925092509250925092565b6000606061087961108f565b905060005b815181101561096e57600082828151811061089557fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d602081101561092757600080fd5b50516001600160a01b031614158061095457506000818152600360205260409020546001600160a01b0316155b156109655760009350505050610975565b5060010161087e565b5060019150505b90565b6000610982611e88565b979650505050505050565b6000610997611ed5565b905090565b8160006109a7611f8c565b6001600160a01b03166332608039866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6020811015610a1457600080fd5b5051604080516370a0823160e01b81526001600160a01b038981166004830152915191909216916370a08231916024808301926020929190829003018186803b158015610a6057600080fd5b505afa158015610a74573d6000803e3d6000fd5b505050506040513d6020811015610a8a57600080fd5b5051905080821115610a9a578091505b8215610ab357610ab0828463ffffffff611fa016565b91505b50949350505050565b6000806000610ac9611ffa565b9050336001600160a01b0382161480610b565750604080516316b2213f60e01b815233600482015290516000916001600160a01b038416916316b2213f91602480820192602092909190829003018186803b158015610b2757600080fd5b505afa158015610b3b573d6000803e3d6000fd5b505050506040513d6020811015610b5157600080fd5b505114155b610b915760405162461bcd60e51b815260040180806020018281038252604581526020018061490f6045913960600191505060405180910390fd5b60008c6001600160a01b03168c6001600160a01b031614610ca057610bb4612011565b6001600160a01b031663faf431bb8e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b158015610c2357600080fd5b505afa158015610c37573d6000803e3d6000fd5b505050506040513d6020811015610c4d57600080fd5b5051610ca0576040805162461bcd60e51b815260206004820152601d60248201527f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000604482015290519081900360640190fd5b610cae8d8c8c8c8c8c612030565b9195509093509050610cc08187612664565b8415610cd257610cd2858a8684612713565b5050995099975050505050505050565b6001546001600160a01b031681565b600080610cfc6116f8565b6001600160a01b031663cb1ec317846040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015610d3e57600080fd5b505afa158015610d52573d6000803e3d6000fd5b505050506040513d6040811015610d6857600080fd5b50602001519150505b919050565b6822bc31b430b733b2b960b91b81565b6060610d9061108f565b905060005b8151811015610711576000828281518110610dac57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610e62578181015183820152602001610e4a565b50505050905090810190601f168015610e8f5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610ead57600080fd5b505afa158015610ec1573d6000803e3d6000fd5b505050506040513d6020811015610ed757600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610d95565b6001546001600160a01b03163314610f935760405162461bcd60e51b81526004018080602001828103825260358152602001806148da6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006110106116f8565b6001600160a01b0316637dd1a57a836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561105357600080fd5b505afa158015611067573d6000803e3d6000fd5b505050506040513d602081101561107d57600080fd5b505192915050565b6000610997612796565b60608061109a612810565b60408051600a80825261016082019092529192506060919060208201610140803883390190505090506b53797374656d53746174757360a01b816000815181106110e057fe5b6020026020010181815250506c45786368616e6765537461746560981b8160018151811061110a57fe5b6020026020010181815250506c45786368616e6765526174657360981b8160028151811061113457fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b8160038151811061115a57fe5b60200260200101818152505066119959541bdbdb60ca1b8160048151811061117e57fe5b6020026020010181815250506d54726164696e675265776172647360901b816005815181106111a957fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b816006815181106111d757fe5b6020026020010181815250506524b9b9bab2b960d11b816007815181106111fa57fe5b6020026020010181815250506844656274436163686560b81b8160088151811061122057fe5b6020026020010181815250507522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b8160098151811061125357fe5b6020026020010181815250506112698282612861565b9250505090565b6000546001600160a01b031681565b600061099761291d565b600080611296848461299b565b915091505b9250929050565b60006112ae838361054d565b156112bb575060016105eb565b60006112c78484611767565b5050501515949350505050565b60008060006112e16116de565b6001600160a01b03166342a28e21866040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561132457600080fd5b505afa158015611338573d6000803e3d6000fd5b505050506113446116de565b6001600160a01b03166342a28e21856040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561138757600080fd5b505afa15801561139b573d6000803e3d6000fd5b5050505060006113a96116f8565b6001600160a01b031663cb1ec317876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b1580156113eb57600080fd5b505afa1580156113ff573d6000803e3d6000fd5b505050506040513d604081101561141557600080fd5b5060200151905060006114266116f8565b6001600160a01b031663cb1ec317876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561146857600080fd5b505afa15801561147c573d6000803e3d6000fd5b505050506040513d604081101561149257600080fd5b5060200151905081156114ec576040805162461bcd60e51b815260206004820152601960248201527f736f757263652073796e7468207261746520696e76616c696400000000000000604482015290519081900360640190fd5b801561153f576040805162461bcd60e51b815260206004820152601e60248201527f64657374696e6174696f6e2073796e7468207261746520696e76616c69640000604482015290519081900360640190fd5b61154a878988612a23565b60006115568888611ab0565b909450905080156115ae576040805162461bcd60e51b815260206004820152601b60248201527f65786368616e676520726174657320746f6f20766f6c6174696c650000000000604482015290519081900360640190fd5b60006115b8612c12565b6001600160a01b0316638295016a8a8c8b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060606040518083038186803b15801561160b57600080fd5b505afa15801561161f573d6000803e3d6000fd5b505050506040513d606081101561163557600080fd5b505190506116438186612c2d565b9650611655818863ffffffff612cbf16565b95505050505093509350939050565b60006109976c45786368616e6765537461746560981b612d1c565b60008061168a612796565b90508215806116a857506116a4838263ffffffff611fa016565b4210155b156116b7576000915050610d71565b6116d7426116cb858463ffffffff611fa016565b9063ffffffff612cbf16565b9392505050565b60006109976b53797374656d53746174757360a01b612d1c565b60006109977522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b612d1c565b6000546001600160a01b031633146117655760405162461bcd60e51b815260040180806020018281038252602f815260200180614954602f913960400191505060405180910390fd5b565b60008060006060611776611664565b6001600160a01b031663b44e975387876040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b505160408051828152602080840282010190915290925060609083801561183e57816020015b61182b614829565b8152602001906001900390816118235790505b50905060005b83811015611aa457600080611857614829565b6118628b8b86612df9565b905060008061187083612f14565b91509150600061187e612c12565b6001600160a01b0316636ce66c8085600001518660200151876040015187876040518663ffffffff1660e01b8152600401808681526020018581526020018481526020018381526020018281526020019550505050505060606040518083038186803b1580156118ed57600080fd5b505afa158015611901573d6000803e3d6000fd5b505050506040513d606081101561191757600080fd5b5051608085015190915060009061192f908390612c2d565b9050600061193b6116f8565b6001600160a01b03166378cb51cb8760600151846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561198a57600080fd5b505afa15801561199e573d6000803e3d6000fd5b505050506040513d60208110156119b457600080fd5b5051905080611a2e5781866060015111156119f75760608601516119de908363ffffffff612cbf16565b97506119f08e8963ffffffff611fa016565b9d50611a2e565b8560600151821115611a2e576060860151611a1990839063ffffffff612cbf16565b9650611a2b8d8863ffffffff611fa016565b9c505b6040518061010001604052808760000151815260200187602001518152602001876040015181526020018981526020018881526020018681526020018581526020018760a001518152508a8a81518110611a8457fe5b602002602001018190525050505050505050508080600101915050611844565b50905092959194509250565b6000806000611ad6611ac185613067565b611aca87613067565b9063ffffffff611fa016565b90506000611ae4868661299b565b93509050611af8828263ffffffff611fa016565b935050509250929050565b6000806000611b12868661054d565b15611b4e5760405162461bcd60e51b81526004018080602001828103825260238152602001806149a46023913960400191505060405180910390fd5b60008060006060611b5f8a8a611767565b935093509350935082841115611b9157611b7f848463ffffffff612cbf16565b9650611b8c8a8a8961310d565b611bb6565b83831115611bb657611ba9838563ffffffff612cbf16565b9550611bb68a8a8861327a565b878015611bcd57506000871180611bcd5750600086115b15611cb357604080516001808252818301909252606091602080830190803883390190505090508981600081518110611c0257fe5b602002602001018181525050611c166133ca565b6001600160a01b031663cda218c7826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015611c74578181015183820152602001611c5c565b5050505090500192505050600060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b50505050505b60005b8151811015611df8578a6001600160a01b03167f8e3ad1f68bec55de3b6fa12ae2674a2a683a17c918a4cbf5157ac5d9ddc6e940838381518110611cf657fe5b602002602001015160000151848481518110611d0e57fe5b602002602001015160200151858581518110611d2657fe5b602002602001015160400151868681518110611d3e57fe5b602002602001015160600151878781518110611d5657fe5b602002602001015160800151888881518110611d6e57fe5b602002602001015160a00151898981518110611d8657fe5b602002602001015160c001518a8a81518110611d9e57fe5b602002602001015160e00151604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390a2600101611cb6565b50819450611e04611664565b6001600160a01b031663d0d3d62a8b8b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611e6357600080fd5b505af1158015611e77573d6000803e3d6000fd5b505050505050505093509350939050565b6040805162461bcd60e51b815260206004820152601b60248201527f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000604482015290519081900360640190fd5b6000611edf6133e1565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611f5b57600080fd5b505afa158015611f6f573d6000803e3d6000fd5b505050506040513d6020811015611f8557600080fd5b5051905090565b60006109976524b9b9bab2b960d11b612d1c565b6000828201838110156105e8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610997680a6f2dce8d0cae8d2f60bb1b612d1c565b60006109977044656c6567617465417070726f76616c7360781b612d1c565b6000806000808711612077576040805162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b604482015290519081900360640190fd5b61207f614874565b612087612c12565b6001600160a01b0316637a018a1e8a6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156120ca57600080fd5b505afa1580156120de573d6000803e3d6000fd5b505050506040513d60208110156120f457600080fd5b505160a0820152612103612c12565b6001600160a01b0316637a018a1e886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561214657600080fd5b505afa15801561215a573d6000803e3d6000fd5b505050506040513d602081101561217057600080fd5b505160c08201526000612184898c8c6133fe565b90508061219d5750600093508392508291506126589050565b6121a5612c12565b6001600160a01b0316636ce66c808b838b8660a001518760c001516040518663ffffffff1660e01b8152600401808681526020018581526020018481526020018381526020018281526020019550505050505060606040518083038186803b15801561221057600080fd5b505afa158015612224573d6000803e3d6000fd5b505050506040513d606081101561223a57600080fd5b5080516020808301516040938401519186019190915284529083015260a082015160c083015161226e918c918b9190613436565b6122788a89613678565b1561228f5750600093508392508291506126589050565b60006122a58b8a8560a001518660c001516137a4565b6060850191909152905080156122c8575060009450849350839250612658915050565b6122da83604001518460600151612c2d565b60408401519096506122f2908763ffffffff612cbf16565b94506123038b8d848c8a8d8d6137ef565b93506001600160a01b03841615612318578397505b841561257157612326612c12565b6001600160a01b031663654a60ac8a87631cd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561238057600080fd5b505afa158015612394573d6000803e3d6000fd5b505050506040513d60208110156123aa57600080fd5b505194506123b6611f8c565b6001600160a01b03166332608039631cd554d160e21b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561240057600080fd5b505afa158015612414573d6000803e3d6000fd5b505050506040513d602081101561242a57600080fd5b50516001600160a01b031663867904b4612442613acd565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801561247a57600080fd5b505afa15801561248e573d6000803e3d6000fd5b505050506040513d60208110156124a457600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820189905251604480830192600092919082900301818387803b1580156124f357600080fd5b505af1158015612507573d6000803e3d6000fd5b50505050612513613acd565b6001600160a01b03166322bf55ef866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561255857600080fd5b505af115801561256c573d6000803e3d6000fd5b505050505b6040805180820182528c815260208082018c905282518084019093528551835285810151908301526125a291613ae2565b6125aa611ffa565b604080516306c00f3160e41b81526001600160a01b038f81166004830152602482018f905260448201869052606482018d9052608482018a90528b811660a483015291519290911691636c00f3109160c48082019260009290919082900301818387803b15801561261a57600080fd5b505af115801561262e573d6000803e3d6000fd5b50505050600061263c612796565b111561265457612654888c848c8a8860600151613da0565b5050505b96509650969350505050565b60008211801561267c57506001600160a01b03811615155b801561268b575061268b61291d565b1561071157612698613fb1565b6001600160a01b03166321cad77483836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156126f757600080fd5b505af115801561270b573d6000803e3d6000fd5b505050505050565b61271b611ffa565b6001600160a01b0316632d3169eb858585856040518563ffffffff1660e01b815260040180858152602001848152602001838152602001828152602001945050505050600060405180830381600087803b15801561277857600080fd5b505af115801561278c573d6000803e3d6000fd5b5050505050505050565b60006127a06133e1565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611f5b57600080fd5b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061285257fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015612891578160200160208202803883390190505b50905060005b83518110156128d3578381815181106128ac57fe5b60200260200101518282815181106128c057fe5b6020908102919091010152600101612897565b5060005b8251811015612916578281815181106128ec57fe5b602002602001015182828651018151811061290357fe5b60209081029190910101526001016128d7565b5092915050565b60006129276133e1565b6001600160a01b031663d994502d6d53797374656d53657474696e677360901b741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611f5b57600080fd5b6000806129a66148b1565b6129ae613fcd565b90506000806129bd86846142bf565b915091506000806129ce89866142bf565b90925090506129e3848363ffffffff611fa016565b60608601519097508711806129f857876129fe565b85606001515b9750878180612a0a5750845b80612a125750825b975097505050505050509250929050565b80831415612a6e576040805162461bcd60e51b8152602060048201526013602482015272086c2dc4ee840c4ca40e6c2daca40e6f2dce8d606b1b604482015290519081900360640190fd5b60008211612ab1576040805162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b604482015290519081900360640190fd5b60408051600280825260608083018452926020830190803883390190505090508381600081518110612adf57fe5b6020026020010181815250508181600181518110612af957fe5b602002602001018181525050612b0d612c12565b6001600160a01b0316630a7d36d1826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015612b6b578181015183820152602001612b53565b505050509050019250505060206040518083038186803b158015612b8e57600080fd5b505afa158015612ba2573d6000803e3d6000fd5b505050506040513d6020811015612bb857600080fd5b505115612c0c576040805162461bcd60e51b815260206004820152601e60248201527f7372632f646573742072617465207374616c65206f7220666c61676765640000604482015290519081900360640190fd5b50505050565b60006109976c45786368616e6765526174657360981b612d1c565b60006105e8612cb28373__$cc56be524fc9a50cd50be137f56c651270$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612c7a57600080fd5b505af4158015612c8e573d6000803e3d6000fd5b505050506040513d6020811015612ca457600080fd5b50519063ffffffff612cbf16565b849063ffffffff61437e16565b600082821115612d16576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816129165760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612dbe578181015183820152602001612da6565b50505050905090810190601f168015612deb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b612e01614829565b600080600080600080600080612e15611664565b6001600160a01b03166315987eb68d8d8d6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200182815260200193505050506101006040518083038186803b158015612e7b57600080fd5b505afa158015612e8f573d6000803e3d6000fd5b505050506040513d610100811015612ea657600080fd5b50805160208083015160408085015160608087015160808089015160a0808b015160c0808d015160e09d8e01518a5161010081018c529d8e529b8d019a909a52978b019690965293890192909252870152850152830152918101919091529c9b505050505050505050505050565b6000806000612f21612c12565b90506000612f2d612796565b9050816001600160a01b031663109e46a286600001518760c001518860a00151856040518563ffffffff1660e01b81526004018085815260200184815260200183815260200182815260200194505050505060206040518083038186803b158015612f9757600080fd5b505afa158015612fab573d6000803e3d6000fd5b505050506040513d6020811015612fc157600080fd5b505160408087015160e088015160a0890151835163084f235160e11b81526004810193909352602483019190915260448201526064810184905290519195506001600160a01b0384169163109e46a291608480820192602092909190829003018186803b15801561303157600080fd5b505afa158015613045573d6000803e3d6000fd5b505050506040513d602081101561305b57600080fd5b50519395939450505050565b60006130716133e1565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e65786368616e67654665655261746560881b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561105357600080fd5b613115611f8c565b6001600160a01b03166332608039836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561315857600080fd5b505afa15801561316c573d6000803e3d6000fd5b505050506040513d602081101561318257600080fd5b505160408051632770a7eb60e21b81526001600160a01b0386811660048301526024820185905291519190921691639dc29fac91604480830192600092919082900301818387803b1580156131d657600080fd5b505af11580156131ea573d6000803e3d6000fd5b505050506131f6611ffa565b6001600160a01b031663ace88afd8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561325d57600080fd5b505af1158015613271573d6000803e3d6000fd5b50505050505050565b613282611f8c565b6001600160a01b03166332608039836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156132c557600080fd5b505afa1580156132d9573d6000803e3d6000fd5b505050506040513d60208110156132ef57600080fd5b50516040805163219e412d60e21b81526001600160a01b038681166004830152602482018590529151919092169163867904b491604480830192600092919082900301818387803b15801561334357600080fd5b505af1158015613357573d6000803e3d6000fd5b50505050613363611ffa565b6001600160a01b0316636f01a9868484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561325d57600080fd5b60006109976844656274436163686560b81b612d1c565b60006109976e466c657869626c6553746f7261676560881b612d1c565b600080600061340f85856000611b03565b889550909350915050801561342d5761342a8585888561099c565b92505b50509392505050565b82841415613481576040805162461bcd60e51b8152602060048201526013602482015272086c2dc4ee840c4ca40e6c2daca40e6f2dce8d606b1b604482015290519081900360640190fd5b604080516002808252606080830184529260208301908038833901905050905084816000815181106134af57fe5b60200260200101818152505083816001815181106134c957fe5b60209081029190910101526040805160028082526060828101909352816020016020820280388339019050509050838160008151811061350557fe5b602002602001018181525050828160018151811061351f57fe5b602002602001018181525050613533612c12565b6001600160a01b031663d89ee86183836040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561359657818101518382015260200161357e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156135d55781810151838201526020016135bd565b5050505090500194505050505060206040518083038186803b1580156135fa57600080fd5b505afa15801561360e573d6000803e3d6000fd5b505050506040513d602081101561362457600080fd5b50511561270b576040805162461bcd60e51b815260206004820152601e60248201527f7372632f646573742072617465207374616c65206f7220666c61676765640000604482015290519081900360640190fd5b6000631cd554d160e21b8314613706576136906116f8565b6001600160a01b031663a47af19e846040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b1580156136d457600080fd5b505af11580156136e8573d6000803e3d6000fd5b505050506040513d60408110156136fe57600080fd5b506020015190505b631cd554d160e21b82146105eb57600061371e6116f8565b6001600160a01b031663a47af19e846040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b15801561376257600080fd5b505af1158015613776573d6000803e3d6000fd5b505050506040513d604081101561378c57600080fd5b50602001519050818061379c5750805b949350505050565b60008060006137be6137b587613067565b611aca89613067565b905060006137ce888888886143a8565b935090506137e2828263ffffffff611fa016565b9350505094509492505050565b60006137f9611f8c565b6001600160a01b03166332608039896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561383c57600080fd5b505afa158015613850573d6000803e3d6000fd5b505050506040513d602081101561386657600080fd5b505160408051632770a7eb60e21b81526001600160a01b038a81166004830152602482018a905291519190921691639dc29fac91604480830192600092919082900301818387803b1580156138ba57600080fd5b505af11580156138ce573d6000803e3d6000fd5b5050505060006138dc611f8c565b6001600160a01b03166332608039876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561391f57600080fd5b505afa158015613933573d6000803e3d6000fd5b505050506040513d602081101561394957600080fd5b505190508215613a485760008190506139c8816001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b15801561399457600080fd5b505afa1580156139a8573d6000803e3d6000fd5b505050506040513d60208110156139be57600080fd5b505186888a614434565b9250816001600160a01b031663867904b484886040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613a2a57600080fd5b505af1158015613a3e573d6000803e3d6000fd5b5050505050613ac1565b806001600160a01b031663867904b485876040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613aa857600080fd5b505af1158015613abc573d6000803e3d6000fd5b505050505b50979650505050505050565b600061099766119959541bdbdb60ca1b612d1c565b8151600090631cd554d160e21b1480613b0557506020830151631cd554d160e21b145b9050600081613b15576003613b18565b60025b60ff169050606081604051908082528060200260200182016040528015613b49578160200160208202803883390190505b509050846000602002015181600081518110613b6157fe5b6020908102919091010152846001602002015181600181518110613b8157fe5b602002602001018181525050606082604051908082528060200260200182016040528015613bb9578160200160208202803883390190505b509050846000602002015181600081518110613bd157fe5b6020908102919091010152846001602002015181600181518110613bf157fe5b60200260200101818152505083613caf57631cd554d160e21b82600281518110613c1757fe5b60200260200101818152505073__$cc56be524fc9a50cd50be137f56c651270$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015613c6757600080fd5b505af4158015613c7b573d6000803e3d6000fd5b505050506040513d6020811015613c9157600080fd5b5051815182906002908110613ca257fe5b6020026020010181815250505b613cb76133ca565b6001600160a01b03166317b38db483836040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015613d1a578181015183820152602001613d02565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015613d59578181015183820152602001613d41565b50505050905001945050505050600060405180830381600087803b158015613d8057600080fd5b505af1158015613d94573d6000803e3d6000fd5b50505050505050505050565b6000613daa612c12565b90506000816001600160a01b0316637a018a1e886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015613df257600080fd5b505afa158015613e06573d6000803e3d6000fd5b505050506040513d6020811015613e1c57600080fd5b505160408051633d00c50f60e11b81526004810188905290519192506000916001600160a01b03851691637a018a1e916024808301926020929190829003018186803b158015613e6b57600080fd5b505afa158015613e7f573d6000803e3d6000fd5b505050506040513d6020811015613e9557600080fd5b50519050613ea1611664565b60408051630f2a761760e21b81526001600160a01b038c81166004830152602482018c9052604482018b9052606482018a90526084820189905260a482018890524260c483015260e48201869052610104820185905291519290911691633ca9d85c916101248082019260009290919082900301818387803b158015613f2657600080fd5b505af1158015613f3a573d6000803e3d6000fd5b5050604080518b8152602081018b90528082018a9052606081018990526080810188905260a0810186905260c0810185905290516001600160a01b038d1693507f62e40d554c7abcdd31074960d8347a2225daeb04d93bc748f049ba2ce946239892509081900360e00190a2505050505050505050565b60006109976d54726164696e675265776172647360901b612d1c565b613fd56148b1565b60408051600480825260a08201909252606091602082016080803883390190505090507f65786368616e676544796e616d69634665655468726573686f6c6400000000008160008151811061402657fe5b6020026020010181815250507f65786368616e676544796e616d696346656557656967687444656361790000008160018151811061406057fe5b6020026020010181815250507f65786368616e676544796e616d6963466565526f756e647300000000000000008160028151811061409a57fe5b6020026020010181815250507465786368616e67654d617844796e616d696346656560581b816003815181106140cc57fe5b60200260200101818152505060606140e26133e1565b6001600160a01b031663b67fa7ed6d53797374656d53657474696e677360901b846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015614158578181015183820152602001614140565b50505050905001935050505060006040518083038186803b15801561417c57600080fd5b505afa158015614190573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156141b957600080fd5b81019080805160405193929190846401000000008211156141d957600080fd5b9083019060208201858111156141ee57600080fd5b825186602082028301116401000000008211171561420b57600080fd5b82525081516020918201928201910280838360005b83811015614238578181015183820152602001614220565b50505050905001604052505050905060405180608001604052808260008151811061425f57fe5b602002602001015181526020018260018151811061427957fe5b602002602001015181526020018260028151811061429357fe5b60200260200101518152602001826003815181106142ad57fe5b60200260200101518152509250505090565b600080631cd554d160e21b8414806142dc57506001836040015111155b156142ec5750600090508061129b565b60006142f6612c12565b6001600160a01b0316637a018a1e866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561433957600080fd5b505afa15801561434d573d6000803e3d6000fd5b505050506040513d602081101561436357600080fd5b5051905061437285828661443e565b92509250509250929050565b6000670de0b6b3a7640000614399848463ffffffff61465e16565b816143a057fe5b049392505050565b6000806143b36148b1565b6143bb613fcd565b90506000806143cb88878561443e565b915091506000806143dd8b8a8761443e565b90925090506143f2848363ffffffff611fa016565b6060860151909750871180614407578761440d565b85606001515b97508781806144195750845b806144215750825b9750975050505050505094509492505050565b600061379c611e88565b600080631cd554d160e21b85148061445b57506001836040015111155b1561446b57506000905080614656565b6060614475612c12565b6001600160a01b031663ed762450878660400151886040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060006040518083038186803b1580156144cc57600080fd5b505afa1580156144e0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561450957600080fd5b810190808051604051939291908464010000000082111561452957600080fd5b90830190602082018581111561453e57600080fd5b825186602082028301116401000000008211171561455b57600080fd5b82525081516020918201928201910280838360005b83811015614588578181015183820152602001614570565b50505050905001604052602001805160405193929190846401000000008211156145b157600080fd5b9083019060208201858111156145c657600080fd5b82518660208202830111640100000000821117156145e357600080fd5b82525081516020918201928201910280838360005b838110156146105781810151838201526020016145f8565b50505050905001604052505050508091505061463581856000015186602001516146b7565b606085015190935083118061464a5783614650565b84606001515b93509150505b935093915050565b60008261466d575060006105eb565b8282028284828161467a57fe5b04146105e85760405162461bcd60e51b81526004018080602001828103825260218152602001806149836021913960400191505060405180910390fd5b60008351600014156146cb575060006116d7565b8351600090600019015b8015610ab3576146eb828563ffffffff61437e16565b9150600061472387600184038151811061470157fe5b602002602001015188848151811061471557fe5b602002602001015188614741565b9050614735838263ffffffff611fa016565b925050600019016146d5565b600082614750575060006116d7565b600083851161476157848403614765565b8385035b90506000614779828663ffffffff61479516565b905083811161478957600061342a565b92909203949350505050565b60006105e8826147b385670de0b6b3a764000063ffffffff61465e16565b9063ffffffff6147bf16565b6000808211614815576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161482057fe5b04949350505050565b60405180610100016040528060008019168152602001600081526020016000801916815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697045786368616e6765723a204f6e6c792073796e746865746978206f7220612073796e746820636f6e74726163742063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e6e6f7420736574746c6520647572696e672077616974696e6720706572696f64a265627a7a723158206c3072bdae97e9fe1ec23714d85a49814efbcde83ea8f73689226d674983667464736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "ExchangeEntryAppended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reclaim",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rebate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "srcRoundIdAtPeriodEnd",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "destRoundIdAtPeriodEnd",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "exchangeTimestamp",
							"type": "uint256"
						}
					],
					"name": "ExchangeEntrySettled",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						}
					],
					"name": "calculateAmountAfterSettlement",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountAfterSettlement",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "dynamicFeeRateForExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "feeRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "tooVolatile",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "virtualSynth",
							"type": "bool"
						},
						{
							"internalType": "address",
							"name": "rewardAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "contract IVirtualSynth",
							"name": "vSynth",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "exchangeAtomically",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "feeRateForExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "getAmountsForExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "hasWaitingPeriodOrSettlementOwing",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isSynthRateInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "lastExchangeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "maxSecsLeftInWaitingPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "priceDeviationThresholdFactor",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settle",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntriesSettled",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settlementOwing",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rebateAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntries",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "suspendSynthWithInvalidRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tradingRewardsEnabled",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "waitingPeriodSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xed300c5b2d358e358214c29c49cfa96f47b243c78cce492117e09639caed0062",
				"urls": [
					"bzz-raw://d0400a37de0d19346f63f7c982e58ee1a6ed4f310c435ee190c22e82a313da31",
					"dweb:/ipfs/QmYmtZgV1NmxerRqgy6Xoe3WSM6ocMyiiAKFBgM83NZyob"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Exchanger.sol": "Exchanger"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Exchanger.sol": {
						"keccak256": "0xed300c5b2d358e358214c29c49cfa96f47b243c78cce492117e09639caed0062",
						"urls": [
							"bzz-raw://d0400a37de0d19346f63f7c982e58ee1a6ed4f310c435ee190c22e82a313da31",
							"dweb:/ipfs/QmYmtZgV1NmxerRqgy6Xoe3WSM6ocMyiiAKFBgM83NZyob"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeState": {
			"bytecode": "608060405234801561001057600080fd5b50600436106100ea5760003560e01c806379ba50971161008c578063b44e975311610066578063b44e975314610290578063cd8b94dc146102bc578063d0d3d62a146102d9578063f1406dc814610305576100ea565b806379ba5097146102785780638da5cb5b14610280578063aefc4ccb14610288576100ea565b80633ca9d85c116100c85780633ca9d85c146101a457806352f445ca146101fc57806353a47bb7146102225780636e13fe7614610246576100ea565b80630d40d0cf146100ef57806315987eb6146101095780631627540c1461017c575b600080fd5b6100f7610331565b60408051918252519081900360200190f35b61013b6004803603606081101561011f57600080fd5b506001600160a01b038135169060208101359060400135610337565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6101a26004803603602081101561019257600080fd5b50356001600160a01b03166103dc565b005b6101a260048036036101208110156101bb57600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a08101359060c08101359060e0810135906101000135610438565b6101a26004803603602081101561021257600080fd5b50356001600160a01b03166105aa565b61022a610606565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603606081101561025c57600080fd5b506001600160a01b038135169060208101359060400135610615565b6101a261067f565b61022a61073b565b61022a61074a565b6100f7600480360360408110156102a657600080fd5b506001600160a01b038135169060200135610759565b6101a2600480360360208110156102d257600080fd5b5035610781565b6101a2600480360360408110156102ef57600080fd5b506001600160a01b03813516906020013561078e565b6100f76004803603604081101561031b57600080fd5b506001600160a01b038135169060200135610807565b60045481565b6000806000806000806000806000600360008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c81526020019081526020016000208a8154811061038657fe5b906000526020600020906008020190508060000154816001015482600201548360030154846004015485600501548660060154876007015498509850985098509850985098509850509397509397509397509397565b6103e461088d565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002546001600160a01b031633146104815760405162461bcd60e51b81526004018080602001828103825260348152602001806109b26034913960400191505060405180910390fd5b6004546001600160a01b038a1660009081526003602090815260408083208a8452909152902054106104fa576040805162461bcd60e51b815260206004820152601860248201527f4d6178207175657565206c656e67746820726561636865640000000000000000604482015290519081900360640190fd5b6001600160a01b03909816600090815260036020818152604080842089855282528084208151610100810183529b8c528b83019a8b52908b0198895260608b0197885260808b0196875260a08b0195865260c08b0194855260e08b019b8c5280546001818101835591855291909320995160089091029099019889559651908801559351600287015591519385019390935591516004840155905160058301555160068201559051600790910155565b6105b261088d565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6003602052826000526040600020602052816000526040600020818154811061063a57fe5b60009182526020909120600890910201805460018201546002830154600384015460048501546005860154600687015460079097015495995093975091955093909288565b6001546001600160a01b031633146106c85760405162461bcd60e51b815260040180806020018281038252603581526020018061094e6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6001600160a01b03919091166000908152600360209081526040808320938352929052205490565b61078961088d565b600455565b6002546001600160a01b031633146107d75760405162461bcd60e51b81526004018080602001828103825260348152602001806109b26034913960400191505060405180910390fd5b6001600160a01b03821660009081526003602090815260408083208484529091528120610803916108d8565b5050565b6001600160a01b0382166000908152600360209081526040808320848452909152812081805b8254811015610884578183828154811061084357fe5b906000526020600020906008020160050154111561087c5782818154811061086757fe5b90600052602060002090600802016005015491505b60010161082d565b50949350505050565b6000546001600160a01b031633146108d65760405162461bcd60e51b815260040180806020018281038252602f815260200180610983602f913960400191505060405180910390fd5b565b50805460008255600802906000526020600020908101906108f991906108fc565b50565b61094a91905b808211156109465760008082556001820181905560028201819055600382018190556004820181905560058201819055600682018190556007820155600801610902565b5090565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a723158201a1b4bc0756095db7afa356fdb7d3e6679489382c61bfa6fdca34d602b66dd0a64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "appendExchangeEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "exchanges",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getEntryAt",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getLengthOfEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getMaxTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxEntriesInQueue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeEntries",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxEntriesInQueue",
							"type": "uint256"
						}
					],
					"name": "setMaxEntriesInQueue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x1cf56bd0dcc56b042a0559751a0b36b55d367f861874c759d409c156141e932f",
				"urls": [
					"bzz-raw://e8af817b751ecf684c838b3376b697ba00a8bbcc1a0df6811afbc15454e62e0e",
					"dweb:/ipfs/QmTajTipwQGpTemNzA89n9BZo32aHQiVybu1UHaoTbFH1t"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeState.sol": "ExchangeState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangeState.sol": {
						"keccak256": "0x1cf56bd0dcc56b042a0559751a0b36b55d367f861874c759d409c156141e932f",
						"urls": [
							"bzz-raw://e8af817b751ecf684c838b3376b697ba00a8bbcc1a0df6811afbc15454e62e0e",
							"dweb:/ipfs/QmTajTipwQGpTemNzA89n9BZo32aHQiVybu1UHaoTbFH1t"
						]
					}
				},
				"version": 1
			}
		},
		"IssuerWithoutLiquidations": {
			"bytecode": "60806040523480156200001c576000806200001962000138565b50505b5060405162005b2738038062005b278339810160408190526200003f916200026d565b81818080836001600160a01b038116620000815760405162461bcd60e51b81526004016200006d9062000334565b604051809103906200007e62000138565b50505b80600060018162000091620001a5565b816001600160a01b0302191690836001600160a01b0316021790620000b562000207565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c600082604051620000ec9291906200030e565b60405180910390a15080600260018162000105620001a5565b816001600160a01b0302191690836001600160a01b03160217906200012962000207565b50505050505050505062000397565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200017257808601518282016040015260200162000155565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156200020257600082820152602001620001e9565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020620001e9565b600081519050620002678162000375565b92915050565b600080604083850312156200028c576000806200028962000138565b50505b60006200029a858562000256565b9250506020620002ad8582860162000256565b9150509250929050565b620002c28162000361565b82525050565b620002c2816200034f565b6000620002e260198362000346565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200031e8285620002b7565b6200032d6020830184620002c8565b9392505050565b602080825281016200026781620002d3565b90815260200190565b60006001600160a01b03821662000267565b60006200026782600062000267826200034f565b62000380816200034f565b811462000394576000806200020262000138565b50565b61578080620003a76000396000f3fe608060405234801561001957600080610016614248565b50505b50600436106102675760003560e01c8063741853601161014f578063a63c4df4116100cc578063c897713211610090578063c897713214610521578063d37c4d8b14610534578063d686c06c14610547578063dbf633401461055a578063dd3d2b2e14610562578063fd864ccf1461057557610267565b8063a63c4df4146104bf578063ae3bbbbb146104e0578063b06e8c65146104f3578063b410a03414610506578063bff4fdfc1461050e57610267565b8063899ffef411610113578063899ffef4146104765780638da5cb5b1461047e5780639a5154b414610486578063a311c7c214610499578063a5fdc5de146104ac57610267565b8063741853601461042d57806379ba5097146104355780637b1001b71461043d578063835e119c14610450578063849cf5881461046357610267565b806332608039116101e85780634e99bda9116101ac5780634e99bda9146103bf57806353a47bb7146103c7578063614d08f8146103dc5780636bed0415146103e45780637168d2c21461040557806372cb051f1461041857610267565b806332608039146103535780633b6afe401461036657806344ec6b621461038657806347a9b6db14610399578063497d704a146103ac57610267565b80631627540c1161022f5780631627540c146102fd57806316b2213f14610310578063242df9e1146103235780632af64bd31461032b5780632b3f41aa1461034057610267565b8063042e06881461027557806304f3bcec1461028a57806305b3c1c9146102a85780630b887dae146102c85780631137aedf146102db575b600080610272614248565b50505b610288610283366004614892565b610588565b005b6102926105a0565b60405161029f91906154cc565b60405180910390f35b6102bb6102b63660046147a3565b6105bf565b60405161029f919061543f565b6102886102d63660046149eb565b6105d3565b6102ee6102e93660046147a3565b6106fc565b60405161029f93929190615469565b61028861030b3660046147a3565b610718565b6102bb61031e3660046147a3565b61078c565b6102bb6107a7565b6103336107b7565b60405161029f9190615431565b61028861034e3660046147f9565b610938565b6102926103613660046149eb565b610957565b610379610374366004614917565b610971565b60405161029f9190615420565b61028861039436600461483c565b610a24565b6102886103a7366004614917565b610a47565b6102886103ba3660046147a3565b610b1e565b610333610b36565b6103cf610bed565b60405161029f919061532d565b6102bb610bf9565b6103f76103f2366004614892565b610c06565b60405161029f929190615629565b610288610413366004614917565b610c6a565b610420610df2565b60405161029f919061540f565b610288610dfe565b610288610f91565b6102bb61044b366004614a39565b6110ec565b61029261045e3660046149eb565b6110f8565b610288610471366004614a72565b611122565b6104206111bf565b6103cf6113fe565b61028861049436600461483c565b611409565b6102bb6104a73660046147a3565b611427565b6102bb6104ba3660046147a3565b611439565b6104d26104cd3660046148cb565b611444565b60405161029f92919061545b565b6103f76104ee3660046147a3565b611457565b610288610501366004614892565b61146d565b6102bb611481565b61033361051c3660046147a3565b61148b565b61028861052f3660046147a3565b611496565b6102bb610542366004614892565b6114ab565b61028861055536600461483c565b611582565b6102bb61164c565b6102bb6105703660046147a3565b61165f565b6102886105833660046147f9565b61166a565b610590611689565b61059c828260006116da565b5050565b600060026105ac6142b3565b906101000a90046001600160a01b031681565b6000806105cb836118a1565b509392505050565b6105db611991565b60006105e56119e4565b9050806001600160a01b031663d685743a8360006040518363ffffffff1660e01b8152600401610616929190615477565b6000604051808303816000878061062b61430e565b1580156106405760008061063d614248565b50505b505a61064a61435a565b50505050505015801561066a573d6000803e3d6000610667614248565b50505b50505050806001600160a01b03166304bd11e560016040518263ffffffff1660e01b815260040161069b9190615431565b600060405180830381600087806106b061430e565b1580156106c5576000806106c2614248565b50505b505a6106cf61435a565b5050505050501580156106ef573d6000803e3d60006106ec614248565b50505b5050505061059c826119fb565b600080600061070a84612081565b509196909550909350915050565b610720611991565b806001808061072d6142b3565b816001600160a01b0302191690836001600160a01b031602179061074f614445565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2281604051610781919061532d565b60405180910390a150565b600660205280600052604060002090506107a46142b3565b81565b60006107b16120e9565b90505b90565b600060606107c36111bf565b905060005b815181101561092f5760008282815181106107df57fe5b602002602001015160008181526003602052909150604090206000906108036142b3565b6001600160a01b036101009290920a900416600060026108216142b3565b906101000a90046001600160a01b03166001600160a01b03166321f8a721836040518263ffffffff1660e01b815260040161085c919061543f565b602060405180830381868061086f61430e565b15801561088457600080610881614248565b50505b505a61088e614493565b50505050501580156108ad573d6000803e3d60006108aa614248565b50505b50505050604051601f3d908101601f191682016040526108d091908101906147d2565b6001600160a01b0316141580610915575060008181526003602052604081206000906108fa6142b3565b906101000a90046001600160a01b03166001600160a01b0316145b1561092657600093505050506107b4565b506001016107c8565b50600191505090565b610940611689565b61094a82826121b8565b61059c8260006001612292565b6005602052806000526040600020600091506105ac6142b3565b606081818160405190808252806020026020018201604052801561099f578160200160208202803883390190505b50905060005b82811015610a1957600560008787848181106109bd57fe5b9050602002013581526020019081526020016000206000906109dd6142b3565b906101000a90046001600160a01b03168282815181106109f957fe5b6001600160a01b03909216602092830291909101909101526001016109a5565b509150505b92915050565b610a2c611689565b610a36838361258f565b610a42838260006116da565b505050565b610a4f611991565b8060005b81811015610a8c57610a84848483818110610a6a57fe5b9050602002016020610a7f9190810190614a72565b6125c4565b600101610a53565b50610a956119e4565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401610ac19190615431565b60006040518083038160008780610ad661430e565b158015610aeb57600080610ae8614248565b50505b505a610af561435a565b505050505050158015610b15573d6000803e3d6000610b12614248565b50505b50505050505050565b610b26611689565b610b338160006001612292565b50565b6000610b40612814565b6001600160a01b031663c8e5bbd5610b58600161282f565b6040518263ffffffff1660e01b8152600401610b74919061540f565b6000604051808303818680610b8761430e565b158015610b9c57600080610b99614248565b50505b505a610ba6614493565b5050505050158015610bc5573d6000803e3d6000610bc2614248565b50505b505050506040513d6000823e601f3d908101601f19168201604052610a1e919081019061496b565b600060016105ac6142b3565b6524b9b9bab2b960d11b81565b6000806000610c1b85620a69cb60eb1b612951565b935090915060009050610c3c610c2f612baa565b839063ffffffff612c0216565b9050848110610c4e5760009350610c61565b610c5e858263ffffffff612c1e16565b93505b50509250929050565b610c72611991565b806000610c7d6119e4565b9050606082604051908082528060200260200182016040528015610cab578160200160208202803883390190505b509050816001600160a01b03166317b38db48686846040518463ffffffff1660e01b8152600401610cde939291906153e9565b60006040518083038160008780610cf361430e565b158015610d0857600080610d05614248565b50505b505a610d1261435a565b505050505050158015610d32573d6000803e3d6000610d2f614248565b50505b50505050816001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401610d639190615431565b60006040518083038160008780610d7861430e565b158015610d8d57600080610d8a614248565b50505b505a610d9761435a565b505050505050158015610db7573d6000803e3d6000610db4614248565b50505b506000925050505b83811015610dea57610de2868683818110610dd657fe5b905060200201356119fb565b600101610dbf565b505050505050565b60606107b1600061282f565b6060610e086111bf565b905060005b815181101561059c576000828281518110610e2457fe5b602002602001015190506000806002610e3b6142b3565b906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610e6b9190615322565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610e97929190615485565b6020604051808303818680610eaa61430e565b158015610ebf57600080610ebc614248565b50505b505a610ec9614493565b5050505050158015610ee8573d6000803e3d6000610ee5614248565b50505b50505050604051601f3d908101601f19168201604052610f0b91908101906147d2565b60008381526003602052909150819060409020600181610f296142b3565b816001600160a01b0302191690836001600160a01b0316021790610f4b614445565b5050507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa688282604051610f7f92919061544d565b60405180910390a15050600101610e0d565b60006001610f9d6142b3565b906101000a90046001600160a01b03166001600160a01b03165a610fbf61455a565b6001600160a01b031614610ff75760405162461bcd60e51b8152600401610fe5906154f9565b60405180910390610ff4614248565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000806110236142b3565b906101000a90046001600160a01b031660016000906110406142b3565b906101000a90046001600160a01b031660405161105e92919061533b565b60405180910390a1600060016110726142b3565b906101000a90046001600160a01b03166000806101000a816110926142b3565b816001600160a01b0302191690836001600160a01b03160217906110b4614445565b5050506000600160006101000a816110ca6142b3565b816001600160a01b0302191690836001600160a01b0316021790610a42614445565b60006105cb8383612c58565b600481816111046142b3565b811061110c57fe5b90600052602060002001600091506105ac6142b3565b61112a611991565b611133816125c4565b61113b6119e4565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b81526004016111679190615431565b6000604051808303816000878061117c61430e565b1580156111915760008061118e614248565b50505b505a61119b61435a565b5050505050501580156111b8573d6000803e3d6000610b15614248565b5050505050565b6060806111ca612ecf565b90506060600c6040519080825280602002602001820160405280156111f9578160200160208202803883390190505b509050680a6f2dce8d0cae8d2f60bb1b8160008151811061121657fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160018151811061123c57fe5b6020026020010181815250506c45786368616e6765526174657360981b8160028151811061126657fe5b6020026020010181815250506d53796e746865746978537461746560901b8160038151811061129157fe5b60200260200101818152505066119959541bdbdb60ca1b816004815181106112b557fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b816005815181106112e357fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b8160068151811061130e57fe5b6020026020010181815250506e53796e746865746978457363726f7760881b8160078151811061133a57fe5b6020026020010181815250506b4c69717569646174696f6e7360a01b8160088151811061136357fe5b6020026020010181815250506844656274436163686560b81b8160098151811061138957fe5b6020026020010181815250507021b7b63630ba32b930b626b0b730b3b2b960791b81600a815181106113b757fe5b6020026020010181815250506c29bcb73a342932b232b2b6b2b960991b81600b815181106113e157fe5b6020026020010181815250506113f78282612f2e565b9250505090565b6000806105ac6142b3565b611411611689565b61141b83836121b8565b610a4283826000612292565b600061143282612fe3565b5092915050565b6000610a1e8261303d565b60008061144f611689565b935093915050565b60008061146383612fe3565b915091505b915091565b611475611689565b61059c82826000612292565b60006107b1612baa565b6000610a1e826131de565b61149e611689565b610b3381600060016116da565b6000806114b6613211565b90506000816001600160a01b0316638b3f8088866040518263ffffffff1660e01b81526004016114e6919061532d565b604080518083038186806114f861430e565b15801561150d5760008061150a614248565b50505b505a611517614493565b5050505050158015611536573d6000803e3d6000611533614248565b50505b50505050604051601f3d908101601f191682016040526115599190810190614ae8565b5090508061156c57600092505050610a1e565b6115768585612951565b50909695505050505050565b61158a61322d565b826001600160a01b031663d4b839926040518163ffffffff1660e01b815260040160206040518083038186806115be61430e565b1580156115d3576000806115d0614248565b50505b505a6115dd614493565b50505050501580156115fc573d6000803e3d60006115f9614248565b50505b50505050604051601f3d908101601f1916820160405261161f91908101906147d2565b6001600160a01b0316639dc29fac83836040518363ffffffff1660e01b8152600401610ac1929190615356565b60006004806116596142b3565b91505090565b6000610a1e8261326d565b611672611689565b61167c828261258f565b61059c82600060016116da565b61169161335a565b6001600160a01b03165a6116a361455a565b6001600160a01b0316146116d85760405162461bcd60e51b81526004016116c990615579565b6040518091039061059c614248565b565b6000806000806116e987612081565b93509350935093506116fa81613371565b8461173657838611156117315760405162461bcd60e51b815260040161171f90615549565b6040518091039061172e614248565b50505b61173a565b8395505b6117468787858561339e565b61174f8761388a565b631cd554d160e21b60009081526005602052604090206000906117706142b3565b906101000a90046001600160a01b03166001600160a01b031663867904b488886040518363ffffffff1660e01b81526004016117ad929190615356565b600060405180830381600087806117c261430e565b1580156117d7576000806117d4614248565b50505b505a6117e161435a565b505050505050158015611801573d6000803e3d60006117fe614248565b50505b5050505061180d6119e4565b6001600160a01b03166342c7b8196118248861390b565b6040518263ffffffff1660e01b8152600401611840919061543f565b6000604051808303816000878061185561430e565b15801561186a57600080611867614248565b50505b505a61187461435a565b505050505050158015611894573d6000803e3d6000611891614248565b50505b50505050610b1587613946565b6000806000806118af612814565b6001600160a01b0316630c71cd23620a69cb60eb1b6040518263ffffffff1660e01b81526004016118e0919061543f565b604080518083038186806118f261430e565b15801561190757600080611904614248565b50505b505a611911614493565b5050505050158015611930573d6000803e3d600061192d614248565b50505b50505050604051601f3d908101601f191682016040526119539190810190614ac0565b91509150600061196b6119658761303d565b84613a2b565b9050611985611978612baa565b829063ffffffff613a3d16565b94509092505050915091565b60008061199c6142b3565b906101000a90046001600160a01b03166001600160a01b03165a6119be61455a565b6001600160a01b0316146116d85760405162461bcd60e51b81526004016116c9906155b9565b60006107b16844656274436163686560b81b613a67565b6000818152600560205260408120600090611a146142b3565b6001600160a01b036101009290920a900416905080611a575760405162461bcd60e51b8152600401611a4590615599565b60405180910390611a54614248565b50505b631cd554d160e21b821415611a905760405162461bcd60e51b8152600401611a7e906155e9565b60405180910390611a8d614248565b50505b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303818680611ac661430e565b158015611adb57600080611ad8614248565b50505b505a611ae5614493565b5050505050158015611b04573d6000803e3d6000611b01614248565b50505b50505050604051601f3d908101601f19168201604052611b279190810190614a12565b90508015611e8657600080611b3a612814565b6001600160a01b0316638295016a86856040518363ffffffff1660e01b8152600401611b679291906154a5565b6060604051808303818680611b7a61430e565b158015611b8f57600080611b8c614248565b50505b505a611b99614493565b5050505050158015611bb8573d6000803e3d6000611bb5614248565b50505b50505050604051601f3d908101601f19168201604052611bdb9190810190614b8b565b509150915060008111611c125760405162461bcd60e51b8152600401611c00906155a9565b60405180910390611c0f614248565b50505b6000611c1c613aef565b631cd554d160e21b6000908152600560205290915060409020600090611c406142b3565b906101000a90046001600160a01b03166001600160a01b031663867904b482856040518363ffffffff1660e01b8152600401611c7d929190615356565b60006040518083038160008780611c9261430e565b158015611ca757600080611ca4614248565b50505b505a611cb161435a565b505050505050158015611cd1573d6000803e3d6000611cce614248565b50505b50505050611cdd6119e4565b6001600160a01b03166342c7b819611cf48561390b565b6040518263ffffffff1660e01b8152600401611d10919061543f565b60006040518083038160008780611d2561430e565b158015611d3a57600080611d37614248565b50505b505a611d4461435a565b505050505050158015611d64573d6000803e3d6000611d61614248565b50505b50505050806001600160a01b0316633a70599c866001600160a01b031663ec5568896040518163ffffffff1660e01b81526004016020604051808303818680611dab61430e565b158015611dc057600080611dbd614248565b50505b505a611dca614493565b5050505050158015611de9573d6000803e3d6000611de6614248565b50505b50505050604051601f3d908101601f19168201604052611e0c9190810190614a99565b846040518363ffffffff1660e01b8152600401611e2a9291906154da565b60006040518083038160008780611e3f61430e565b158015611e5457600080611e51614248565b50505b505a611e5e61435a565b505050505050158015611e7e573d6000803e3d6000611e7b614248565b50505b505050505050505b60005b600480611e946142b3565b9050811015611fed57826001600160a01b031660048281611eb36142b3565b8110611ebb57fe5b90600052602060002001600090611ed06142b3565b906101000a90046001600160a01b03166001600160a01b03161415611fe55760048181611efb6142b3565b8110611f0357fe5b90600052602060002001600181611f186142b3565b906001600160a01b0302191690611f2d614445565b505060046001600480611f3e6142b3565b90500381611f4a6142b3565b8110611f5257fe5b90600052602060002001600090611f676142b3565b906101000a90046001600160a01b031660048281611f836142b3565b8110611f8b57fe5b90600052602060002001600181611fa06142b3565b816001600160a01b0302191690836001600160a01b0316021790611fc2614445565b505050600480611fd06142b3565b90611fdf9060001983016145a0565b50611fed565b600101611e89565b506001600160a01b0382166000908152600660205260409020600090612011614445565b5050600083815260056020526040902060018161202c6142b3565b906001600160a01b0302191690612041614445565b50507f6166f5c475cc1cd535c6cdf14a6d5edb811e34117031fc2863392a136eb655d0838360405161207492919061544d565b60405180910390a1505050565b60008060008061209885631cd554d160e21b612951565b919450925090506000806120ab876118a1565b9150915081955082806120bb5750805b92508585106120cd57600095506120e0565b6120dd868663ffffffff612c1e16565b95505b50509193509193565b60006120f3613b0a565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b815260040161214492919061545b565b602060405180830381868061215761430e565b15801561216c57600080612169614248565b50505b505a612176614493565b5050505050158015612195573d6000803e3d6000612192614248565b50505b50505050604051601f3d908101601f191682016040526107b19190810190614a12565b6121c0613b27565b6001600160a01b0316637d3f0ba283836040518363ffffffff1660e01b81526004016121ed92919061533b565b602060405180830381868061220061430e565b15801561221557600080612212614248565b50505b505a61221f614493565b505050505015801561223e573d6000803e3d600061223b614248565b50505b50505050604051601f3d908101601f1916820160405261226191908101906149c4565b61059c5760405162461bcd60e51b815260040161227d90615509565b6040518091039061228c614248565b50505050565b8061244a576122a0836131de565b6122ce5760405162461bcd60e51b81526004016122bc90615609565b604051809103906122cb614248565b50505b6000806122d9613b46565b6001600160a01b0316631b16802c86631cd554d160e21b6040518363ffffffff1660e01b815260040161230d929190615356565b6060604051808303816000878061232261430e565b15801561233757600080612334614248565b50505b505a61234161435a565b505050505050158015612361573d6000803e3d600061235e614248565b50505b50505050604051601f3d908101601f191682016040526123849190810190614b8b565b909350915050801561244757612398613b46565b6001600160a01b0316634c268fc886631cd554d160e21b87866040518563ffffffff1660e01b81526004016123d09493929190615371565b60206040518083038186806123e361430e565b1580156123f8576000806123f5614248565b50505b505a612402614493565b5050505050158015612421573d6000803e3d600061241e614248565b50505b50505050604051601f3d908101601f191682016040526124449190810190614a12565b93505b50505b600080600061246086631cd554d160e21b612951565b925092509250600080612472886118a1565b9150915061248783806124825750815b613371565b600085116124b95760405162461bcd60e51b81526004016124a790615539565b604051809103906124b6614248565b50505b85156124d2576124cf858363ffffffff612c1e16565b96505b60006124e1898a8a8989613b5d565b9050826124f4878363ffffffff612c1e16565b11610b1257612501613cda565b6001600160a01b031663974e9e7f8a6040518263ffffffff1660e01b815260040161252c919061532d565b6000604051808303816000878061254161430e565b15801561255657600080612553614248565b50505b505a61256061435a565b505050505050158015612580573d6000803e3d600061257d614248565b50505b50505050505050505050505050565b612597613b27565b6001600160a01b0316630487261783836040518363ffffffff1660e01b81526004016121ed92919061533b565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186806125fa61430e565b15801561260f5760008061260c614248565b50505b505a612619614493565b5050505050158015612638573d6000803e3d6000612635614248565b50505b50505050604051601f3d908101601f1916820160405261265b9190810190614a12565b60008181526005602052909150604081206000906126776142b3565b906101000a90046001600160a01b03166001600160a01b0316146126bf5760405162461bcd60e51b81526004016126ad906155f9565b604051809103906126bc614248565b50505b6001600160a01b03821660009081526006602052604081206126df6142b3565b1461270e5760405162461bcd60e51b81526004016126fc906155c9565b6040518091039061270b614248565b50505b8160048060018161271d6142b3565b018082612728614445565b505060009283529160001983019150602090209192910160018161274a6142b3565b816001600160a01b0302191690836001600160a01b031602179061276c614445565b505050600082815260056020528391506040902060018161278b6142b3565b816001600160a01b0302191690836001600160a01b03160217906127ad614445565b5050506001600160a01b0382166000908152600660205281906040902081906127d4614445565b5050507f0a2b6ebf143b3e9fcd67e17748ad315174746100c27228468b2c98c302c62884818360405161280892919061544d565b60405180910390a15050565b60006107b16c45786368616e6765526174657360981b613a67565b6060808261283e576000612841565b60015b60ff1660048061284f6142b3565b90500160405190808252806020026020018201604052801561287b578160200160208202803883390190505b50905060005b60048061288c6142b3565b90508110156129195760066000600483816128a56142b3565b81106128ad57fe5b906000526020600020016000906128c26142b3565b906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206128fa6142b3565b82828151811061290657fe5b6020908102919091010152600101612881565b508215610a1e57620a69cb60eb1b816004806129336142b3565b90508151811061293f57fe5b60200260200101818152505092915050565b60008060008061295f613211565b9050600080826001600160a01b0316638b3f8088896040518263ffffffff1660e01b8152600401612990919061532d565b604080518083038186806129a261430e565b1580156129b7576000806129b4614248565b50505b505a6129c1614493565b50505050501580156129e0573d6000803e3d60006129dd614248565b50505b50505050604051601f3d908101601f19168201604052612a039190810190614ae8565b91509150612a12876001612c58565b909550935081612a29575060009450612ba3915050565b6000612b7f83612b73866001600160a01b03166308d95cd5866040518263ffffffff1660e01b8152600401612a5e919061543f565b6020604051808303818680612a7161430e565b158015612a8657600080612a83614248565b50505b505a612a90614493565b5050505050158015612aaf573d6000803e3d6000612aac614248565b50505b50505050604051601f3d908101601f19168201604052612ad29190810190614a12565b876001600160a01b031663463177126040518163ffffffff1660e01b81526004016020604051808303818680612b0661430e565b158015612b1b57600080612b18614248565b50505b505a612b25614493565b5050505050158015612b44573d6000803e3d6000612b41614248565b50505b50505050604051601f3d908101601f19168201604052612b679190810190614a12565b9063ffffffff613cf416565b9063ffffffff613d0d16565b90506000612b9082612b7389613d26565b9050612b9b81613d3c565b975050505050505b9250925092565b6000612bb4613b0a565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b815260040161214492919061545b565b6000612c178383670de0b6b3a7640000613d5e565b9392505050565b600082821115612c525760405162461bcd60e51b8152600401612c4090615559565b60405180910390612c4f614248565b50505b50900390565b6000806000806000612c686119e4565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b81526004016080604051808303818680612c9b61430e565b158015612cb057600080612cad614248565b50505b505a612cba614493565b5050505050158015612cd9573d6000803e3d6000612cd6614248565b50505b50505050604051601f3d908101601f19168201604052612cfc9190810190614b21565b935093505092508180612d0c5750805b93506000612d18612814565b905086612de257600080612d2a6119e4565b6001600160a01b0316632992dba26040518163ffffffff1660e01b815260040160408051808303818680612d5c61430e565b158015612d7157600080612d6e614248565b50505b505a612d7b614493565b5050505050158015612d9a573d6000803e3d6000612d97614248565b50505b50505050604051601f3d908101601f19168201604052612dbd9190810190614ac0565b9092509050612dd2868363ffffffff613da216565b95508680612ddd5750805b965050505b631cd554d160e21b881415612dfd5750919350612ec8915050565b600080826001600160a01b0316630c71cd238b6040518263ffffffff1660e01b8152600401612e2c919061543f565b60408051808303818680612e3e61430e565b158015612e5357600080612e50614248565b50505b505a612e5d614493565b5050505050158015612e7c573d6000803e3d6000612e79614248565b50505b50505050604051601f3d908101601f19168201604052612e9f9190810190614ac0565b9092509050612eb4868363ffffffff612c0216565b8780612ebd5750815b975097505050505050505b9250929050565b60606001604051908082528060200260200182016040528015612efc578160200160208202803883390190505b5090506e466c657869626c6553746f7261676560881b81600081518110612f1f57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015612f5e578160200160208202803883390190505b50905060005b8351811015612fa057838181518110612f7957fe5b6020026020010151828281518110612f8d57fe5b6020908102919091010152600101612f64565b5060005b825181101561143257828181518110612fb957fe5b6020026020010151828286510181518110612fd057fe5b6020908102919091010152600101612fa4565b6000806000612ff18461303d565b905060008061300686620a69cb60eb1b612951565b9250509150826000141561302257600094509250611468915050565b613032828463ffffffff612c0216565b945092505050915091565b60008061304861335a565b6001600160a01b03166370a08231846040518263ffffffff1660e01b8152600401613073919061532d565b602060405180830381868061308661430e565b15801561309b57600080613098614248565b50505b505a6130a5614493565b50505050501580156130c4573d6000803e3d60006130c1614248565b50505b50505050604051601f3d908101601f191682016040526130e79190810190614a12565b905060006130f3613ddf565b6001600160a01b0316146131bb576131b861310c613ddf565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401613137919061532d565b602060405180830381868061314a61430e565b15801561315f5760008061315c614248565b50505b505a613169614493565b5050505050158015613188573d6000803e3d6000613185614248565b50505b50505050604051601f3d908101601f191682016040526131ab9190810190614a12565b829063ffffffff613da216565b90505b60006131c5613dfc565b6001600160a01b031614610a1e57612c1761310c613dfc565b60006132006131eb6120e9565b6131f48461326d565b9063ffffffff613da216565b5a6132096145d4565b101592915050565b60006107b16d53796e746865746978537461746560901b613a67565b613235613aef565b6001600160a01b03165a61324761455a565b6001600160a01b0316146116d85760405162461bcd60e51b81526004016116c990615529565b6000613277613b0a565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b856040516020016132b39291906152dc565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b81526004016132e692919061545b565b60206040518083038186806132f961430e565b15801561330e5760008061330b614248565b50505b505a613318614493565b5050505050158015613337573d6000803e3d6000613334614248565b50505b50505050604051601f3d908101601f19168201604052610a1e9190810190614a12565b60006107b1680a6f2dce8d0cae8d2f60bb1b613a67565b8015610b335760405162461bcd60e51b815260040161338f90615589565b60405180910390610a42614248565b60006133a8613211565b905060006133bc858463ffffffff613da216565b905060006133d0868363ffffffff613cf416565b905060006134848273__$7f049114de1448f1f37beb78d0ca94acee$__63d5e5e6e66040518163ffffffff1660e01b8152600401602060405180830381868061341761430e565b15801561342c57600080613429614248565b50505b505a61343661461a565b5050505050158015613455573d6000803e3d6000613452614248565b50505b50505050604051601f3d908101601f191682016040526134789190810190614a12565b9063ffffffff612c1e16565b905085156134a7576134a083612b67898963ffffffff613da216565b9150613521565b836001600160a01b0316631bfba5956040518163ffffffff1660e01b8152600401600060405180830381600087806134dd61430e565b1580156134f2576000806134ef614248565b50505b505a6134fc61435a565b50505050505015801561351c573d6000803e3d6000613519614248565b50505b505050505b836001600160a01b031663a764eb4589846040518363ffffffff1660e01b815260040161354f929190615356565b6000604051808303816000878061356461430e565b15801561357957600080613576614248565b50505b505a61358361435a565b5050505050501580156135a3573d6000803e3d60006135a0614248565b50505b505050506000846001600160a01b031663cd92eba96040518163ffffffff1660e01b815260040160206040518083038186806135dd61430e565b1580156135f2576000806135ef614248565b50505b505a6135fc614493565b505050505015801561361b573d6000803e3d6000613618614248565b50505b50505050604051601f3d908101601f1916820160405261363e9190810190614a12565b111561375c576001600160a01b038416633d31e97b6136e3838363463177126040518163ffffffff1660e01b8152600401602060405180830381868061368261430e565b15801561369757600080613694614248565b50505b505a6136a1614493565b50505050501580156136c0573d6000803e3d60006136bd614248565b50505b50505050604051601f3d908101601f19168201604052612b739190810190614a12565b6040518263ffffffff1660e01b81526004016136ff919061543f565b6000604051808303816000878061371461430e565b15801561372957600080613726614248565b50505b505a61373361435a565b505050505050158015613753573d6000803e3d6000613750614248565b50505b50505050613880565b836001600160a01b0316633d31e97b73__$7f049114de1448f1f37beb78d0ca94acee$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186806137aa61430e565b1580156137bf576000806137bc614248565b50505b505a6137c961461a565b50505050501580156137e8573d6000803e3d60006137e5614248565b50505b50505050604051601f3d908101601f1916820160405261380b9190810190614a12565b6040518263ffffffff1660e01b8152600401613827919061543f565b6000604051808303816000878061383c61430e565b1580156138515760008061384e614248565b50505b505a61385b61435a565b50505050505015801561387b573d6000803e3d6000613878614248565b50505b505050505b5050505050505050565b613892613b0a565b6001600160a01b0316631d5b277f6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b846040516020016138ce9291906152dc565b604051602081830303815290604052805190602001205a6138ed6145d4565b6040518463ffffffff1660e01b815260040161116793929190615469565b6000600160ff1b82106139425760405162461bcd60e51b815260040161393090615619565b6040518091039061393f614248565b50505b5090565b600080613951613211565b6001600160a01b0316638b3f8088846040518263ffffffff1660e01b815260040161397c919061532d565b6040805180830381868061398e61430e565b1580156139a3576000806139a0614248565b50505b505a6139ad614493565b50505050501580156139cc573d6000803e3d60006139c9614248565b50505b50505050604051601f3d908101601f191682016040526139ef9190810190614ae8565b90925090506139fc613e18565b6001600160a01b031663866452748484846040518463ffffffff1660e01b8152600401610ac1939291906153c1565b6000612c17838363ffffffff613e2d16565b6000670de0b6b3a7640000613a58848463ffffffff613e4216565b81613a5f57fe5b049392505050565b600081815260036020528060408120600090613a816142b3565b6001600160a01b036101009290920a900416905080151583604051602001613aa99190615302565b604051602081830303815290604052906114325760405162461bcd60e51b8152600401613ad691906154e8565b60405180910390613ae5614248565b5050509050919050565b60006107b16c29bcb73a342932b232b2b6b2b960991b613a67565b60006107b16e466c657869626c6553746f7261676560881b613a67565b60006107b17044656c6567617465417070726f76616c7360781b613a67565b60006107b16822bc31b430b733b2b960b91b613a67565b6000838310613b6c5783613b6e565b825b9050613b7c86828585613e7c565b631cd554d160e21b6000908152600560205260409020600090613b9d6142b3565b906101000a90046001600160a01b03166001600160a01b0316639dc29fac86836040518363ffffffff1660e01b8152600401613bda929190615356565b60006040518083038160008780613bef61430e565b158015613c0457600080613c01614248565b50505b505a613c0e61435a565b505050505050158015613c2e573d6000803e3d6000613c2b614248565b50505b50505050613c3a6119e4565b6001600160a01b03166342c7b819613c518361390b565b6000036040518263ffffffff1660e01b8152600401613c70919061543f565b60006040518083038160008780613c8561430e565b158015613c9a57600080613c97614248565b50505b505a613ca461435a565b505050505050158015613cc4573d6000803e3d6000613cc1614248565b50505b50505050613cd186613946565b95945050505050565b60006107b16b4c69717569646174696f6e7360a01b613a67565b6000612c1783836b033b2e3c9fd0803ce8000000613d5e565b6000612c1783836b033b2e3c9fd0803ce80000006141d6565b6000610a1e82633b9aca0063ffffffff613e4216565b60006305f5e10082046005600a820610613d5457600a015b600a900492915050565b600080613d8484613d7887600a870263ffffffff613e4216565b9063ffffffff61420116565b90506005600a825b0610613d9657600a015b600a9004949350505050565b600082820183811015612c175760405162461bcd60e51b8152600401613dc790615519565b60405180910390613dd6614248565b50509392505050565b60006107b16e53796e746865746978457363726f7760881b613a67565b60006107b16d2932bbb0b93222b9b1b937bbab1960911b613a67565b60006107b166119959541bdbdb60ca1b613a67565b6000612c178383670de0b6b3a76400006141d6565b600082613e5157506000610a1e565b82820282848281613e5e57fe5b0414612c175760405162461bcd60e51b8152600401613dc7906155d9565b6000613e86613211565b90506000613e9a838663ffffffff612c1e16565b905060008115613f60576000613eb6878463ffffffff613cf416565b9050613f5c8173__$7f049114de1448f1f37beb78d0ca94acee$__63d5e5e6e66040518163ffffffff1660e01b81526004016020604051808303818680613efb61430e565b158015613f1057600080613f0d614248565b50505b505a613f1a61461a565b5050505050158015613f39573d6000803e3d6000613f36614248565b50505b50505050604051601f3d908101601f191682016040526131f49190810190614a12565b9150505b8486141561406d57826001600160a01b031663a764eb458860006040518363ffffffff1660e01b8152600401613f979291906153a6565b60006040518083038160008780613fac61430e565b158015613fc157600080613fbe614248565b50505b505a613fcb61435a565b505050505050158015613feb573d6000803e3d6000613fe8614248565b50505b50505050826001600160a01b031663ba08f2996040518163ffffffff1660e01b81526004016000604051808303816000878061402561430e565b15801561403a57600080614037614248565b50505b505a61404461435a565b505050505050158015614064573d6000803e3d6000614061614248565b50505b5050505061411e565b600061407f868863ffffffff612c1e16565b90506000614093828563ffffffff613cf416565b9050846001600160a01b031663a764eb458a836040518363ffffffff1660e01b81526004016140c3929190615356565b600060405180830381600087806140d861430e565b1580156140ed576000806140ea614248565b50505b505a6140f761435a565b505050505050158015614117573d6000803e3d6000614114614248565b50505b5050505050505b6001600160a01b038316633d31e97b61415c838363463177126040518163ffffffff1660e01b8152600401602060405180830381868061368261430e565b6040518263ffffffff1660e01b8152600401614178919061543f565b6000604051808303816000878061418d61430e565b1580156141a25760008061419f614248565b50505b505a6141ac61435a565b5050505050501580156141c9573d6000803e3d6000612580614248565b5050505050505050505050565b600080600a83046141ed868663ffffffff613e4216565b816141f457fe5b0490506005600a82613d8c565b60008082116142345760405162461bcd60e51b815260040161422290615569565b60405180910390614231614248565b50505b600082848161423f57fe5b04949350505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015614280578086015182820160400152602001614265565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015610a42576000828201526020016142f7565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206142f7565b6385979f76598160e01b815261438b565b8080831115610a1e575090919050565b8080831015610a1e575090919050565b836004820152846024820152606060448201528760648201526084810160005b898110156143c35780890151828201526020016143ab565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af150596144188e3d61437b565b8d01614424818761436b565b5b828110156144395760008152602001614425565b50929d50505050505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206142f7565b638540661f598160e01b81525b836004820152846024820152606060448201528660648201526084810160005b888110156144d85780880151828201526020016144c0565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af1505961452d8d3d61437b565b8c01614539818761436b565b5b8281101561454e576000815260200161453a565b50929c50505050505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206142f7565b816145a96142b3565b81836145b3614445565b505081811115610a425781836000526020600020610a42928101910161462b565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206142f7565b63ffe73914598160e01b81526144a0565b6107b491905b808211156139425760008082614645614445565b505050600101614631565b8035610a1e8161574b565b600081519050610a1e8161574b565b60008083601f84011261468557600080614682614248565b50505b50813567ffffffffffffffff8111156146a6576000806146a3614248565b50505b602083019150836020820283011115612ec857600080610c61614248565b600082601f8301126146de576000806146db614248565b50505b81516146f16146ec82615678565b615644565b9150818183526020840193506020810190508385602084028201111561471f5760008061471c614248565b50505b60005b8381101561474b5781614735888261477a565b8452506020928301929190910190600101614722565b5050505092915050565b8035610a1e81615765565b600081519050610a1e81615765565b8035610a1e8161576e565b600081519050610a1e8161576e565b8035610a1e81615777565b600081519050610a1e81615777565b6000602082840312156147be576000806147bb614248565b50505b60006147ca8484614650565b949350505050565b6000602082840312156147ed576000806147ea614248565b50505b60006147ca848461465b565b6000806040838503121561481557600080614812614248565b50505b60006148218585614650565b925050602061483285828601614650565b9150509250929050565b60008060006060848603121561485a57600080614857614248565b50505b60006148668686614650565b935050602061487786828701614650565b92505060406148888682870161476f565b9150509250925092565b600080604083850312156148ae576000806148ab614248565b50505b60006148ba8585614650565b92505060206148328582860161476f565b6000806000606084860312156148e9576000806148e6614248565b50505b60006148f58686614650565b93505060206149068682870161476f565b925050604061488886828701614650565b6000806020838503121561493357600080614930614248565b50505b823567ffffffffffffffff81111561495357600080614950614248565b50505b61495f8582860161466a565b92509250509250929050565b6000806040838503121561498757600080614984614248565b50505b825167ffffffffffffffff8111156149a7576000806149a4614248565b50505b6149b3858286016146c4565b925050602061483285828601614760565b6000602082840312156149df576000806149dc614248565b50505b60006147ca8484614760565b600060208284031215614a0657600080614a03614248565b50505b60006147ca848461476f565b600060208284031215614a2d57600080614a2a614248565b50505b60006147ca848461477a565b60008060408385031215614a5557600080614a52614248565b50505b6000614a61858561476f565b925050602061483285828601614755565b600060208284031215614a8d57600080614a8a614248565b50505b60006147ca8484614789565b600060208284031215614ab457600080614ab1614248565b50505b60006147ca8484614794565b60008060408385031215614adc57600080614ad9614248565b50505b60006149b3858561477a565b60008060408385031215614b0457600080614b01614248565b50505b6000614b10858561477a565b92505060206148328582860161477a565b60008060008060808587031215614b4057600080614b3d614248565b50505b6000614b4c878761477a565b9450506020614b5d8782880161477a565b9350506040614b6e87828801614760565b9250506060614b7f87828801614760565b91505092959194509250565b600080600060608486031215614ba957600080614ba6614248565b50505b6000614bb5868661477a565b9350506020614bc68682870161477a565b92505060406148888682870161477a565b6000614be38383614d57565b505060200190565b6000614be38383614d71565b614c00816156c0565b82525050565b614c00614c12826156c0565b61572a565b6000614c2383856156b2565b93506001600160fb1b03831115614c4257600080614c3f614248565b50505b602083029250614c538385846156f2565b50500190565b6000614c64826156a8565b614c6e81856156b2565b9350614c79836156a2565b8060005b83811015614ca7578151614c918882614bd7565b9750614c9c836156a2565b925050600101614c7d565b509495945050505050565b6000614cbd826156a8565b614cc781856156b2565b9350614cd2836156a2565b8060005b83811015614ca7578151614cea8882614beb565b9750614cf5836156a2565b925050600101614cd6565b6000614d0b826156a8565b614d1581856156b2565b9350614d20836156a2565b8060005b83811015614ca7578151614d388882614bd7565b9750614d43836156a2565b925050600101614d24565b614c00816156cb565b614c00816107b4565b614c00614d6c826107b4565b6107b4565b614c00816156d0565b614c00816156e7565b6000614d8e826156a8565b614d9881856156b2565b9350614da88185602086016156fe565b614db18161573b565b9093019392505050565b6000614dc86035836156b2565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000614e1f601d836156b2565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b6000614e58601b836156b2565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614e91603f836156b2565b7f4973737565723a204f6e6c79207468652053796e746852656465656d6572206381527f6f6e74726163742063616e20706572666f726d207468697320616374696f6e00602082015260400192915050565b6000614ef06012836156b2565b714e6f206465627420746f20666f726769766560701b815260200192915050565b6000614f1e6010836156b2565b6f416d6f756e7420746f6f206c6172676560801b815260200192915050565b6000614f4a601e836156b2565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000614f83601a836156b2565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000614fbc6011836156bb565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000614fe9603b836156b2565b7f4973737565723a204f6e6c79207468652073796e74686574697820636f6e747281527f6163742063616e20706572666f726d207468697320616374696f6e0000000000602082015260400192915050565b6000615048601e836156b2565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b60006150816014836156b2565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b60006150b1602a836156b2565b7f43616e6e6f742072656d6f76652073796e746820746f2072656465656d20776981526974686f7574207261746560b01b602082015260400192915050565b60006150fd602f836156b2565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b600061515a601c836156b2565b7f53796e7468206164647265737320616c72656164792065786973747300000000815260200192915050565b60006151936021836156b2565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006151d66013836156b2565b72086c2dcdcdee840e4cadadeecca40e6f2dce8d606b1b815260200192915050565b60006152056019836156bb565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061523e600c836156b2565b6b53796e74682065786973747360a01b815260200192915050565b6000615266601e836156b2565b7f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000815260200192915050565b600061529f6028836156b2565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b60006152e88285614d60565b6020820191506152f88284614c06565b5060140192915050565b600061530d82614faf565b91506153198284614d60565b50602001919050565b600061530d826151f8565b60208101610a1e8284614bf7565b604081016153498285614bf7565b612c176020830184614bf7565b604081016153648285614bf7565b612c176020830184614d57565b6080810161537f8287614bf7565b61538c6020830186614d57565b6153996040830185614d57565b613cd16060830184614d57565b604081016153b48285614bf7565b612c176020830184614d7a565b606081016153cf8286614bf7565b6153dc6020830185614d57565b6147ca6040830184614d57565b604080825281016153fb818587614c17565b90508181036020830152613cd18184614d00565b60208082528101612c178184614c59565b60208082528101612c178184614cb2565b60208101610a1e8284614d4e565b60208101610a1e8284614d57565b604081016153498285614d57565b604081016153648285614d57565b606081016153cf8286614d57565b604081016153b48285614d57565b604081016154938285614d57565b81810360208301526147ca8184614d83565b606081016154b38285614d57565b6154c06020830184614d57565b612c1760408301615141565b60208101610a1e8284614d71565b604081016153648285614d71565b60208082528101612c178184614d83565b60208082528101610a1e81614dbb565b60208082528101610a1e81614e12565b60208082528101610a1e81614e4b565b60208082528101610a1e81614e84565b60208082528101610a1e81614ee3565b60208082528101610a1e81614f11565b60208082528101610a1e81614f3d565b60208082528101610a1e81614f76565b60208082528101610a1e81614fdc565b60208082528101610a1e8161503b565b60208082528101610a1e81615074565b60208082528101610a1e816150a4565b60208082528101610a1e816150f0565b60208082528101610a1e8161514d565b60208082528101610a1e81615186565b60208082528101610a1e816151c9565b60208082528101610a1e81615231565b60208082528101610a1e81615259565b60208082528101610a1e81615292565b604081016156378285614d57565b612c176020830184614d4e565b6000604051905081810181811067ffffffffffffffff821117156156705760008061566d614248565b50505b604052919050565b600067ffffffffffffffff82111561569857600080615695614248565b50505b5060209081020190565b60200190565b6000815192915050565b90815260200190565b919050565b6000610a1e826156db565b151590565b6000610a1e826156c0565b6001600160a01b031690565b6000610a1e826107b4565b82818337506000910152565b60005b83811015615719578082015183820152602001615701565b8381111561228c5750506000910152565b6000610a1e826000610a1e82615745565b601f01601f191690565b60601b90565b615754816156c0565b8114610b3357600080610a42614248565b615754816156cb565b615754816107b4565b615754816156d056",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "SynthAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "SynthRemoved",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract ISynth",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "addSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract ISynth[]",
							"name": "synthsToAdd",
							"type": "address[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "anySynthOrSNXRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableCurrencyKeys",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableSynthCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "availableSynths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "deprecatedSynthProxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "balance",
							"type": "uint256"
						}
					],
					"name": "burnForRedemption",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "burnSynthsToTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "burnSynthsToTargetOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "canBurnSynths",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "collateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatioAndAnyRatesInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "debtBalanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtBalance",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "getSynths",
					"outputs": [
						{
							"internalType": "contract ISynth[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "issueMaxSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "issueMaxSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "lastIssueEvent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "susdAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						}
					],
					"name": "liquidateDelinquentAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRedeemed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amountToLiquidate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "maxIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minimumStakeTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "remainingIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyIssued",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalSystemDebt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "removeSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "synthsByAddress",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "excludeOtherCollateral",
							"type": "bool"
						}
					],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalIssued",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "balance",
							"type": "uint256"
						}
					],
					"name": "transferableSynthetixAndAnyRateIsInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x53fb9b38928193220b5534b2b6d2ff9b84d023aeb60faa090361bb75f4a0d140",
				"urls": [
					"bzz-raw://81fd334934793fe74a601babd2bf397faab5dc2bb1122d07e183083e94b5adc4",
					"dweb:/ipfs/QmTUkRBLvWnTKzcnHCfbvW7gDzGXVt9Ffzcwf14TTS7sNs"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"IssuerWithoutLiquidations.sol": "IssuerWithoutLiquidations"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"IssuerWithoutLiquidations.sol": {
						"keccak256": "0x53fb9b38928193220b5534b2b6d2ff9b84d023aeb60faa090361bb75f4a0d140",
						"urls": [
							"bzz-raw://81fd334934793fe74a601babd2bf397faab5dc2bb1122d07e183083e94b5adc4",
							"dweb:/ipfs/QmTUkRBLvWnTKzcnHCfbvW7gDzGXVt9Ffzcwf14TTS7sNs"
						]
					}
				},
				"version": 1
			}
		},
		"TradingRewards": {
			"bytecode": "608060405234801561001057600080fd5b50600436106101f05760003560e01c8063741853601161010f578063b225dbaa116100a2578063f32ffd6911610071578063f32ffd69146104e2578063f61f5df614610552578063f6b584791461057e578063fc9c99ac146105fe576101f0565b8063b225dbaa14610491578063ccb6e043146102c5578063ce7fccba146104ae578063dea021a5146104da576101f0565b806391b4ded9116100de57806391b4ded914610438578063937ffb8f146104405780639865fdb71461045d578063ae934a7a14610465576101f0565b806374185360146103c857806379ba5097146103d0578063899ffef4146103d85780638da5cb5b14610430576101f0565b80632af64bd31161018757806355aa41bf1161015657806355aa41bf1461037e5780635c975abb1461039b5780636fe4136b146103a3578063706848d2146103ab576101f0565b80632af64bd31461032257806338dfa8cf1461032a5780633dbf12fa1461035057806353a47bb714610376576101f0565b806316841952116101c3578063168419521461028957806316c38b3c146102a6578063175c5189146102c557806321cad774146102f6576101f0565b806304f3bcec146101f5578063056097ac14610219578063086146d2146102495780631627540c14610263575b600080fd5b6101fd610606565b604080516001600160a01b039092168252519081900360200190f35b6102476004803603604081101561022f57600080fd5b506001600160a01b038135811691602001351661061a565b005b6102516107c5565b60408051918252519081900360200190f35b6102476004803603602081101561027957600080fd5b50356001600160a01b03166107cc565b6102476004803603602081101561029f57600080fd5b5035610828565b610247600480360360208110156102bc57600080fd5b50351515610a51565b6102e2600480360360208110156102db57600080fd5b5035610acb565b604080519115158252519081900360200190f35b6102476004803603604081101561030c57600080fd5b50803590602001356001600160a01b0316610ae0565b6102e2610c0a565b6102476004803603602081101561034057600080fd5b50356001600160a01b0316610d1c565b6102476004803603602081101561036657600080fd5b50356001600160a01b0316610ed4565b6101fd610f8b565b6102516004803603602081101561039457600080fd5b5035610f9a565b6102e2610faf565b6101fd610fb8565b610251600480360360208110156103c157600080fd5b5035610fc7565b610247610fdc565b6102476111b9565b6103e0611275565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561041c578181015183820152602001610404565b505050509050019250505060405180910390f35b6101fd6112e4565b6102516112f3565b6102516004803603602081101561045657600080fd5b50356112f9565b61025161130e565b6102476004803603604081101561047b57600080fd5b506001600160a01b0381351690602001356113ab565b610247600480360360208110156104a757600080fd5b5035611518565b610251600480360360408110156104c457600080fd5b506001600160a01b0381351690602001356115c5565b6101fd6115da565b610247600480360360208110156104f857600080fd5b81019060208101813564010000000081111561051357600080fd5b82018360208201111561052557600080fd5b8035906020019184602083028401116401000000008311171561054757600080fd5b5090925090506115e9565b6102516004803603604081101561056857600080fd5b506001600160a01b0381351690602001356116c7565b6102516004803603604081101561059457600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105bf57600080fd5b8201836020820111156105d157600080fd5b803590602001918460208302840111640100000000831117156105f357600080fd5b5090925090506116f2565b610251611742565b60045461010090046001600160a01b031681565b610622611748565b61062b81611793565b610633611803565b6001600160a01b0316826001600160a01b03161415610699576040805162461bcd60e51b815260206004820152601960248201527f4d7573742075736520616e6f746865722066756e6374696f6e00000000000000604482015290519081900360640190fd5b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106e457600080fd5b505afa1580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b505190508061075b576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b6107756001600160a01b038316848363ffffffff61181a16565b604080516001600160a01b0380871682528516602082015280820183905290517f401f439d865a766757ec78675925bd67198d5e78805aa41691b34b5d6a6cbbe69181900360600190a150505050565b6006545b90565b6107d4611748565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6009546001600160a01b03163314610887576040805162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206e6f7420706572696f6420636f6e74726f6c6c657200000000604482015290519081900360640190fd5b6000610891611803565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108e657600080fd5b505afa1580156108fa573d6000803e3d6000fd5b505050506040513d602081101561091057600080fd5b505160075490915060009061092c90839063ffffffff61186c16565b905080831115610983576040805162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742066726565207265776172647300000000000000604482015290519081900360640190fd5b60065460009081526008602052604090206002810184905560038101849055805460ff191660011781556007546109c0908563ffffffff6118c916565b600755600654604080519182526020820186905280517ffa0492b63d7120c62ccb8708eb597813e6968a23d09adac98d54dd0085cb264f9281900390910190a1600654610a1490600163ffffffff6118c916565b600681905560408051918252517f4368a9298adc0e57eceb11d0ef07022051a2feb5985d832be0764cde9a2307329181900360200190a150505050565b610a59611748565b60045460ff1615158115151415610a6f57610ac8565b6004805460ff1916821515179081905560ff1615610a8c57426003555b6004546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60009081526008602052604090205460ff1690565b610ae8611923565b6001600160a01b0316336001600160a01b031614610b4d576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c792045786368616e6765722063616e20696e766f6b6520746869730000604482015290519081900360640190fd5b60065460009081526008602090815260408083206001600160a01b03851684526004810190925290912054610b88908463ffffffff6118c916565b6001600160a01b03831660009081526004830160205260409020556001810154610bb8908463ffffffff6118c916565b600182015560065460408051858152602081019290925280516001600160a01b038516927f927be3e95451b16be3f4586524834dfffa10e6f9ee4c1e26fe3c46140fbbf86692908290030190a2505050565b60006060610c16611275565b905060005b8151811015610d13576000828281518110610c3257fe5b602090810291909101810151600081815260058352604090819020546004805483516321f8a72160e01b815291820185905292519395506001600160a01b0391821694610100909304909116926321f8a72192602480840193919291829003018186803b158015610ca257600080fd5b505afa158015610cb6573d6000803e3d6000fd5b505050506040513d6020811015610ccc57600080fd5b50516001600160a01b0316141580610cf957506000818152600560205260409020546001600160a01b0316155b15610d0a57600093505050506107c9565b50600101610c1b565b50600191505090565b610d24611748565b610d2d81611793565b6000610d37611803565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d8c57600080fd5b505afa158015610da0573d6000803e3d6000fd5b505050506040513d6020811015610db657600080fd5b5051905080610e03576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b6000610e1a6007548361186c90919063ffffffff16565b905060008111610e68576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b610e8b8382610e75611803565b6001600160a01b0316919063ffffffff61181a16565b604080516001600160a01b03851681526020810183905281517f14e7312259d4851b8b6742ace55ac44b31d7929a6b2998b35ba22445859e5ee3929181900390910190a1505050565b610edc611748565b6001600160a01b038116610f37576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420706572696f6420636f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b600980546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fb81e5409e39d3d3d85951a2af3563e484cfe2e7b4af2500a0ecbe14035a9bddc9181900360200190a150565b6002546001600160a01b031681565b60009081526008602052604090206001015490565b60045460ff1681565b6000610fc2611803565b905090565b60009081526008602052604090206003015490565b6060610fe6611275565b905060005b81518110156111b557600082828151811061100257fe5b602002602001015190506000600460019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156110cd5781810151838201526020016110b5565b50505050905090810190601f1680156110fa5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561111857600080fd5b505afa15801561112c573d6000803e3d6000fd5b505050506040513d602081101561114257600080fd5b505160008381526005602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610feb565b5050565b6002546001600160a01b031633146112025760405162461bcd60e51b8152600401808060200182810382526035815260200180611efd6035913960400191505060405180910390fd5b600154600254604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160028054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60408051600280825260608083018452926020830190803883390190505090506822bc31b430b733b2b960b91b816000815181106112af57fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b816001815181106112d557fe5b60200260200101818152505090565b6001546001600160a01b031681565b60035481565b60009081526008602052604090206002015490565b6000610fc260075461131e611803565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561137357600080fd5b505afa158015611387573d6000803e3d6000fd5b505050506040513d602081101561139d57600080fd5b50519063ffffffff61186c16565b6113b3611748565b6113bc82611793565b6006548110611412576040805162461bcd60e51b815260206004820152601a60248201527f43616e6e6f74207265636f7665722066726f6d20616374697665000000000000604482015290519081900360640190fd5b60008181526008602052604090206003810154611476576040805162461bcd60e51b815260206004820152601f60248201527f4e6f207265776172647320617661696c61626c6520746f207265636f76657200604482015290519081900360640190fd5b60038101546114888482610e75611803565b60075461149b908263ffffffff61186c16565b6007556000838152600860209081526040808320805460ff1916815560018101849055600281018490556003019290925581516001600160a01b038716815290810183905280820185905290517f60f2caebb6d06055322fce1f0db429f6bc0a48534c8c9ba42359a80f36bb7f0c9181900360600190a150505050565b600080546001019081905560045460ff16156115655760405162461bcd60e51b815260040180806020018281038252603c815260200180611f82603c913960400191505060405180910390fd5b61156f338361193a565b60005481146111b5576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60006115d18383611a99565b90505b92915050565b6009546001600160a01b031690565b600080546001019081905560045460ff16156116365760405162461bcd60e51b815260040180806020018281038252603c815260200180611f82603c913960400191505060405180910390fd5b60005b8281101561166b57600084848381811061164f57fe5b905060200201359050611662338261193a565b50600101611639565b5060005481146116c2576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050565b60009081526008602090815260408083206001600160a01b0394909416835260049093019052205490565b6000805b8281101561173a57600084848381811061170c57fe5b90506020020135905061172f6117228783611a99565b849063ffffffff6118c916565b9250506001016116f6565b509392505050565b60075490565b6001546001600160a01b031633146117915760405162461bcd60e51b815260040180806020018281038252602f815260200180611f32602f913960400191505060405180910390fd5b565b6001600160a01b03811615806117b157506001600160a01b03811630145b15610ac8576040805162461bcd60e51b815260206004820152601760248201527f496e76616c6964207265636f7665722061646472657373000000000000000000604482015290519081900360640190fd5b6000610fc2680a6f2dce8d0cae8d2f60bb1b611b3d565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116c2908490611c21565b6000828211156118c3576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156115d1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610fc26822bc31b430b733b2b960b91b611b3d565b6000818152600860205260409020805460ff1661199e576040805162461bcd60e51b815260206004820152601760248201527f506572696f64206973206e6f742066696e616c697a6564000000000000000000604482015290519081900360640190fd5b60006119aa8484611a99565b9050600081116119f8576040805162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b604482015290519081900360640190fd5b6001600160a01b03841660009081526004830160205260408120556003820154611a28908263ffffffff61186c16565b6003830155600754611a40908263ffffffff61186c16565b600755611a508482610e75611803565b604080518281526020810185905281516001600160a01b038716927fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325928290030190a250505050565b600081815260086020526040812060038101541580611aba57506001810154155b80611ac75750805460ff16155b15611ad65760009150506115d4565b6001600160a01b038416600090815260048201602052604090205480611b01576000925050506115d4565b6000611b1a836001015483611ddf90919063ffffffff16565b9050611b33836002015482611e0990919063ffffffff16565b9695505050505050565b600081815260056020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611c1a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611bdf578181015183820152602001611bc7565b50505050905090810190601f168015611c0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b611c33826001600160a01b0316611e33565b611c84576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310611cc25780518252601f199092019160209182019101611ca3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611d24576040519150601f19603f3d011682016040523d82523d6000602084013e611d29565b606091505b509150915081611d80576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611dd957808060200190516020811015611d9c57600080fd5b5051611dd95760405162461bcd60e51b815260040180806020018281038252602a815260200180611fbe602a913960400191505060405180910390fd5b50505050565b60006115d182611dfd85670de0b6b3a764000063ffffffff611e3916565b9063ffffffff611e9216565b6000670de0b6b3a7640000611e24848463ffffffff611e3916565b81611e2b57fe5b049392505050565b3b151590565b600082611e48575060006115d4565b82820282848281611e5557fe5b04146115d15760405162461bcd60e51b8152600401808060200182810382526021815260200180611f616021913960400191505060405180910390fd5b6000808211611ee8576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611ef357fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e7472616374206973207061757365645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582020ca0bc39e980c9fbc482ca414792075106192bb9689bebf0ed627ba10ed3e0364736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "periodController",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "AssignedRewardTokensRecovered",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "ExchangeFeeRecorded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "NewPeriodStarted",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newPeriodController",
							"type": "address"
						}
					],
					"name": "PeriodControllerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rewards",
							"type": "uint256"
						}
					],
					"name": "PeriodFinalizedWithRewards",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "RewardsClaimed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "tokenAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "TokensRecovered",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "UnassignedRewardTokensRecovered",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "claimRewardsForPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256[]",
							"name": "periodIDs",
							"type": "uint256[]"
						}
					],
					"name": "claimRewardsForPeriods",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rewards",
							"type": "uint256"
						}
					],
					"name": "closeCurrentPeriodWithRewards",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getAvailableRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getAvailableRewardsForAccountForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "periodIDs",
							"type": "uint256[]"
						}
					],
					"name": "getAvailableRewardsForAccountForPeriods",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRewards",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCurrentPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodAvailableRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getPeriodController",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodIsClaimable",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodIsFinalized",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodRecordedFees",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodTotalRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getRewardsToken",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getUnaccountedFeesForAccountForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getUnassignedRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "usdFeeAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "recordExchangeFeeForAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "recoverAssignedRewardTokensAndDestroyPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "tokenAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						}
					],
					"name": "recoverTokens",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						}
					],
					"name": "recoverUnassignedRewardTokens",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "newPeriodController",
							"type": "address"
						}
					],
					"name": "setPeriodController",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xcbd0d5c5b23fcfe278a849ac74e6dd1336d80ad03093796a0f9a5517741e79d2",
				"urls": [
					"bzz-raw://60d1f6ec89cfad298295c14b7afd64d698b058afc78a203751e96c6c52951479",
					"dweb:/ipfs/QmVKq2uWEwzB9yY1azk322CBb1FP9w35eHhgYcm1Cu3aPb"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"TradingRewards.sol": "TradingRewards"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"TradingRewards.sol": {
						"keccak256": "0xcbd0d5c5b23fcfe278a849ac74e6dd1336d80ad03093796a0f9a5517741e79d2",
						"urls": [
							"bzz-raw://60d1f6ec89cfad298295c14b7afd64d698b058afc78a203751e96c6c52951479",
							"dweb:/ipfs/QmVKq2uWEwzB9yY1azk322CBb1FP9w35eHhgYcm1Cu3aPb"
						]
					}
				},
				"version": 1
			}
		},
		"EscrowChecker": {
			"bytecode": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063449d0eb11461003b5780639514c2321461009a575b600080fd5b6100616004803603602081101561005157600080fd5b50356001600160a01b03166100be565b604051808261020080838360005b8381101561008757818101518382015260200161006f565b5050505090500191505060405180910390f35b6100a2610231565b604080516001600160a01b039092168252519081900360200190f35b6100c6610240565b6100ce610240565b6000805460408051631025b3b560e11b81526001600160a01b0387811660048301529151919092169163204b676a916024808301926020929190829003018186803b15801561011c57600080fd5b505afa158015610130573d6000803e3d6000fd5b505050506040513d602081101561014657600080fd5b5051905060005b818110156102285761015d61025f565b6000546040805163da7bd3e960e01b81526001600160a01b03898116600483015260248201869052825193169263da7bd3e992604480840193919291829003018186803b1580156101ad57600080fd5b505afa1580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060408110156101e657600080fd5b5080519091508460028402601081106101fb57fe5b6020020152806001602002015184836002026001016010811061021a57fe5b60200201525060010161014d565b50909392505050565b6000546001600160a01b031681565b6040518061020001604052806010906020820280388339509192915050565b6040518060400160405280600290602082028038833950919291505056fea265627a7a72315820af34d244de6a19b5821ab641b750cb73600aacf4a2fa3a17dfa77dd8121f56fc64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract ISynthetixEscrow",
							"name": "_esc",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAccountSchedule",
					"outputs": [
						{
							"internalType": "uint256[16]",
							"name": "",
							"type": "uint256[16]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthetix_escrow",
					"outputs": [
						{
							"internalType": "contract ISynthetixEscrow",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x1947c4f998492a4f6f3166c993b3a6c89bef1d4760885bd3b3831c7e8f33d3ae",
				"urls": [
					"bzz-raw://b24b8e47b18a3eb46904d864a982b9d74814b0924cf6dfabe2b4d490c0dd61dd",
					"dweb:/ipfs/QmPsD9oqz24TZahik76pgzE42F5Azh7jg41JCYWsmRDNjM"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EscrowChecker.sol": "EscrowChecker"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EscrowChecker.sol": {
						"keccak256": "0x1947c4f998492a4f6f3166c993b3a6c89bef1d4760885bd3b3831c7e8f33d3ae",
						"urls": [
							"bzz-raw://b24b8e47b18a3eb46904d864a982b9d74814b0924cf6dfabe2b4d490c0dd61dd",
							"dweb:/ipfs/QmPsD9oqz24TZahik76pgzE42F5Azh7jg41JCYWsmRDNjM"
						]
					}
				},
				"version": 1
			}
		},
		"Synth": {
			"bytecode": "60806040523480156200001c5760008062000019620005c0565b50505b506040516200411a3803806200411a83398181016040526101008110156200004e576000806200004b620005c0565b50505b8101908080519291906020018051929190602001805160405193929190846401000000008211156200008a5760008062000087620005c0565b50505b908301906020820185811115620000ab57600080620000a8620005c0565b50505b8251640100000000811182820188101715620000d157600080620000ce620005c0565b50505b825250602001908051906020019080838360005b83811015620000ff578082015183820152602001620000e5565b50505050905090810190601f1680156200012d5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200015c5760008062000159620005c0565b50505b9083019060208201858111156200017d576000806200017a620005c0565b50505b8251640100000000811182820188101715620001a357600080620001a0620005c0565b50505b825250602001908051906020019080838360005b83811015620001d1578082015183820152602001620001b7565b50505050905090810190601f168015620001ff5780820380516001836020036101000a031916815260200191505b50604052602001805192919060200180519291906020018051929190602001805192508291508990508888888660128a86816001600160a01b038116620002975760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064016040518091039062000294620005c0565b50505b806000600181620002a76200062d565b816001600160a01b0302191690836001600160a01b0316021790620002cb6200068f565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a15060008080620003246200062d565b906101000a90046001600160a01b03166001600160a01b031614156200038f5760405162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b6044820152606401604051809103906200038c620005c0565b50505b8060026001816200039f6200062d565b816001600160a01b0302191690836001600160a01b0316021790620003c36200068f565b5050507ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e816040516001600160a01b03909116815260200160405180910390a150856005600181620004146200062d565b816001600160a01b0302191690836001600160a01b0316021790620004386200068f565b50505084600690805162000451929160200190620006de565b50600784805162000467929160200190620006de565b5082806008620004766200068f565b50505081600960006101000a816200048d6200062d565b8160ff021916908360ff16021790620004a56200068f565b5050505050505050505080600960016101000a81620004c36200062d565b816001600160a01b0302191690836001600160a01b0316021790620004e76200068f565b505050506001600160a01b038816620005465760405162461bcd60e51b815260206004820152601260248201527105f70726f78792063616e6e6f7420626520360741b60448201526064016040518091039062000543620005c0565b50505b6001600160a01b038416620005a15760405162461bcd60e51b815260206004820152601260248201527105f6f776e65722063616e6e6f7420626520360741b6044820152606401604051809103906200059e620005c0565b50505b8280600b620005af6200068f565b5050505050505050505050620007ba565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015620005fa578086015182820160400152602001620005dd565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156200068a5760008282015260200162000671565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60008152602062000671565b8280620006ea6200062d565b600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200073557805160ff191683800117856200072d6200068f565b50506200077b565b82800160010185620007466200068f565b505082156200077b579182015b828111156200077b57825182620007696200068f565b50509160200191906001019062000753565b50620007899291506200078d565b5090565b620007b791905b80821115620007895760008082620007ab6200068f565b50505060010162000794565b90565b61395080620007ca6000396000f3fe6080604052348015610019576000806100166134cb565b50505b506004361061020f5760003560e01c806395d89b4111610123578063d67bdd25116100b6578063e90dd9e211610085578063e90dd9e214610691578063eb1edd6114610699578063ec556889146106a1578063f7ea7a3d146106a9578063ffff51d6146106cf5761020f565b8063d67bdd251461060b578063dbd06c8514610613578063dd62ed3e1461061b578063e73cced3146106525761020f565b80639f769807116100f25780639f76980714610543578063a9059cbb14610572578063b014c3a3146105a7578063bc67f832146105dc5761020f565b806395d89b41146104cf57806397107d6d146104d75780639cbdaeb6146105065780639dc29fac1461050e5761020f565b80632e0f2625116101a65780637418536011610175578063741853601461042757806379ba50971461042f578063867904b414610437578063899ffef41461046c5780638da5cb5b146104c75761020f565b80632e0f2625146103ca578063313ce567146103e857806353a47bb7146103f057806370a08231146103f85761020f565b80631627540c116101e25780631627540c1461033a57806318160ddd1461036957806323b872dd146103835780632af64bd3146103c25761020f565b806304f3bcec1461021d57806306fdde0314610241578063095ea7b3146102c0578063131b0ae714610309575b60008061021a6134cb565b50505b6102256106fe565b6040516001600160a01b03909116815260200160405180910390f35b61024961071d565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561028557808201518382015260200161026d565b50505050905090810190601f1680156102b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f5600480360360408110156102df576000806102dc6134cb565b50505b506001600160a01b0381351690602001356107d6565b604051901515815260200160405180910390f35b61033860048036036020811015610328576000806103256134cb565b50505b50356001600160a01b03166108d4565b005b61033860048036036020811015610359576000806103566134cb565b50505b50356001600160a01b0316610912565b61037161098c565b60405190815260200160405180910390f35b6102f5600480360360608110156103a25760008061039f6134cb565b50505b506001600160a01b03813581169160208101359091169060400135610999565b6102f56109c0565b6103d2610b50565b60405160ff909116815260200160405180910390f35b6103d2610b55565b610225610b6e565b61037160048036036020811015610417576000806104146134cb565b50505b50356001600160a01b0316610b7a565b610338610c4e565b610338610e82565b61033860048036036040811015610456576000806104536134cb565b50505b506001600160a01b038135169060200135611005565b6104746110e3565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156104b357808201518382015260200161049b565b505050509050019250505060405180910390f35b6102256111ac565b6102496111b7565b610338600480360360208110156104f6576000806104f36134cb565b50505b50356001600160a01b0316611259565b6102256112d4565b6103386004803603604081101561052d5760008061052a6134cb565b50505b506001600160a01b0381351690602001356112e0565b610338600480360360208110156105625760008061055f6134cb565b50505b50356001600160a01b03166113bf565b6102f5600480360360408110156105915760008061058e6134cb565b50505b506001600160a01b038135169060200135611406565b6102f5600480360360408110156105c6576000806105c36134cb565b50505b506001600160a01b0381351690602001356114cb565b610338600480360360208110156105fb576000806105f86134cb565b50505b50356001600160a01b03166116fb565b610225611711565b61037161171d565b6103716004803603604081101561063a576000806106376134cb565b50505b506001600160a01b0381358116916020013516611727565b6102f5600480360360608110156106715760008061066e6134cb565b50505b506001600160a01b03813581169160208101359091169060400135611802565b6102256119ea565b6102256119f6565b610225611a0e565b610338600480360360208110156106c8576000806106c56134cb565b50505b5035611a1a565b610371600480360360208110156106ee576000806106eb6134cb565b50505b50356001600160a01b0316611a2e565b6001600961070a613536565b906101000a90046001600160a01b031681565b600680610728613536565b600181600116156101000203166002900480601f016020809104026020016040519081016040528181529190602083018280610762613536565b600181600116156101000203166002900480156107ce5780601f1061079c57610100808361078e613536565b0402835291602001916107ce565b820191906000526020600020905b816107b3613536565b815290600101906020018083116107aa57829003601f168201915b505050505081565b60006107e0611c0a565b60008060046107ed613536565b906101000a90046001600160a01b03169050600560009061080c613536565b906101000a90046001600160a01b03166001600160a01b031663da46098c8286866040516001600160e01b031960e086901b1681526001600160a01b03938416600482015291909216602482015260448101919091526064016000604051808303816000878061087a613591565b15801561088f5760008061088c6134cb565b50505b505a6108996135dd565b5050505050501580156108b9573d6000803e3d60006108b66134cb565b50505b505050506108c8818585611ce2565b60019150505b92915050565b6108dc611e5b565b8060036001816108ea613536565b816001600160a01b0302191690836001600160a01b031602179061090c6136c8565b50505050565b61091a611e5b565b8060018080610927613536565b816001600160a01b0302191690836001600160a01b03160217906109496136c8565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b6008610996613536565b81565b60006109a3611c0a565b6109ad8483611ed3565b6109b88484846120c7565b949350505050565b600060606109cc6110e3565b905060005b8151811015610b465760008282815181106109e857fe5b60200260200101516000818152600a60205290915060409020600090610a0c613536565b6001600160a01b036101009290920a90041660016009610a2a613536565b906101000a90046001600160a01b03166001600160a01b03166321f8a721836040516001600160e01b031960e084901b16815260048101919091526024016020604051808303818680610a7b613591565b158015610a9057600080610a8d6134cb565b50505b505a610a9a613716565b5050505050158015610ab9573d6000803e3d6000610ab66134cb565b50505b505050506040513d6020811015610ad857600080610ad56134cb565b50505b8101908080516001600160a01b031693909314159250829150610b2c905057506000818152600a60205260408120600090610b11613536565b906101000a90046001600160a01b03166001600160a01b0316145b15610b3d5760009350505050610b4d565b506001016109d1565b5060019150505b90565b601281565b60006009610b61613536565b906101000a900460ff1681565b6000600161070a613536565b6000806005610b87613536565b906101000a90046001600160a01b03166001600160a01b03166370a08231836040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303818680610be0613591565b158015610bf557600080610bf26134cb565b50505b505a610bff613716565b5050505050158015610c1e573d6000803e3d6000610c1b6134cb565b50505b505050506040513d6020811015610c3d57600080610c3a6134cb565b50505b81019080805193505050505b919050565b6060610c586110e3565b905060005b8151811015610e7e576000828281518110610c7457fe5b60200260200101519050600060016009610c8c613536565b906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040517f5265736f6c766572206d697373696e67207461726765743a2000000000000000602082015260398101919091526059016040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d41578082015183820152602001610d29565b50505050905090810190601f168015610d6e5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818680610d87613591565b158015610d9c57600080610d996134cb565b50505b505a610da6613716565b5050505050158015610dc5573d6000803e3d6000610dc26134cb565b50505b505050506040513d6020811015610de457600080610de16134cb565b50505b8101908080516000868152600a60205290945084935060409250905020600181610e0c613536565b816001600160a01b0302191690836001600160a01b0316021790610e2e6136c8565b5050507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6882826040519182526001600160a01b031660208201526040908101905180910390a15050600101610c5d565b5050565b60006001610e8e613536565b906101000a90046001600160a01b03166001600160a01b03165a610eb06137dc565b6001600160a01b031614610efe5760405162461bcd60e51b81526004018080602001828103825260358152602001806138236035913960400191505060405180910390610efb6134cb565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c600080610f2a613536565b906101000a90046001600160a01b03166001600090610f47613536565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a160006001610f86613536565b906101000a90046001600160a01b03166000806101000a81610fa6613536565b816001600160a01b0302191690836001600160a01b0316021790610fc86136c8565b5050506000600160006101000a81610fde613536565b816001600160a01b0302191690836001600160a01b03160217906110006136c8565b505050565b600061100f612392565b6001600160a01b03165a6110216137dc565b6001600160a01b031614905060006110376123ac565b6001600160a01b03165a6110496137dc565b6001600160a01b0316149050600061105f6123c3565b6001600160a01b03165a6110716137dc565b6001600160a01b031614905082806110865750815b8061108e5750805b6110d25760405162461bcd60e51b815260040180806020018281038252603381526020018061388760339139604001915050604051809103906110cf6134cb565b50505b6110dc85856123d7565b5050505050565b60606004604051908082528060200260200182016040528015611110578160200160208202803883390190505b5090506b53797374656d53746174757360a01b8160008151811061113057fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160018151811061115657fe5b6020026020010181815250506524b9b9bab2b960d11b8160028151811061117957fe5b60200260200101818152505066119959541bdbdb60ca1b8160038151811061119d57fe5b60200260200101818152505090565b60008061070a613536565b6007806111c2613536565b600181600116156101000203166002900480601f0160208091040260200160405190810160405281815291906020830182806111fc613536565b600181600116156101000203166002900480156107ce5780601f1061122857610100808361078e613536565b820191906000526020600020905b8161123f613536565b815290600101906020018083116112365750859350505050565b611261611e5b565b80600260018161126f613536565b816001600160a01b0302191690836001600160a01b03160217906112916136c8565b5050507ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e816040516001600160a01b03909116815260200160405180910390a150565b6000600361070a613536565b60006112ea612392565b6001600160a01b03165a6112fc6137dc565b6001600160a01b031614905060006113126123ac565b6001600160a01b03165a6113246137dc565b6001600160a01b0316149050600061133a6123c3565b6001600160a01b03165a61134c6137dc565b6001600160a01b031614905082806113615750815b806113695750805b6113ad5760405162461bcd60e51b815260040180806020018281038252603381526020018061388760339139604001915050604051809103906113aa6134cb565b50505b6113b7858561259a565b505050505050565b6113c76126f3565b8060056001816113d5613536565b816001600160a01b0302191690836001600160a01b03160217906113f76136c8565b5050506114038161287e565b50565b6000611410611c0a565b6114356000600461141f613536565b906101000a90046001600160a01b031683611ed3565b6001600160a01b03831673feefeefeefeefeefeefeefeefeefeefeefeefeef141561146b576114648383612a02565b90506108ce565b6001600160a01b03831661149e5761146460006004611488613536565b906101000a90046001600160a01b03168361259a565b6114c4600060046114ad613536565b906101000a90046001600160a01b03168484612c4b565b9392505050565b60006114d5611c0a565b60006114df6123ac565b6001600160a01b0316631b16802c600060046114f9613536565b906101000a90046001600160a01b0316600b611513613536565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160606040518083038160008780611554613591565b158015611569576000806115666134cb565b50505b505a6115736135dd565b505050505050158015611593573d6000803e3d60006115906134cb565b50505b505050506040513d60608110156115b2576000806115af6134cb565b50505b81019080805192919060200180519291906020018051955087945050841592506116bb91505057600060056115e5613536565b6001600160a01b036101009290920a9004166370a0823160006004611608613536565b906101000a90046001600160a01b03166040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303818680611652613591565b158015611667576000806116646134cb565b50505b505a611671613716565b5050505050158015611690573d6000803e3d600061168d6134cb565b50505b505050506040513d60208110156116af576000806116ac6134cb565b50505b81019080805193505050505b8084116116c857836116ca565b805b93506116f2600060046116db613536565b906101000a90046001600160a01b03168686612c4b565b95945050505050565b611703612f99565b8060046001816108ea613536565b6000600461070a613536565b600b610996613536565b6000806005611734613536565b906101000a90046001600160a01b03166001600160a01b031663dd62ed3e84846040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303818680611795613591565b1580156117aa576000806117a76134cb565b50505b505a6117b4613716565b50505050501580156117d3573d6000803e3d60006117d06134cb565b50505b505050506040513d60208110156117f2576000806117ef6134cb565b50505b8101908080519695505050505050565b600061180c611c0a565b60006118166123ac565b6001600160a01b0316631b16802c86600b61182f613536565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160606040518083038160008780611870613591565b158015611885576000806118826134cb565b50505b505a61188f6135dd565b5050505050501580156118af573d6000803e3d60006118ac6134cb565b50505b505050506040513d60608110156118ce576000806118cb6134cb565b50505b81019080805192919060200180519291906020018051955087945050841592506119c39150505760006005611901613536565b906101000a90046001600160a01b03166001600160a01b03166370a08231876040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381868061195a613591565b15801561196f5760008061196c6134cb565b50505b505a611979613716565b5050505050158015611998573d6000803e3d60006119956134cb565b50505b505050506040513d60208110156119b7576000806119b46134cb565b50505b81019080805193505050505b808410156119d157836119d3565b805b93506119e08686866120c7565b9695505050505050565b6000600561070a613536565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6000600261070a613536565b611a226126f3565b8080600861090c6136c8565b600080611a396123ac565b6001600160a01b03166319d5c66584600b611a52613536565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016060604051808303818680611a91613591565b158015611aa657600080611aa36134cb565b50505b505a611ab0613716565b5050505050158015611acf573d6000803e3d6000611acc6134cb565b50505b505050506040513d6060811015611aee57600080611aeb6134cb565b50505b81019080805192919060200180519291906020018051509394506000935083925060059150611b1d9050613536565b906101000a90046001600160a01b03166001600160a01b03166370a08231856040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303818680611b76613591565b158015611b8b57600080611b886134cb565b50505b505a611b95613716565b5050505050158015611bb4573d6000803e3d6000611bb16134cb565b50505b505050506040513d6020811015611bd357600080611bd06134cb565b50505b810190808051935050505080821115611bf157600092505050610c49565b611c01818363ffffffff61306616565b92505050610c49565b60006002611c16613536565b906101000a90046001600160a01b03166001600160a01b03165a611c386137dc565b6001600160a01b031614158015611c84575060006003611c56613536565b906101000a90046001600160a01b03166001600160a01b03165a611c786137dc565b6001600160a01b031614155b8015611cc557505a611c946137dc565b6001600160a01b031660006004611ca9613536565b906101000a90046001600160a01b03166001600160a01b031614155b15611ce0575a611cd36137dc565b6004600181610fde613536565b565b60006002611cee613536565b906101000a90046001600160a01b03166001600160a01b031663907dff97826040516020018082815260200191505060405160208183030381529060405260036040518060216138e9823960210190506040518091039020611d4f886130cb565b611d58886130cb565b60006040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018481526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b83811015611dc7578082015183820152602001611daf565b50505050905090810190601f168015611df45780820380516001836020036101000a031916815260200191505b5097505050505050505060006040518083038160008780611e13613591565b158015611e2857600080611e256134cb565b50505b505a611e326135dd565b505050505050158015611e52573d6000803e3d6000611e4f6134cb565b50505b50505050505050565b600080611e66613536565b906101000a90046001600160a01b03166001600160a01b03165a611e886137dc565b6001600160a01b031614611ce05760405162461bcd60e51b815260040180806020018281038252602f8152602001806138ba602f913960400191505060405180910390610e7e6134cb565b611edb6123ac565b6001600160a01b031663059c29ec83600b611ef4613536565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303818680611f33613591565b158015611f4857600080611f456134cb565b50505b505a611f52613716565b5050505050158015611f71573d6000803e3d6000611f6e6134cb565b50505b505050506040513d6020811015611f9057600080611f8d6134cb565b50505b810190808051159250611fe09150505760405162461bcd60e51b815260040180806020018281038252602581526020018061390a6025913960400191505060405180910390611fdd6134cb565b50505b80611fea83611a2e565b10156120305760405162461bcd60e51b815260040180806020018281038252602f815260200180613858602f91396040019150506040518091039061202d6134cb565b50505b6120386130d7565b6001600160a01b03166342a28e21600b612050613536565b6040516001600160e01b031960e084901b16815260048101919091526024016000604051808303818680612082613591565b158015612097576000806120946134cb565b50505b505a6120a1613716565b50505050501580156113b7573d6000803e3d60006120bd6134cb565b5050505050505050565b60006000198160056120d7613536565b6001600160a01b036101009290920a90041663dd62ed3e86600060046120fb613536565b906101000a90046001600160a01b03166040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381868061214c613591565b1580156121615760008061215e6134cb565b50505b505a61216b613716565b505050505015801561218a573d6000803e3d60006121876134cb565b50505b505050506040513d60208110156121a9576000806121a66134cb565b50505b81019080805193909314925061238791505057600060056121c8613536565b6001600160a01b036101009290920a90041663da46098c85600060046121ec613536565b906101000a90046001600160a01b03166122f686600560009061220d613536565b6001600160a01b036101009290920a90041663dd62ed3e8b60006004612231613536565b906101000a90046001600160a01b03166040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303818680612282613591565b158015612297576000806122946134cb565b50505b505a6122a1613716565b50505050501580156122c0573d6000803e3d60006122bd6134cb565b50505b505050506040513d60208110156122df576000806122dc6134cb565b50505b8101908080519392505063ffffffff613066169050565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152919092166024820152604481019190915260640160006040518083038160008780612343613591565b158015612358576000806123556134cb565b50505b505a6123626135dd565b505050505050158015612382573d6000803e3d600061237f6134cb565b50505b505050505b6109b8848484612c4b565b60006123a766119959541bdbdb60ca1b6130ed565b905090565b60006123a76822bc31b430b733b2b960b91b6130ed565b60006123a76524b9b9bab2b960d11b6130ed565b600060056123e3613536565b6001600160a01b036101009290920a90041663b46310f6836124d8846000600561240b613536565b906101000a90046001600160a01b03166001600160a01b03166370a08231886040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303818680612464613591565b158015612479576000806124766134cb565b50505b505a612483613716565b50505050501580156124a2573d6000803e3d600061249f6134cb565b50505b505050506040513d60208110156124c1576000806124be6134cb565b50505b8101908080519392505063ffffffff6131ef169050565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160006040518083038160008780612519613591565b15801561252e5760008061252b6134cb565b50505b505a6125386135dd565b505050505050158015612558573d6000803e3d60006125556134cb565b50505b5050505061257681600861256a613536565b9063ffffffff6131ef16565b8060086125816136c8565b50505061259060008383613257565b610e7e82826132c4565b60008060056125a7613536565b6001600160a01b036101009290920a90041663b46310f68461262885600060056125cf613536565b906101000a90046001600160a01b03166001600160a01b03166370a08231896040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303818680612282613591565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160006040518083038160008780612669613591565b15801561267e5760008061267b6134cb565b50505b505a6126886135dd565b5050505050501580156126a8573d6000803e3d60006126a56134cb565b50505b505050506126c68260086126ba613536565b9063ffffffff61306616565b8060086126d16136c8565b5050506126e083600084613257565b6126ea8383613445565b50600192915050565b600060026126ff613536565b906101000a90046001600160a01b03166001600160a01b03165a6127216137dc565b6001600160a01b03161415801561276d57506000600361273f613536565b906101000a90046001600160a01b03166001600160a01b03165a6127616137dc565b6001600160a01b031614155b80156127ae57505a61277d6137dc565b6001600160a01b031660006004612792613536565b906101000a90046001600160a01b03166001600160a01b031614155b156127ef575a6127bc6137dc565b60046001816127c9613536565b816001600160a01b0302191690836001600160a01b03160217906127eb6136c8565b5050505b6000806127fa613536565b6001600160a01b036101009290920a90041660006004612818613536565b906101000a90046001600160a01b03166001600160a01b031614611ce05760405162461bcd60e51b815260206004820152601360248201527227bbb732b91037b7363c90333ab731ba34b7b760691b604482015260640160405180910390610e7e6134cb565b6000600261288a613536565b906101000a90046001600160a01b03166001600160a01b031663907dff97826040516001600160a01b0390911660208201526040908101905160208183030381529060405260016040517f546f6b656e5374617465557064617465642861646472657373290000000000008152601a01604051809103902060008060006040518763ffffffff1660e01b815260040180806020018781526020018681526020018560001b81526020018460001b81526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b8381101561297a578082015183820152602001612962565b50505050905090810190601f1680156129a75780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087806129c6613591565b1580156129db576000806129d86134cb565b50505b505a6129e56135dd565b5050505050501580156110dc573d6000803e3d6000611e526134cb565b600080600b612a0f613536565b631cd554d160e21b1415612a4b575081612a4560006004612a2e613536565b906101000a90046001600160a01b03168585612c4b565b50612bb3565b612a536123ac565b6001600160a01b0316634f8633d260006004612a6d613536565b906101000a90046001600160a01b03166004600090612a8a613536565b906101000a90046001600160a01b0316600b612aa4613536565b8773feefeefeefeefeefeefeefeefeefeefeefeefeef600080806040516001600160e01b031960e08b901b1681526001600160a01b039889166004820152968816602488015260448701959095526064860193909352631cd554d160e21b608486015290851660a4850152151560c484015290921660e482015261010481019190915261012401604080518083038160008780612b3f613591565b158015612b5457600080612b516134cb565b50505b505a612b5e6135dd565b505050505050158015612b7e573d6000803e3d6000612b7b6134cb565b50505b505050506040513d6040811015612b9d57600080612b9a6134cb565b50505b8101908080519291906020018051509293505050505b612bbb612392565b6001600160a01b03166322bf55ef826040516001600160e01b031960e084901b168152600481019190915260240160006040518083038160008780612bfe613591565b158015612c1357600080612c106134cb565b50505b505a612c1d6135dd565b505050505050158015612c3d573d6000803e3d6000612c3a6134cb565b50505b506001979650505050505050565b60006001600160a01b03831615801590612ccf57505a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b6040811015612cb657600082820152602001612c9f565b5050506001600160a01b0316836001600160a01b031614155b8015612d08575060006002612ce2613536565b906101000a90046001600160a01b03166001600160a01b0316836001600160a01b031614155b612d615760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f2074686973206164647265737300604482015260640160405180910390612d5e6134cb565b50505b60006005612d6d613536565b6001600160a01b036101009290920a90041663b46310f685612dee8560006005612d95613536565b906101000a90046001600160a01b03166001600160a01b03166370a082318a6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303818680612282613591565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160006040518083038160008780612e2f613591565b158015612e4457600080612e416134cb565b50505b505a612e4e6135dd565b505050505050158015612e6e573d6000803e3d6000612e6b6134cb565b50505b505050506005600090612e7f613536565b6001600160a01b036101009290920a90041663b46310f684612f008560006005612ea7613536565b906101000a90046001600160a01b03166001600160a01b03166370a08231896040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303818680612464613591565b6040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160006040518083038160008780612f41613591565b158015612f5657600080612f536134cb565b50505b505a612f606135dd565b505050505050158015612f80573d6000803e3d6000612f7d6134cb565b50505b50505050612f8f848484613257565b5060019392505050565b60006002612fa5613536565b906101000a90046001600160a01b03166001600160a01b03165a612fc76137dc565b6001600160a01b03161480613010575060006003612fe3613536565b906101000a90046001600160a01b03166001600160a01b03165a6130056137dc565b6001600160a01b0316145b611ce05760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000604482015260640160405180910390610e7e6134cb565b6000828211156130c55760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401604051809103906130c26134cb565b50505b50900390565b6001600160a01b031690565b60006123a76b53797374656d53746174757360a01b5b6000818152600a6020528060408120600090613107613536565b6001600160a01b036101009290920a90041690508015158360405170026b4b9b9b4b7339030b2323932b9b99d1607d1b60208201526031810191909152605101604051602081830303815290604052906131e85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156131a457808201518382015260200161318c565b50505050905090810190601f1680156131d15780820380516001836020036101000a031916815260200191505b5092505050604051809103906131e56134cb565b50505b5092915050565b6000828201838110156114c45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016040518091039061324e6134cb565b50509392505050565b60006002613263613536565b906101000a90046001600160a01b03166001600160a01b031663907dff978260405160200180828152602001915050604051602081830303815290604052600360405180602161392f823960210190506040518091039020611d4f886130cb565b600060026132d0613536565b906101000a90046001600160a01b03166001600160a01b031663907dff97826040516020018082815260200191505060405160208183030381529060405260026040517f49737375656428616464726573732c75696e74323536290000000000000000008152601701604051809103902061334a876130cb565b6000806040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018460001b81526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b838110156133bd5780820151838201526020016133a5565b50505050905090810190601f1680156133ea5780820380516001836020036101000a031916815260200191505b5097505050505050505060006040518083038160008780613409613591565b15801561341e5760008061341b6134cb565b50505b505a6134286135dd565b5050505050501580156113b7573d6000803e3d60006120bd6134cb565b60006002613451613536565b906101000a90046001600160a01b03166001600160a01b031663907dff97826040516020018082815260200191505060405160208183030381529060405260026040517f4275726e656428616464726573732c75696e74323536290000000000000000008152601701604051809103902061334a876130cb565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156135035780860151828201604001526020016134e8565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156110005760008282015260200161357a565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061357a565b6385979f76598160e01b815261360e565b80808311156108ce575090919050565b80808310156108ce575090919050565b836004820152846024820152606060448201528760648201526084810160005b8981101561364657808901518282015260200161362e565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af1505961369b8e3d6135fe565b8d016136a781876135ee565b5b828110156136bc57600081526020016136a8565b50929d50505050505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60008152602061357a565b638540661f598160e01b8152836004820152846024820152606060448201528660648201526084810160005b8881101561375a578088015182820152602001613742565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af150596137af8d3d6135fe565b8c016137bb81876135ee565b5b828110156137d057600081526020016137bc565b50929c50505050505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061357a56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970496e73756666696369656e742062616c616e636520616674657220616e7920736574746c656d656e74206f77696e674f6e6c7920466565506f6f6c2c2045786368616e676572206f722049737375657220636f6e74726163747320616c6c6f7765644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e417070726f76616c28616464726573732c616464726573732c75696e743235362943616e6e6f74207472616e7366657220647572696e672077616974696e6720706572696f645472616e7366657228616464726573732c616464726573732c75696e7432353629",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						},
						{
							"internalType": "string",
							"name": "_tokenName",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "_tokenSymbol",
							"type": "string"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_totalSupply",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Burned",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Issued",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTokenState",
							"type": "address"
						}
					],
					"name": "TokenStateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "DECIMALS",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_ADDRESS",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burn",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currencyKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "integrationProxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_integrationProxy",
							"type": "address"
						}
					],
					"name": "setIntegrationProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						}
					],
					"name": "setTokenState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setTotalSupply",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tokenState",
					"outputs": [
						{
							"internalType": "contract TokenState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferAndSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFromAndSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "transferableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xa2ac97925838e6ab74bf8dc6e16e598d3f1d28380f9faac91ae92d47c622c68c",
				"urls": [
					"bzz-raw://fac81bcf8bfc366ef278876cc9b33f951d3028c24278e48c684c016c5ed4bc48",
					"dweb:/ipfs/QmP4Mji7Gxk3YSgAssoJjiJNNpbCj1iopMTcfT7xEwmWvj"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Synth.sol": "Synth"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Synth.sol": {
						"keccak256": "0xa2ac97925838e6ab74bf8dc6e16e598d3f1d28380f9faac91ae92d47c622c68c",
						"urls": [
							"bzz-raw://fac81bcf8bfc366ef278876cc9b33f951d3028c24278e48c684c016c5ed4bc48",
							"dweb:/ipfs/QmP4Mji7Gxk3YSgAssoJjiJNNpbCj1iopMTcfT7xEwmWvj"
						]
					}
				},
				"version": 1
			}
		},
		"EmptyEtherCollateral": {
			"bytecode": "60806040523480156100195760008061001661001f565b50505b5061008a565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561005757808601518282016040015260200161003c565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b60c1806100986000396000f3fe608060405234801560165760008060136058565b50505b5060043610602f5760003560e01c8063ee5f3f5c14603b575b60008060386058565b50505b60416053565b60405190815260200160405180910390f35b600090565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015608e5780860151828201604001526020016075565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b50505056",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xf86d7d54d355348a6b1da33d2988e653db63603f7d706e4414dcd164faf327a8",
				"urls": [
					"bzz-raw://9b8b648cc0bfbf23516dba7d963925c99cbba63cbeeed9f2bc274e5a628aefe7",
					"dweb:/ipfs/QmdrgpfX714wpm7dfNcWjZxtTaM3UySpj4p3bwhouAhP2b"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EmptyEtherCollateral.sol": "EmptyEtherCollateral"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EmptyEtherCollateral.sol": {
						"keccak256": "0xf86d7d54d355348a6b1da33d2988e653db63603f7d706e4414dcd164faf327a8",
						"urls": [
							"bzz-raw://9b8b648cc0bfbf23516dba7d963925c99cbba63cbeeed9f2bc274e5a628aefe7",
							"dweb:/ipfs/QmdrgpfX714wpm7dfNcWjZxtTaM3UySpj4p3bwhouAhP2b"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixBridgeToBase": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162002dd138038062002dd183398101604081905262000034916200010d565b81818080836001600160a01b0381166200006b5760405162461bcd60e51b81526004016200006290620001c9565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b8918490620001a3565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550506004805460ff191660011790555062000224915050565b805162000107816200020a565b92915050565b600080604083850312156200012157600080fd5b60006200012f8585620000fa565b92505060206200014285828601620000fa565b9150509250929050565b6200015781620001f6565b82525050565b6200015781620001e4565b600062000177601983620001db565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001b382856200014c565b620001c260208301846200015d565b9392505050565b60208082528101620001078162000168565b90815260200190565b60006001600160a01b03821662000107565b6000620001078260006200010782620001e4565b6200021581620001e4565b81146200022157600080fd5b50565b612b9d80620002346000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063614d08f8116100b85780638d6e9a5b1161007c5780638d6e9a5b1461024a5780638da5cb5b1461025d578063a616cdfb14610265578063a6492fe214610278578063bb91f6a31461028b578063f97824fe1461029357610142565b8063614d08f814610215578063698a26b21461021d578063741853601461022557806379ba50971461022d578063899ffef41461023557610142565b80632af64bd31161010a5780632af64bd3146101b55780632e1a7d4d146101bd5780633872dda3146101d05780634873966f146101d857806353a47bb7146101eb5780635aba32ae1461020057610142565b806304f3bcec14610147578063100be6d4146101655780631627540c1461017a578063205c28781461018f57806325aae563146101a2575b600080fd5b61014f6102a6565b60405161015c91906128f5565b60405180910390f35b61016d6102b5565b60405161015c919061281f565b61018d610188366004611ec2565b6102be565b005b61018d61019d366004611f06565b61031c565b61018d6101b0366004612100565b610332565b61016d6103de565b61018d6101cb3660046120c4565b6104f6565b61018d61050b565b61018d6101e6366004612077565b610573565b6101f36107fe565b60405161015c9190612747565b61020861080d565b60405161015c919061282d565b610208610824565b61018d610840565b61018d6108a3565b61018d6109f5565b61023d610a91565b60405161015c919061280e565b61018d610258366004611f06565b610b0d565b6101f3610bc1565b61018d610273366004611f06565b610bd0565b61018d610286366004612077565b610c6e565b610208610d59565b61018d6102a1366004611f40565b610d6b565b6002546001600160a01b031681565b60045460ff1681565b6102c6610e96565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610311908390612747565b60405180910390a150565b610324610ec2565b61032e8282610ee4565b5050565b61033a611105565b6103426111e1565b6001600160a01b03166373941b9683836040518363ffffffff1660e01b815260040161036f9291906128ac565b600060405180830381600087803b15801561038957600080fd5b505af115801561039d573d6000803e3d6000fd5b505050507f64691ff866d6248d6d89e8c1b6c92df685ddf8224377dc6f1e928ef732e55ace82826040516103d29291906128ac565b60405180910390a15050565b600060606103ea610a91565b905060005b81518110156104ec57600082828151811061040657fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a7219061045790859060040161282d565b60206040518083038186803b15801561046f57600080fd5b505afa158015610483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104a79190810190611ee8565b6001600160a01b03161415806104d257506000818152600360205260409020546001600160a01b0316155b156104e357600093505050506104f3565b506001016103ef565b5060019150505b90565b6104fe610ec2565b6105083382610ee4565b50565b610513610e96565b60045460ff1661053e5760405162461bcd60e51b815260040161053590612944565b60405180910390fd5b6004805460ff191690556040517f43e00f2c8f8651a29db34d34fb689573423f8aaae8f9d32e3e871b4c35c6254690600090a1565b61057b610ec2565b6001600160a01b0382166105a15760405162461bcd60e51b815260040161053590612974565b60006105ac846111f6565b116105c95760405162461bcd60e51b8152600401610535906129a4565b6105d16112de565b6001600160a01b03166342a28e21846040518263ffffffff1660e01b81526004016105fc919061282d565b60006040518083038186803b15801561061457600080fd5b505afa158015610628573d6000803e3d6000fd5b5050505061063e6314d95b9d60e21b84836112f8565b600061064861144d565b6001600160a01b031663c81ff8fa8533856040518463ffffffff1660e01b815260040161067793929190612849565b602060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106c99190810190612059565b905080156106e95760405162461bcd60e51b8152600401610535906129d4565b606063a6492fe260e01b85858560405160240161070893929190612871565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610744611461565b6001600160a01b0316633dbb202b61075a61147c565b836107656003611486565b6040518463ffffffff1660e01b815260040161078393929190612799565b600060405180830381600087803b15801561079d57600080fd5b505af11580156107b1573d6000803e3d6000fd5b50505050836001600160a01b0316857f8437572793cb04c0a02524a185d39f9b72a4284bd2e69151b0ca0cf254b2cb0b856040516107ef919061282d565b60405180910390a35050505050565b6001546001600160a01b031681565b600061081f6314d95b9d60e21b6114d6565b905090565b7453796e746865746978427269646765546f4261736560581b90565b610848610e96565b60045460ff161561086b5760405162461bcd60e51b815260040161053590612914565b6004805460ff191660011790556040517f7c88488c18e2ff121a34a4a2a44990557a5b76ab1ceb6bd95ebe7d419c7575f490600090a1565b60606108ad610a91565b905060005b815181101561032e5760008282815181106108c957fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161090b919061273c565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016109379291906128d5565b60206040518083038186803b15801561094f57600080fd5b505afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109879190810190611ee8565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906109e3908490849061283b565b60405180910390a150506001016108b2565b6001546001600160a01b03163314610a1f5760405162461bcd60e51b815260040161053590612924565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610a62926001600160a01b039182169291169061277e565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610a9c6117ad565b60408051600180825281830190925291925060609190602080830190803883390190505090507f626173653a53796e746865746978427269646765546f4f7074696d69736d000081600081518110610af057fe5b602002602001018181525050610b068282611916565b9250505090565b610b15611105565b610b1d6119d2565b6001600160a01b031663666ed4f183836040518363ffffffff1660e01b8152600401610b4a9291906127c8565b600060405180830381600087803b158015610b6457600080fd5b505af1158015610b78573d6000803e3d6000fd5b50505050816001600160a01b03167f162eb12ad2bd8b6ca7960f162208414ab3bc2da9f37953788ffd8cf850c3492b82604051610bb5919061282d565b60405180910390a25050565b6000546001600160a01b031681565b610bd8611105565b610be06119d2565b6001600160a01b031663d8a1f76f826040518263ffffffff1660e01b8152600401610c0b919061282d565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b505050507f3b30e867826d81d6591924b1675cfdcac994f0199eed66250d8c834b3b0ed21682826040516103d29291906127c8565b610c76611105565b610c88632932b1bb60e11b84836112f8565b610c9061144d565b6001600160a01b031663890235d48484846040518463ffffffff1660e01b8152600401610cbf93929190612871565b602060405180830381600087803b158015610cd957600080fd5b505af1158015610ced573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d119190810190612059565b50816001600160a01b0316837f81b100a611d2b249e23d093c64f09470928821e123a7cff2a033eb24c85b797983604051610d4c919061282d565b60405180910390a3505050565b600061081f632932b1bb60e11b6114d6565b610d73611105565b6000610d7d6119e9565b9050610d876119d2565b6001600160a01b031663666ed4f182866040518363ffffffff1660e01b8152600401610db49291906127c8565b600060405180830381600087803b158015610dce57600080fd5b505af1158015610de2573d6000803e3d6000fd5b505060405163cd7b43dd60e01b81526001600160a01b038416925063cd7b43dd9150610e189088908890889088906004016127d6565b600060405180830381600087803b158015610e3257600080fd5b505af1158015610e46573d6000803e3d6000fd5b50505050846001600160a01b03167f7538b9bce825b4555048bb2f80c04ee79b5ffc422f39b959994a27c21c32c8d1858585604051610e8793929190612a04565b60405180910390a25050505050565b6000546001600160a01b03163314610ec05760405162461bcd60e51b815260040161053590612984565b565b60045460ff16610ec05760405162461bcd60e51b815260040161053590612954565b80610eed6119d2565b6001600160a01b0316636ac0bf9c336040518263ffffffff1660e01b8152600401610f189190612755565b60206040518083038186803b158015610f3057600080fd5b505afa158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f6891908101906120e2565b1015610f865760405162461bcd60e51b8152600401610535906129f4565b610f8e6119d2565b6001600160a01b031663edef719a33836040518363ffffffff1660e01b8152600401610fbb929190612763565b600060405180830381600087803b158015610fd557600080fd5b505af1158015610fe9573d6000803e3d6000fd5b50506040516000925060609150637a7bda0d60e11b9061100f90869086906024016127c8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061104b611461565b6001600160a01b0316633dbb202b611061611a05565b8361106c6003611486565b6040518463ffffffff1660e01b815260040161108a93929190612799565b600060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b50505050336001600160a01b03167fbb2689ff876f7ef453cf8865dde5ab10349d222e2e1383c5152fbdb083f02da285856040516110f79291906127c8565b60405180910390a250505050565b600061110f611461565b9050336001600160a01b038216146111395760405162461bcd60e51b8152600401610535906129b4565b61114161147c565b6001600160a01b0316816001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561118357600080fd5b505afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111bb9190810190611ee8565b6001600160a01b0316146105085760405162461bcd60e51b8152600401610535906129c4565b600061081f66119959541bdbdb60ca1b611a2c565b6000611200611a89565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f63726f7373436861696e53796e74685472616e73666572456e61626c65640000856040516020016112539291906126bf565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b81526004016112869291906128ac565b60206040518083038186803b15801561129e57600080fd5b505afa1580156112b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112d691908101906120e2565b90505b919050565b600061081f6b53797374656d53746174757360a01b611a2c565b60006c29bcb73a342a3930b739b332b960991b848460405160200161131f939291906126e5565b6040516020818303038152906040528051906020012090506000611341611a89565b6001600160a01b03166323257c2b611357610824565b846040518363ffffffff1660e01b81526004016113759291906128ac565b60206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113c591908101906120e2565b90506113cf611a89565b6001600160a01b0316631d5b277f6113e5610824565b846113f6858863ffffffff611aa616565b6040518463ffffffff1660e01b8152600401611414939291906128ba565b600060405180830381600087803b15801561142e57600080fd5b505af1158015611442573d6000803e3d6000fd5b505050505050505050565b600061081f6524b9b9bab2b960d11b611a2c565b600061081f6c32bc3a1d26b2b9b9b2b733b2b960991b611a2c565b600061081f611a05565b6000611490611a89565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6114b985611ad4565b6040518363ffffffff1660e01b81526004016112869291906128ac565b600060606114e261144d565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561151a57600080fd5b505afa15801561152e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115569190810190611fa8565b905060606000611564611c4f565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b815260040161158f919061280e565b60006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612012565b9150915080156116055760405162461bcd60e51b815260040161053590612964565b60608351604051908082528060200260200182016040528015611632578160200160208202803883390190505b50905060005b84518110156116ae576c29bcb73a342a3930b739b332b960991b8786838151811061165f57fe5b6020026020010151604051602001611679939291906126e5565b6040516020818303038152906040528051906020012082828151811061169b57fe5b6020908102919091010152600101611638565b5060606116b9611a89565b6001600160a01b031663b67fa7ed6116cf610824565b846040518363ffffffff1660e01b81526004016116ed92919061288c565b60006040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117419190810190611fdd565b905060005b85518110156117a25761179861178b86838151811061176157fe5b602002602001015184848151811061177557fe5b6020026020010151611c6a90919063ffffffff16565b889063ffffffff611aa616565b9650600101611746565b505050505050919050565b6060806117b8611c7f565b60408051600880825261012082019092529192506060919060208201610100803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b816000815181106117ff57fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b8160018151811061182557fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b8160028151811061185057fe5b6020026020010181815250506524b9b9bab2b960d11b8160038151811061187357fe5b60200260200101818152505066119959541bdbdb60ca1b8160048151811061189757fe5b6020026020010181815250506e466c657869626c6553746f7261676560881b816005815181106118c357fe5b6020026020010181815250506c45786368616e6765526174657360981b816006815181106118ed57fe5b6020026020010181815250506b53797374656d53746174757360a01b81600781518110610af057fe5b60608151835101604051908082528060200260200182016040528015611946578160200160208202803883390190505b50905060005b83518110156119885783818151811061196157fe5b602002602001015182828151811061197557fe5b602090810291909101015260010161194c565b5060005b82518110156119cb578281815181106119a157fe5b60200260200101518282865101815181106119b857fe5b602090810291909101015260010161198c565b5092915050565b600061081f680a6f2dce8d0cae8d2f60bb1b611a2c565b600061081f6d2932bbb0b93222b9b1b937bbab1960911b611a2c565b600061081f7f626173653a53796e746865746978427269646765546f4f7074696d69736d00005b60008181526003602090815260408083205490516001600160a01b039091169182151591611a5c9186910161271c565b604051602081830303815290604052906119cb5760405162461bcd60e51b81526004016105359190612903565b600061081f6e466c657869626c6553746f7261676560881b611a2c565b600082820183811015611acb5760405162461bcd60e51b815260040161053590612934565b90505b92915050565b600080826005811115611ae357fe5b1415611b1057507f63726f7373446f6d61696e4465706f7369744761734c696d69740000000000006112d9565b6001826005811115611b1e57fe5b1415611b4b57507f63726f7373446f6d61696e457363726f774761734c696d6974000000000000006112d9565b6002826005811115611b5957fe5b1415611b8657507f63726f7373446f6d61696e5265776172644761734c696d6974000000000000006112d9565b6003826005811115611b9457fe5b1415611bc157507f63726f7373446f6d61696e5769746864726177616c4761734c696d69740000006112d9565b6005826005811115611bcf57fe5b1415611bfc57507f63726f7373446f6d61696e52656c61794761734c696d697400000000000000006112d9565b6004826005811115611c0a57fe5b1415611c3757507f63726f7373446f6d61696e436c6f73654761734c696d697400000000000000006112d9565b60405162461bcd60e51b8152600401610535906129e4565b600061081f6c45786368616e6765526174657360981b611a2c565b6000611acb8383670de0b6b3a7640000611cd0565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611cc157fe5b60200260200101818152505090565b600080600a8304611ce7868663ffffffff611d0e16565b81611cee57fe5b0490506005600a820610611d0057600a015b600a900490505b9392505050565b600082611d1d57506000611ace565b82820282848281611d2a57fe5b0414611acb5760405162461bcd60e51b815260040161053590612994565b8035611ace81612b2b565b8051611ace81612b2b565b600082601f830112611d6f57600080fd5b8151611d82611d7d82612a55565b612a2e565b91508181835260208401935060208101905083856020840282011115611da757600080fd5b60005b83811015611dd35781611dbd8882611eac565b8452506020928301929190910190600101611daa565b5050505092915050565b60008083601f840112611def57600080fd5b50813567ffffffffffffffff811115611e0757600080fd5b602083019150836040820283011115611e1f57600080fd5b9250929050565b600082601f830112611e3757600080fd5b8151611e45611d7d82612a55565b91508181835260208401935060208101905083856020840282011115611e6a57600080fd5b60005b83811015611dd35781611e808882611eac565b8452506020928301929190910190600101611e6d565b8051611ace81612b3f565b8035611ace81612b48565b8051611ace81612b48565b8035611ace81612b51565b600060208284031215611ed457600080fd5b6000611ee08484611d48565b949350505050565b600060208284031215611efa57600080fd5b6000611ee08484611d53565b60008060408385031215611f1957600080fd5b6000611f258585611d48565b9250506020611f3685828601611ea1565b9150509250929050565b60008060008060608587031215611f5657600080fd5b6000611f628787611d48565b9450506020611f7387828801611ea1565b935050604085013567ffffffffffffffff811115611f9057600080fd5b611f9c87828801611ddd565b95989497509550505050565b600060208284031215611fba57600080fd5b815167ffffffffffffffff811115611fd157600080fd5b611ee084828501611d5e565b600060208284031215611fef57600080fd5b815167ffffffffffffffff81111561200657600080fd5b611ee084828501611e26565b6000806040838503121561202557600080fd5b825167ffffffffffffffff81111561203c57600080fd5b61204885828601611e26565b9250506020611f3685828601611e96565b60006020828403121561206b57600080fd5b6000611ee08484611e96565b60008060006060848603121561208c57600080fd5b60006120988686611ea1565b93505060206120a986828701611d48565b92505060406120ba86828701611ea1565b9150509250925092565b6000602082840312156120d657600080fd5b6000611ee08484611ea1565b6000602082840312156120f457600080fd5b6000611ee08484611eac565b6000806040838503121561211357600080fd5b6000611f258585611ea1565b600061212b838361220e565b505060200190565b600061213f8383612674565b505060400190565b61215081612ae3565b82525050565b61215081612ab1565b600061216a82612a7c565b6121748185612a86565b935061217f83612a76565b8060005b838110156121ad578151612197888261211f565b97506121a283612a76565b925050600101612183565b509495945050505050565b60006121c48385612a86565b93506121cf826104f3565b8060005b858110156121ad576121e58284612a8f565b6121ef8882612133565b97506121fa83612a80565b9250506001016121d3565b61215081612abc565b612150816104f3565b612150612223826104f3565b6104f3565b600061223382612a7c565b61223d8185612a86565b935061224d818560208601612af5565b61225681612b21565b9093019392505050565b61215081612aea565b6000612276601883612a86565b7f496e6974696174696f6e206e6f742073757370656e6465640000000000000000815260200192915050565b60006122af603583612a86565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000612306601b83612a86565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061233f601483612a86565b73125b9a5d1a585d1a5bdb881cdd5cdc195b99195960621b815260200192915050565b600061236f6011836112d9565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061239c601683612a86565b75125b9a5d1a585d1a5bdb8819195858dd1a5d985d195960521b815260200192915050565b60006123ce601183612a86565b7014985d195cc8185c99481a5b9d985b1a59607a1b815260200192915050565b60006123fb601b83612a86565b7f43616e6e6f742073656e6420746f207a65726f20616464726573730000000000815260200192915050565b6000612434602f83612a86565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000612485602183612a86565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006124c8602a83612a86565b7f53796e7468206e6f7420656e61626c656420666f722063726f7373206368616981526937103a3930b739b332b960b11b602082015260400192915050565b6000612514601e83612a86565b7f4f6e6c79207468652072656c617965722063616e2063616c6c20746869730000815260200192915050565b600061254d6019836112d9565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000612586602483612a86565b7f4f6e6c79206120636f756e74657270617274206272696467652063616e20696e815263766f6b6560e01b602082015260400192915050565b60006125cc602883612a86565b7f43616e6e6f7420696e6974696174652069662073796e74682072617465206973815267081a5b9d985b1a5960c21b602082015260400192915050565b6000612616601683612a86565b75556e6b6e6f776e20676173206c696d6974207479706560501b815260200192915050565b6000612648601b83612a86565b7f4e6f7420656e6f756768207472616e7366657261626c6520534e580000000000815260200192915050565b604082016126828280612aa2565b61268c84826126b6565b5061269a6020830183612a93565b6126a7602085018261220e565b50505050565b61215081612acd565b61215081612ad6565b60006126cb8285612217565b6020820191506126db8284612217565b5060200192915050565b60006126f18286612217565b6020820191506127018285612217565b6020820191506127118284612217565b506020019392505050565b600061272782612362565b91506127338284612217565b50602001919050565b600061272782612540565b60208101611ace8284612156565b60208101611ace8284612147565b604081016127718285612147565b611d07602083018461220e565b6040810161278c8285612156565b611d076020830184612156565b606081016127a78286612156565b81810360208301526127b98185612228565b9050611ee060408301846126ad565b604081016127718285612156565b606081016127e48287612156565b6127f1602083018661220e565b81810360408301526128048184866121b8565b9695505050505050565b60208082528101611acb818461215f565b60208101611ace8284612205565b60208101611ace828461220e565b6040810161278c828561220e565b60608101612857828661220e565b6128646020830185612147565b611ee0604083018461220e565b6060810161287f828661220e565b6128646020830185612156565b6040810161289a828561220e565b8181036020830152611ee0818461215f565b60408101612771828561220e565b606081016128c8828661220e565b612864602083018561220e565b604081016128e3828561220e565b8181036020830152611ee08184612228565b60208101611ace8284612260565b60208082528101611acb8184612228565b602080825281016112d681612269565b602080825281016112d6816122a2565b602080825281016112d6816122f9565b602080825281016112d681612332565b602080825281016112d68161238f565b602080825281016112d6816123c1565b602080825281016112d6816123ee565b602080825281016112d681612427565b602080825281016112d681612478565b602080825281016112d6816124bb565b602080825281016112d681612507565b602080825281016112d681612579565b602080825281016112d6816125bf565b602080825281016112d681612609565b602080825281016112d68161263b565b60408101612a12828661220e565b8181036020830152612a258184866121b8565b95945050505050565b60405181810167ffffffffffffffff81118282101715612a4d57600080fd5b604052919050565b600067ffffffffffffffff821115612a6c57600080fd5b5060209081020190565b60200190565b5190565b60400190565b90815260200190565b5090565b6000611acb6020840184611ea1565b6000611acb6020840184611eb7565b60006112d682612ac1565b151590565b6001600160a01b031690565b63ffffffff1690565b67ffffffffffffffff1690565b60006112d6825b60006112d682612ab1565b60005b83811015612b10578181015183820152602001612af8565b838111156126a75750506000910152565b601f01601f191690565b612b3481612ab1565b811461050857600080fd5b612b3481612abc565b612b34816104f3565b612b3481612ad656fea365627a7a72315820f2bf16b9091e75361a5e3dadf7290baf59d8ae988954679a538c3f78e5d389126c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "_to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "DepositFinalized",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "snxBackedAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalDebtShares",
							"type": "uint256"
						}
					],
					"name": "FeePeriodCloseFinalized",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "FinalizeSynthTransfer",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowedAmount",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"indexed": false,
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"name": "ImportedVestingEntries",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "InitiateSynthTransfer",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [],
					"name": "InitiationResumed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [],
					"name": "InitiationSuspended",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardDepositFinalized",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "_from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "_to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "WithdrawalInitiated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "finalizeDeposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "escrowedAmount",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"name": "finalizeEscrowMigration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "snxBackedAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalDebtShares",
							"type": "uint256"
						}
					],
					"name": "finalizeFeePeriodClose",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "finalizeRewardDeposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "finalizeSynthTransfer",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "initiateSynthTransfer",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "initiationActive",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeInitiation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "suspendInitiation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthTransferReceived",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthTransferSent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdrawTo",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x53e29e15ff09ded8625947da9d15ff07cd8310ec1abcc81975944a7e55bdf657",
				"urls": [
					"bzz-raw://d72bd4be5b5527962b35bd9ea1571e26ac73d22be7f26be6064f07fd750bbd2b",
					"dweb:/ipfs/QmYxQPu6huYAWHowfquf7F2WtxqUMKvjJYjFAkhRsp2p8c"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixBridgeToBase.sol": "SynthetixBridgeToBase"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixBridgeToBase.sol": {
						"keccak256": "0x53e29e15ff09ded8625947da9d15ff07cd8310ec1abcc81975944a7e55bdf657",
						"urls": [
							"bzz-raw://d72bd4be5b5527962b35bd9ea1571e26ac73d22be7f26be6064f07fd750bbd2b",
							"dweb:/ipfs/QmYxQPu6huYAWHowfquf7F2WtxqUMKvjJYjFAkhRsp2p8c"
						]
					}
				},
				"version": 1
			}
		},
		"EmptyCollateralManager": {
			"bytecode": "60806040523480156100195760008061001661001f565b50505b5061008a565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561005757808601518282016040015260200161003c565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b610773806100996000396000f3fe608060405234801561001957600080610016610708565b50505b50600436106101975760003560e01c8063b4d6cb40116100e7578063e31f27c1116100a0578063eb94bbde1161007a578063eb94bbde14610317578063ee81f79014610669578063f53037b61461068f578063ffa749cd1461053757610197565b8063e31f27c114610317578063e32261fe1461064d578063e50a31b31461031757610197565b8063b4d6cb40146104ef578063ba1c5e80146101f6578063bbb601cd14610537578063c88b412e146105c9578063ca969f2314610537578063d2f004751461064d57610197565b806372e18b6a11610154578063ad79a8581161012e578063ad79a858146101f6578063af07aa9d1461047a578063b38988f7146104a6578063b3b46732146104d557610197565b806372e18b6a146103435780638471db131461045457806393a72fbe1461034357610197565b806303f048b0146101a55780631e33fc6b146101f657806323d60e2e1461021857806324620639146103175780635246f2b914610317578063710388d114610218575b6000806101a2610708565b50505b6101cb600480360360208110156101c4576000806101c1610708565b50505b50356106b5565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b6101fe6106c1565b604051918252151560208201526040908101905180910390f35b6103156004803603604081101561023757600080610234610708565b50505b810190602081018135600160201b81111561025a57600080610257610708565b50505b82018360208201111561027557600080610272610708565b50505b803590602001918460208302840111600160201b8311171561029f5760008061029c610708565b50505b919390929091602081019035600160201b8111156102c5576000806102c2610708565b50505b8201836020820111156102e0576000806102dd610708565b50505b803590602001918460208302840111600160201b8311171561030a57600080610307610708565b50505b5090925090506106c8565b005b6103156004803603604081101561033657600080610333610708565b50505b50803590602001356106ce565b610440600480360360408110156103625760008061035f610708565b50505b810190602081018135600160201b81111561038557600080610382610708565b50505b8201836020820111156103a05760008061039d610708565b50505b803590602001918460208302840111600160201b831117156103ca576000806103c7610708565b50505b919390929091602081019035600160201b8111156103f0576000806103ed610708565b50505b82018360208201111561040b57600080610408610708565b50505b803590602001918460208302840111600160201b8311171561043557600080610432610708565b50505b5090925090506106d2565b604051901515815260200160405180910390f35b6104406004803603602081101561047357600080610470610708565b50505b50356106dc565b6101cb6004803603604081101561049957600080610496610708565b50505b50803590602001356106e2565b610440600480360360208110156104c5576000806104c2610708565b50505b50356001600160a01b03166106dc565b6104dd6106ef565b60405190815260200160405180910390f35b61051b6004803603604081101561050e5760008061050b610708565b50505b50803590602001356106f4565b6040519115158252151560208201526040908101905180910390f35b6103156004803603602081101561055657600080610553610708565b50505b810190602081018135600160201b81111561057957600080610576610708565b50505b82018360208201111561059457600080610591610708565b50505b803590602001918460208302840111600160201b831117156105be576000806105bb610708565b50505b5090925090506106ce565b610315600480360360408110156105e8576000806105e5610708565b50505b810190602081018135600160201b81111561060b57600080610608610708565b50505b82018360208201111561062657600080610623610708565b50505b803590602001918460408302840111600160201b8311171561029f5760008061029c610708565b6104dd6004803603602081101561047357600080610470610708565b6101fe6004803603602081101561068857600080610685610708565b50505b50356106fd565b610315600480360360208110156106ae576000806106ab610708565b50505b5035610705565b60008080809193509193565b6000809091565b50505050565b5050565b6000949350505050565b50600090565b5060009182915081908190565b600090565b50600091829150565b600080915091565b50565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015610740578086015182820160400152602001610725565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b50505056",
			"abi": [
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"name": "addCollaterals",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[2][]",
							"name": "",
							"type": "bytes32[2][]"
						},
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"name": "addShortableSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"name": "areShortableSynthsSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"name": "areSynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "decrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "decrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "exceedsDebtLimit",
					"outputs": [
						{
							"internalType": "bool",
							"name": "canIssue",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getBorrowRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "borrowRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "getNewLoanId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "getRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "getShortRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "shortRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "rateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "getShortRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "hasCollateral",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "incrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "incrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "isSynthManaged",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "long",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"name": "removeCollaterals",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"name": "removeShortableSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"name": "removeSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "short",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLong",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "susdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalShort",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "susdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "updateBorrowRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "updateShortRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x810162b0e2db199a2e7260e728b3f9e923d5bca0d96abfc2e51080b3d38e3c92",
				"urls": [
					"bzz-raw://a6c1d42e6eb6b90bb465e198c5f606201d5d89e1b4fb1a67fe67256560a4f96d",
					"dweb:/ipfs/QmPUpieJ7YZ7ykACHZ5h5fNktq4zJ6ksAmVZbTxU4vy2mz"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EmptyCollateralManager.sol": "EmptyCollateralManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EmptyCollateralManager.sol": {
						"keccak256": "0x810162b0e2db199a2e7260e728b3f9e923d5bca0d96abfc2e51080b3d38e3c92",
						"urls": [
							"bzz-raw://a6c1d42e6eb6b90bb465e198c5f606201d5d89e1b4fb1a67fe67256560a4f96d",
							"dweb:/ipfs/QmPUpieJ7YZ7ykACHZ5h5fNktq4zJ6ksAmVZbTxU4vy2mz"
						]
					}
				},
				"version": 1
			}
		},
		"SynthUtil": {
			"bytecode": "608060405234801561001057600080fd5b50600436106100625760003560e01c80630120be331461006757806327fe55a6146100a5578063492dbcdd14610146578063a827bf481461022c578063d18ab37614610252578063eade6d2d14610276575b600080fd5b6100936004803603604081101561007d57600080fd5b506001600160a01b0381351690602001356102ce565b60408051918252519081900360200190f35b6100ad61054d565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100f15781810151838201526020016100d9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610130578181015183820152602001610118565b5050505090500194505050505060405180910390f35b61014e6107b9565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561019657818101518382015260200161017e565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156101d55781810151838201526020016101bd565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156102145781810151838201526020016101fc565b50505050905001965050505050505060405180910390f35b61014e6004803603602081101561024257600080fd5b50356001600160a01b0316610b32565b61025a610ec9565b604080516001600160a01b039092168252519081900360200190f35b61027e610ed8565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102ba5781810151838201526020016102a2565b505050509050019250505060405180910390f35b6000806102d9611182565b905060006102e561123f565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b15801561032257600080fd5b505afa158015610336573d6000803e3d6000fd5b505050506040513d602081101561034c57600080fd5b5051905060005b81811015610543576000846001600160a01b031663835e119c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156103a157600080fd5b505afa1580156103b5573d6000803e3d6000fd5b505050506040513d60208110156103cb57600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b038087169263654a60ac929185169163dbd06c85916004808301926020929190829003018186803b15801561041b57600080fd5b505afa15801561042f573d6000803e3d6000fd5b505050506040513d602081101561044557600080fd5b5051604080516370a0823160e01b81526001600160a01b038d811660048301529151918616916370a0823191602480820192602092909190829003018186803b15801561049157600080fd5b505afa1580156104a5573d6000803e3d6000fd5b505050506040513d60208110156104bb57600080fd5b5051604080516001600160e01b031960e086901b16815260048101939093526024830191909152604482018b9052516064808301926020929190829003018186803b15801561050957600080fd5b505afa15801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b5051959095019450600101610353565b5050505092915050565b606080606061055a611182565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561059257600080fd5b505afa1580156105a6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156105cf57600080fd5b81019080805160405193929190846401000000008211156105ef57600080fd5b90830190602082018581111561060457600080fd5b825186602082028301116401000000008211171561062157600080fd5b82525081516020918201928201910280838360005b8381101561064e578181015183820152602001610636565b5050505090500160405250505090508061066661123f565b6001600160a01b031663c2c8a676836040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b838110156106c45781810151838201526020016106ac565b505050509050019250505060006040518083038186803b1580156106e757600080fd5b505afa1580156106fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561072457600080fd5b810190808051604051939291908464010000000082111561074457600080fd5b90830190602082018581111561075957600080fd5b825186602082028301116401000000008211171561077657600080fd5b82525081516020918201928201910280838360005b838110156107a357818101518382015260200161078b565b5050505090500160405250505092509250509091565b606080606060006107c8611182565b905060006107d461123f565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b15801561081157600080fd5b505afa158015610825573d6000803e3d6000fd5b505050506040513d602081101561083b57600080fd5b505160408051828152602080840282010190915290915060609082801561086c578160200160208202803883390190505b50905060608260405190808252806020026020018201604052801561089b578160200160208202803883390190505b5090506060836040519080825280602002602001820160405280156108ca578160200160208202803883390190505b50905060005b84811015610b22576000876001600160a01b031663835e119c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561091e57600080fd5b505afa158015610932573d6000803e3d6000fd5b505050506040513d602081101561094857600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b0383169163dbd06c8591600480820192602092909190829003018186803b15801561098e57600080fd5b505afa1580156109a2573d6000803e3d6000fd5b505050506040513d60208110156109b857600080fd5b505185518690849081106109c857fe5b602002602001018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a0d57600080fd5b505afa158015610a21573d6000803e3d6000fd5b505050506040513d6020811015610a3757600080fd5b50518451859084908110610a4757fe5b602002602001018181525050866001600160a01b031663654a60ac868481518110610a6e57fe5b6020026020010151868581518110610a8257fe5b6020026020010151631cd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610ad457600080fd5b505afa158015610ae8573d6000803e3d6000fd5b505050506040513d6020811015610afe57600080fd5b50518351849084908110610b0e57fe5b6020908102919091010152506001016108d0565b5091975095509350505050909192565b60608060606000610b41611182565b90506000610b4d61123f565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8a57600080fd5b505afa158015610b9e573d6000803e3d6000fd5b505050506040513d6020811015610bb457600080fd5b5051604080518281526020808402820101909152909150606090828015610be5578160200160208202803883390190505b509050606082604051908082528060200260200182016040528015610c14578160200160208202803883390190505b509050606083604051908082528060200260200182016040528015610c43578160200160208202803883390190505b50905060005b84811015610eb8576000876001600160a01b031663835e119c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c9757600080fd5b505afa158015610cab573d6000803e3d6000fd5b505050506040513d6020811015610cc157600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b0383169163dbd06c8591600480820192602092909190829003018186803b158015610d0757600080fd5b505afa158015610d1b573d6000803e3d6000fd5b505050506040513d6020811015610d3157600080fd5b50518551869084908110610d4157fe5b602002602001018181525050806001600160a01b03166370a082318d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610da357600080fd5b505afa158015610db7573d6000803e3d6000fd5b505050506040513d6020811015610dcd57600080fd5b50518451859084908110610ddd57fe5b602002602001018181525050866001600160a01b031663654a60ac868481518110610e0457fe5b6020026020010151868581518110610e1857fe5b6020026020010151631cd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610e6a57600080fd5b505afa158015610e7e573d6000803e3d6000fd5b505050506040513d6020811015610e9457600080fd5b50518351849084908110610ea457fe5b602090810291909101015250600101610c49565b509199909850909650945050505050565b6000546001600160a01b031681565b60606000610ee4611182565b90506000610ef061123f565b90506000826001600160a01b031663dbf633406040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2d57600080fd5b505afa158015610f41573d6000803e3d6000fd5b505050506040513d6020811015610f5757600080fd5b5051604080518281526020808402820101909152909150606090828015610f88578160200160208202803883390190505b50905060005b82811015611179576000856001600160a01b031663835e119c836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610fdc57600080fd5b505afa158015610ff0573d6000803e3d6000fd5b505050506040513d602081101561100657600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b038088169263af3aea86929185169163dbd06c85916004808301926020929190829003018186803b15801561105657600080fd5b505afa15801561106a573d6000803e3d6000fd5b505050506040513d602081101561108057600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b1580156110bf57600080fd5b505afa1580156110d3573d6000803e3d6000fd5b505050506040513d60208110156110e957600080fd5b50511561117057806001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561112957600080fd5b505afa15801561113d573d6000803e3d6000fd5b505050506040513d602081101561115357600080fd5b5051835184908490811061116357fe5b6020026020010181815250505b50600101610f8e565b50935050505090565b600080546040805163dacb2d0160e01b8152680a6f2dce8d0cae8d2f60bb1b600482015260248101829052601960448201527f4d697373696e672053796e746865746978206164647265737300000000000000606482015290516001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561120e57600080fd5b505afa158015611222573d6000803e3d6000fd5b505050506040513d602081101561123857600080fd5b5051905090565b600080546040805163dacb2d0160e01b81526c45786368616e6765526174657360981b600482015260248101829052601d60448201527f4d697373696e672045786368616e676552617465732061646472657373000000606482015290516001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561120e57600080fdfea265627a7a72315820b37a82cf60774acbb9e1ae6c8e3d3b4094823cdecf2903b9fc59aab3a44ae52d64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "addressResolverProxy",
					"outputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "frozenSynths",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "synthsBalances",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthsRates",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "synthsTotalSupplies",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalSynthsInKey",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "total",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x2a71bb6e35a71264558643264bd555abef0b3ba0f4e3db8af7403cffb6b04db8",
				"urls": [
					"bzz-raw://7917d44da10b11bc4ec627a36776fccfd60b6a8886ee15aedd908e40175ce9f2",
					"dweb:/ipfs/Qme9AgwjKmPYUqHvamNDcg2FzX578cd8kAY2cbJipSWdh2"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthUtil.sol": "SynthUtil"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthUtil.sol": {
						"keccak256": "0x2a71bb6e35a71264558643264bd555abef0b3ba0f4e3db8af7403cffb6b04db8",
						"urls": [
							"bzz-raw://7917d44da10b11bc4ec627a36776fccfd60b6a8886ee15aedd908e40175ce9f2",
							"dweb:/ipfs/Qme9AgwjKmPYUqHvamNDcg2FzX578cd8kAY2cbJipSWdh2"
						]
					}
				},
				"version": 1
			}
		},
		"DappMaintenance": {
			"bytecode": "608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b1461010b57806393c2212514610113578063b33a5a001461012f578063c65a0ea21461014e578063ee02f27c1461015657610093565b80631627540c146100985780631d008652146100c057806353a47bb7146100df57806379ba509714610103575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610175565b005b6100be600480360360208110156100d657600080fd5b503515156101d1565b6100e7610270565b604080516001600160a01b039092168252519081900360200190f35b6100be61027f565b6100e761033b565b61011b61034a565b604080519115158252519081900360200190f35b6100be6004803603602081101561014557600080fd5b5035151561035a565b61011b6103c0565b6100be6004803603602081101561016c57600080fd5b503515156103d0565b61017d610436565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6101d9610436565b6001805460ff60a01b1916600160a01b8315159081029190911760ff60a81b1916600160a81b82021790915560408051918252517f628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea32916020908290030190a160408051821515815290517f5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c69181900360200190a150565b6001546001600160a01b031681565b6001546001600160a01b031633146102c85760405162461bcd60e51b81526004018080602001828103825260358152602001806104826035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b600154600160a81b900460ff1681565b610362610436565b60018054821515600160a01b90810260ff60a01b199092169190911791829055604080519190920460ff161515815290517f628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea329181900360200190a150565b600154600160a01b900460ff1681565b6103d8610436565b60018054821515600160a81b90810260ff60a81b199092169190911791829055604080519190920460ff161515815290517f5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c69181900360200190a150565b6000546001600160a01b0316331461047f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806104b7602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158203b0fab31333bb4f3391e061d547684f9e5bf05f37b9111af0ada1b20c022e41964736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "SXMaintenance",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "StakingMaintenance",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isPausedSX",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isPausedStaking",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeSX",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeStaking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x14104018174f0669b32875819ec6c12e9461ced399df08b01b8d669124294baa",
				"urls": [
					"bzz-raw://4f6be6a6a6e7a9a6df3af0a7b895c081450d6d9cc19318d6c0a1058decb51a98",
					"dweb:/ipfs/QmaLhN4RoQWZkPKFAGXXihbkznDu1nsfhLia5jA1AJwYDG"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DappMaintenance.sol": "DappMaintenance"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DappMaintenance.sol": {
						"keccak256": "0x14104018174f0669b32875819ec6c12e9461ced399df08b01b8d669124294baa",
						"urls": [
							"bzz-raw://4f6be6a6a6e7a9a6df3af0a7b895c081450d6d9cc19318d6c0a1058decb51a98",
							"dweb:/ipfs/QmaLhN4RoQWZkPKFAGXXihbkznDu1nsfhLia5jA1AJwYDG"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixStateWithLimitedSetup": {
			"bytecode": "60806040523480156200001c576000806200001962000264565b50505b5060405162001c8638038062001c86833981810160405260408110156200004d576000806200004a62000264565b50505b8101908080519291906020018051925062093a8091508390508280826001600160a01b038116620000cf5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390620000cc62000264565b50505b806000600181620000df620002d1565b816001600160a01b0302191690836001600160a01b03160217906200010362000333565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a150600080806200015c620002d1565b906101000a90046001600160a01b03166001600160a01b03161415620001c75760405162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015260640160405180910390620001c462000264565b50505b806002600181620001d7620002d1565b816001600160a01b0302191690836001600160a01b0316021790620001fb62000333565b5050507f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03816040516001600160a01b03909116815260200160405180910390a1505050805a6200024a62000382565b018060066200025862000333565b505050505050620003c9565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200029e57808601518282016040015260200162000281565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156200032e5760008282015260200162000315565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60008152602062000315565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602062000315565b6118ad80620003d96000396000f3fe60806040523480156100195760008061001661142d565b50505b506004361061014b5760003560e01c80638da5cb5b116100c1578063aefc4ccb11610085578063aefc4ccb1461041f578063b16c09f014610427578063b992812e14610456578063ba08f29914610499578063cd92eba9146104a1578063dd9da1da146104a95761014b565b80638da5cb5b146102d15780639371bede146102d95780639e49e976146102e1578063a764eb45146103e2578063ae2e933b146104175761014b565b80634631771211610113578063463177121461021f57806346ba2d901461022757806352f445ca1461022f57806353a47bb71461025e57806379ba5097146102825780638b3f80881461028a5761014b565b806308d95cd5146101595780631627540c1461019157806319db2228146101c25780631bfba595146101f15780633d31e97b146101f9575b60008061015661142d565b50505b61017f600480360360208110156101785760008061017561142d565b50505b50356104b1565b60405190815260200160405180910390f35b6101c0600480360360208110156101b0576000806101ad61142d565b50505b50356001600160a01b03166104dc565b005b6101c0600480360360208110156101e1576000806101de61142d565b50505b50356001600160a01b0316610556565b6101c06105d1565b6101c0600480360360208110156102185760008061021561142d565b50505b5035610678565b61017f610733565b61017f61076f565b6101c06004803603602081101561024e5760008061024b61142d565b50505b50356001600160a01b0316610779565b6102666107f4565b6040516001600160a01b03909116815260200160405180910390f35b6101c0610813565b6102b9600480360360208110156102a9576000806102a661142d565b50505b50356001600160a01b0316610991565b60405191825260208201526040908101905180910390f35b6102666109bc565b61017f6109c7565b6101c060048036036040811015610300576000806102fd61142d565b50505b8101906020810181356401000000008111156103245760008061032161142d565b50505b82018360208201111561033f5760008061033c61142d565b50505b8035906020019184602083028401116401000000008311171561036a5760008061036761142d565b50505b9193909290916020810190356401000000008111156103915760008061038e61142d565b50505b8201836020820111156103ac576000806103a961142d565b50505b803590602001918460208302840111640100000000831117156103d7576000806103d461142d565b50505b5090925090506109d1565b6101c060048036036040811015610401576000806103fe61142d565b50505b506001600160a01b038135169060200135610ad9565b610266610baf565b610266610bbb565b6101c0600480360360208110156104465760008061044361142d565b50505b50356001600160a01b0316610bc7565b610485600480360360208110156104755760008061047261142d565b50505b50356001600160a01b0316610c78565b604051901515815260200160405180910390f35b6101c0610ca0565b61017f610d37565b61017f610d4a565b600581816104bd611498565b81106104c557fe5b9060005260206000200190506104d9611498565b81565b6104e4610d54565b80600180806104f1611498565b816001600160a01b0302191690836001600160a01b03160217906105136114f3565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b61055e610d54565b80600760018161056c611498565b816001600160a01b0302191690836001600160a01b031602179061058e6114f3565b5050507f6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb6295816040516001600160a01b03909116815260200160405180910390a150565b600060026105dd611498565b906101000a90046001600160a01b03166001600160a01b03165a6105ff611541565b6001600160a01b03161461064d5760405162461bcd60e51b8152600401808060200182810382526034815260200180611850603491396040019150506040518091039061064a61142d565b50505b6106686001600461065c611498565b9063ffffffff610dd116565b8060046106736114f3565b505050565b60006002610684611498565b906101000a90046001600160a01b03166001600160a01b03165a6106a6611541565b6001600160a01b0316146106f45760405162461bcd60e51b815260040180806020018281038252603481526020018061185060349139604001915050604051809103906106f161142d565b50505b80600580600181610703611498565b01808261070e6114f3565b505060009283529160001983019150602090209192910161072d6114f3565b50505050565b600060056001600580610744611498565b90500381610750611498565b811061075857fe5b9060005260206000200161076a611498565b905090565b60066104d9611498565b610781610d54565b80600260018161078f611498565b816001600160a01b0302191690836001600160a01b03160217906107b16114f3565b5050507f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03816040516001600160a01b03909116815260200160405180910390a150565b60006001610800611498565b906101000a90046001600160a01b031681565b6000600161081f611498565b906101000a90046001600160a01b03166001600160a01b03165a610841611541565b6001600160a01b03161461088f5760405162461bcd60e51b81526004018080602001828103825260358152602001806117cb603591396040019150506040518091039061088c61142d565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000806108bb611498565b906101000a90046001600160a01b031660016000906108d8611498565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a160006001610917611498565b906101000a90046001600160a01b03166000806101000a81610937611498565b816001600160a01b0302191690836001600160a01b03160217906109596114f3565b5050506000600160006101000a8161096f611498565b816001600160a01b0302191690836001600160a01b03160217906106736114f3565b60036020528060005260406000209050806109aa611498565b90806001016109b7611498565b905082565b600080610800611498565b60046104d9611498565b6109d9610d54565b60066109e3611498565b5a6109ec611587565b10610a315760405162461bcd60e51b81526004018080602001828103825260298152602001806118846029913960400191505060405180910390610a2e61142d565b50505b828114610a7f5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015260640160405180910390610a7c61142d565b50505b60005b60ff8116841115610ad257610aca85858360ff16818110610a9f57fe5b905060200201356001600160a01b031684848460ff16818110610abe57fe5b90506020020135610e3c565b600101610a82565b5050505050565b60006002610ae5611498565b906101000a90046001600160a01b03166001600160a01b03165a610b07611541565b6001600160a01b031614610b555760405162461bcd60e51b81526004018080602001828103825260348152602001806118506034913960400191505060405180910390610b5261142d565b50505b6001600160a01b038216600090815260036020528190604090208190610b796114f3565b505050600580610b87611498565b6001600160a01b03841660009081526003602052909150604090206001018190610ad26114f3565b60006007610800611498565b60006002610800611498565b60006002610bd3611498565b906101000a90046001600160a01b03166001600160a01b03165a610bf5611541565b6001600160a01b031614610c435760405162461bcd60e51b81526004018080602001828103825260348152602001806118506034913960400191505060405180910390610c4061142d565b50505b6001600160a01b038116600090815260036020526040902060008082610c676114f3565b505060018201600090610ad26114f3565b6001600160a01b038116600090815260036020528060408120610c99611498565b1192915050565b60006002610cac611498565b906101000a90046001600160a01b03166001600160a01b03165a610cce611541565b6001600160a01b031614610d1c5760405162461bcd60e51b81526004018080602001828103825260348152602001806118506034913960400191505060405180910390610d1961142d565b50505b61066860016004610d2b611498565b9063ffffffff61125616565b6000600580610d44611498565b91505090565b60086104d9611498565b600080610d5f611498565b906101000a90046001600160a01b03166001600160a01b03165a610d81611541565b6001600160a01b031614610dcf5760405162461bcd60e51b815260040180806020018281038252602f815260200180611800602f913960400191505060405180910390610dcc61142d565b50505b565b600082820183811015610e335760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390610e3061142d565b50505b90505b92915050565b60006008610e48611498565b90506000610e5c838363ffffffff610dd116565b905080806008610e6a6114f3565b5060009150610e819050848363ffffffff6112bb16565b90506000610f3c8273__$6384d6e7209c632280b8ae53e4b0cb3fad$__63d5e5e6e66040518163ffffffff1660e01b81526004016020604051808303818680610ec86115cd565b158015610edd57600080610eda61142d565b50505b505a610ee7611619565b5050505050158015610f06573d6000803e3d6000610f0361142d565b50505b505050506040513d6020811015610f2557600080610f2261142d565b50505b8101908080519392505063ffffffff611256169050565b6001600160a01b0387166000908152600360205290915060409020610f5f611498565b610f8157610f726001600461065c611498565b806004610f7d6114f3565b5050505b6001600160a01b038616600090815260036020528290604090208190610fa56114f3565b505050600580610fb3611498565b6001600160a01b03881660009081526003602052909150604090206001018190610fdb6114f3565b5050506000600580610feb611498565b9050111561107957600561103a8260056001600580611008611498565b90500381611014611498565b811061101c57fe5b9060005260206000200161102e611498565b9063ffffffff6112d416565b9080600181611047611498565b0180826110526114f3565b50506000928352916000198301915060209020919291016110716114f3565b50505061115e565b600573__$6384d6e7209c632280b8ae53e4b0cb3fad$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186806110ba6115cd565b1580156110cf576000806110cc61142d565b50505b505a6110d9611619565b50505050501580156110f8573d6000803e3d60006110f561142d565b50505b505050506040513d60208110156111175760008061111461142d565b50505b8101908080519392508291506001905081611130611498565b01808261113b6114f3565b505060009283529160001983019150602090209192910161115a6114f3565b5050505b6000600761116a611498565b6001600160a01b03888116600090815260036020526101009390930a909104169063866452749088906040902061119f611498565b6001600160a01b038a1660009081526003602052604090206001016111c2611498565b6040516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915260448201526064016000604051808303816000878061120b6115cd565b1580156112205760008061121d61142d565b50505b505a61122a611704565b50505050505015801561124a573d6000803e3d600061124761142d565b50505b50505050505050505050565b6000828211156112b55760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401604051809103906112b261142d565b50505b50900390565b6000610e3383836b033b2e3c9fd0803ce80000006112ed565b6000610e3383836b033b2e3c9fd0803ce8000000611331565b6000806113138461130787600a870263ffffffff61135c16565b9063ffffffff6113bb16565b90506005600a825b061061132557600a015b600a9004949350505050565b600080600a8304611348868663ffffffff61135c16565b8161134f57fe5b0490506005600a8261131b565b60008261136b57506000610e36565b8282028284828161137857fe5b0414610e335760405162461bcd60e51b815260040180806020018281038252602181526020018061182f6021913960400191505060405180910390610e3061142d565b60008082116114195760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f00000000000060448201526064016040518091039061141661142d565b50505b600082848161142457fe5b04949350505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561146557808601518282016040015260200161144a565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015610673576000828201526020016114dc565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206114dc565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206114dc565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206114dc565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b805160008252935060206114dc565b63ffe73914598160e01b815261164a565b8080831115610e36575090919050565b8080831015610e36575090919050565b836004820152846024820152606060448201528660648201526084810160005b8881101561168257808801518282015260200161166a565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af150596116d78d3d61163a565b8c016116e3818761162a565b5b828110156116f857600081526020016116e4565b50929c50505050505050565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b89811015611748578089015182820152602001611730565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af1505961179d8e3d61163a565b8d016117a9818761162a565b5b828110156117be57600081526020016117aa565b50929d5050505050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newFeePool",
							"type": "address"
						}
					],
					"name": "FeePoolUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "appendDebtLedgerValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "clearIssuanceData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "debtLedger",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtLedgerLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "decrementTotalIssuerCount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePool",
					"outputs": [
						{
							"internalType": "contract IFeePool",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "hasIssued",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "sUSDAmounts",
							"type": "uint256[]"
						}
					],
					"name": "importIssuerData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "importedDebtAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "incrementTotalIssuerCount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "issuanceData",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "initialDebtOwnership",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastDebtLedgerEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "initialDebtOwnership",
							"type": "uint256"
						}
					],
					"name": "setCurrentIssuanceData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"name": "setFeePool",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuerCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x78c1c45fb2ed4fa903aa1af0ef037919202ce92f2fd1c55c0168cda7fba5127f",
				"urls": [
					"bzz-raw://77af971180d9d92c10a1704c8183048e1ac1530cbac7dde7a26cac5309115488",
					"dweb:/ipfs/QmYYPN9onikgDfTdSaStvdfVNaisJTBQWwb8zuiNP92EsG"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixStateWithLimitedSetup.sol": "SynthetixStateWithLimitedSetup"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixStateWithLimitedSetup.sol": {
						"keccak256": "0x78c1c45fb2ed4fa903aa1af0ef037919202ce92f2fd1c55c0168cda7fba5127f",
						"urls": [
							"bzz-raw://77af971180d9d92c10a1704c8183048e1ac1530cbac7dde7a26cac5309115488",
							"dweb:/ipfs/QmYYPN9onikgDfTdSaStvdfVNaisJTBQWwb8zuiNP92EsG"
						]
					}
				},
				"version": 1
			}
		},
		"DebtCache": {
			"bytecode": "60806040526008805461ff001960ff1990911660011716905534801561002457600080fd5b506040516134413803806134418339818101604052604081101561004757600080fd5b50805160209091015181818080836001600160a01b0381166100b0576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b031990921691909117905550505050506133038061013e6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063741853601161010f578063af5355d8116100a2578063d0fffafd11610071578063d0fffafd14610707578063d685743a1461070f578063e3476cd414610732578063fc5247731461073a576101e5565b8063af5355d8146105f5578063b13cd785146105fd578063b7224ec71461066b578063cda218c714610699576101e5565b80638da5cb5b116100de5780638da5cb5b146105a55780638dd5bfbc146105ad5780639e3b92ca146105ca578063a5f27edb146105ed576101e5565b80637418536014610585578063759076e51461058d57806379ba509714610595578063899ffef41461059d576101e5565b80632992dba21161018757806342c7b8191161015657806342c7b8191461047d57806353a47bb71461049a578063614d08f8146104a25780636bf7c435146104aa576101e5565b80632992dba2146104085780632af64bd314610429578063392e53cd146104455780633a900a2e1461044d576101e5565b806307619a5f116101c357806307619a5f146102495780630fb38465146103075780631627540c1461032457806317b38db41461034a576101e5565b806304bd11e5146101ea57806304f3bcec1461020b578063053932621461022f575b600080fd5b6102096004803603602081101561020057600080fd5b50351515610742565b005b610213610756565b604080516001600160a01b039092168252519081900360200190f35b610237610765565b60408051918252519081900360200190f35b6102b76004803603602081101561025f57600080fd5b810190602081018135600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b50909250905061076c565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102f35781810151838201526020016102db565b505050509050019250505060405180910390f35b6102376004803603602081101561031d57600080fd5b50356107b3565b6102096004803603602081101561033a57600080fd5b50356001600160a01b03166107c5565b6102096004803603604081101561036057600080fd5b810190602081018135600160201b81111561037a57600080fd5b82018360208201111561038c57600080fd5b803590602001918460208302840111600160201b831117156103ad57600080fd5b919390929091602081019035600160201b8111156103ca57600080fd5b8201836020820111156103dc57600080fd5b803590602001918460208302840111600160201b831117156103fd57600080fd5b509092509050610821565b61041061089c565b6040805192835290151560208301528051918290030190f35b610431610b21565b604080519115158252519081900360200190f35b610431610c2b565b610455610c39565b6040805194855260208501939093529015158383015215156060830152519081900360800190f35b6102096004803603602081101561049357600080fd5b5035610c6a565b610213610d93565b610237610da2565b610518600480360360208110156104c057600080fd5b810190602081018135600160201b8111156104da57600080fd5b8201836020820111156104ec57600080fd5b803590602001918460208302840111600160201b8311171561050d57600080fd5b509092509050610db2565b604051808060200185815260200184815260200183151515158152602001828103825286818151815260200191508051906020019060200280838360005b8381101561056e578181015183820152602001610556565b505050509050019550505050505060405180910390f35b610209610e05565b610410610fcd565b610209610fe0565b6102b761109c565b610213611230565b610209600480360360208110156105c357600080fd5b503561123f565b610209600480360360408110156105e057600080fd5b508035906020013561131b565b610431611389565b610237611392565b6102b76004803603602081101561061357600080fd5b810190602081018135600160201b81111561062d57600080fd5b82018360208201111561063f57600080fd5b803590602001918460208302840111600160201b8311171561066057600080fd5b5090925090506113a1565b6102096004803603604081101561068157600080fd5b506001600160a01b03813581169160200135166113df565b610209600480360360208110156106af57600080fd5b810190602081018135600160201b8111156106c957600080fd5b8201836020820111156106db57600080fd5b803590602001918460208302840111600160201b831117156106fc57600080fd5b5090925090506117aa565b61023761193f565b6102096004803603604081101561072557600080fd5b5080359060200135611945565b6102096119d2565b610431611c84565b61074a611c91565b61075381611cf7565b50565b6002546001600160a01b031681565b6004545b90565b60606107aa838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611d4492505050565b90505b92915050565b60009081526005602052604090205490565b6107cd611dd4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610829611e1d565b6108968484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080880282810182019093528782529093508792508691829185019084908082843760009201829052509250611e97915050565b50505050565b60008060606108a961200d565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b1580156108e157600080fd5b505afa1580156108f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561091e57600080fd5b8101908080516040519392919084600160201b82111561093d57600080fd5b90830190602082018581111561095257600080fd5b82518660208202830111600160201b8211171561096e57600080fd5b82525081516020918201928201910280838360005b8381101561099b578181015183820152602001610983565b505050509050016040525050509050606060006109b6612021565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015610a145781810151838201526020016109fc565b505050509050019250505060006040518083038186803b158015610a3757600080fd5b505afa158015610a4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015610a7457600080fd5b8101908080516040519392919084600160201b821115610a9357600080fd5b908301906020820185811115610aa857600080fd5b82518660208202830111600160201b82111715610ac457600080fd5b82525081516020918201928201910280838360005b83811015610af1578181015183820152602001610ad9565b50505050919091016040525060200151929450919250610b169150849050838361203c565b945094505050509091565b60006060610b2d61109c565b905060005b8151811015610c22576000828281518110610b4957fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610bb157600080fd5b505afa158015610bc5573d6000803e3d6000fd5b505050506040513d6020811015610bdb57600080fd5b50516001600160a01b0316141580610c0857506000818152600360205260409020546001600160a01b0316155b15610c195760009350505050610769565b50600101610b32565b50600191505090565b600854610100900460ff1681565b6007546004546008546000928392839283929190829060ff16610c5b82612255565b94509450945094505090919293565b610c72611c91565b6000610c7d8261226e565b90506000821315610cf357631cd554d160e21b60005260056020526000805160206132af83398151915254610cb8908263ffffffff61227916565b631cd554d160e21b60005260056020526000805160206132af83398151915255600454610ceb908263ffffffff61227916565b600455610d5a565b631cd554d160e21b60005260056020526000805160206132af83398151915254610d23908263ffffffff6122d316565b631cd554d160e21b60005260056020526000805160206132af83398151915255600454610d56908263ffffffff6122d316565b6004555b60045460408051918252517f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be5999181900360200190a15050565b6001546001600160a01b031681565b6844656274436163686560b81b81565b60606000806000610df586868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061233092505050565b9299919850965090945092505050565b6060610e0f61109c565b905060005b8151811015610fc9576000828281518110610e2b57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610ee1578181015183820152602001610ec9565b50505050905090810190601f168015610f0e5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d6020811015610f5657600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610e14565b5050565b600080610fd861255c565b915091509091565b6001546001600160a01b031633146110295760405162461bcd60e51b81526004018080602001828103825260358152602001806132096035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6060806110a76128fc565b60408051600880825261012082019092529192506060919060208201610100803883390190505090506524b9b9bab2b960d11b816000815181106110e757fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160018151811061110d57fe5b6020026020010181815250506c45786368616e6765526174657360981b8160028151811061113757fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061116057fe5b6020026020010181815250507021b7b63630ba32b930b626b0b730b3b2b960791b8160048151811061118e57fe5b6020026020010181815250506d57726170706572466163746f727960901b816005815181106111b957fe5b6020026020010181815250506b22ba3432b92bb930b83832b960a11b816006815181106111e257fe5b60200260200101818152505073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b8160078151811061121357fe5b602002602001018181525050611229828261294d565b9250505090565b6000546001600160a01b031681565b611247611dd4565b600061125161200d565b6001600160a01b03166332608039836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561129457600080fd5b505afa1580156112a8573d6000803e3d6000fd5b505050506040513d60208110156112be57600080fd5b50516001600160a01b03161461130a576040805162461bcd60e51b815260206004820152600c60248201526b53796e74682065786973747360a01b604482015290519081900360640190fd5b600090815260056020526040812055565b611323612a09565b6000828152600660205260408120548201908112156113735760405162461bcd60e51b81526004018080602001828103825260248152602001806131e56024913960400191505060405180910390fd5b6000928352600660205260409092209190915550565b60085460ff1690565b600061139c612aff565b905090565b60606107aa838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612bae92505050565b6113e7611dd4565b600854610100900460ff161561143a576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b6008805461ff001916610100179055604080516372cb051f60e01b815290516060916001600160a01b038416916372cb051f91600480820192600092909190829003018186803b15801561148d57600080fd5b505afa1580156114a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156114ca57600080fd5b8101908080516040519392919084600160201b8211156114e957600080fd5b9083019060208201858111156114fe57600080fd5b82518660208202830111600160201b8211171561151a57600080fd5b82525081516020918201928201910280838360005b8381101561154757818101518382015260200161152f565b50505050905001604052505050905060008151116115ac576040805162461bcd60e51b815260206004820152601d60248201527f70726576696f75732049737375657220686173206e6f2073796e746873000000604482015290519081900360640190fd5b6060836001600160a01b03166307619a5f836040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b8381101561160d5781810151838201526020016115f5565b505050509050019250505060006040518083038186803b15801561163057600080fd5b505afa158015611644573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561166d57600080fd5b8101908080516040519392919084600160201b82111561168c57600080fd5b9083019060208201858111156116a157600080fd5b82518660208202830111600160201b821117156116bd57600080fd5b82525081516020918201928201910280838360005b838110156116ea5781810151838201526020016116d2565b50505050905001604052505050905060008090505b82518110156117a357600082828151811061171657fe5b6020026020010151111561179b5761177082828151811061173357fe5b60200260200101516006600086858151811061174b57fe5b602002602001015181526020019081526020016000205461227990919063ffffffff16565b6006600085848151811061178057fe5b60200260200101518152602001908152602001600020819055505b6001016116ff565b5050505050565b6117b2612c36565b606060006117be612021565b6001600160a01b031663c8e5bbd585856040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f820116905080830192505050935050505060006040518083038186803b15801561183057600080fd5b505afa158015611844573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561186d57600080fd5b8101908080516040519392919084600160201b82111561188c57600080fd5b9083019060208201858111156118a157600080fd5b82518660208202830111600160201b821117156118bd57600080fd5b82525081516020918201928201910280838360005b838110156118ea5781810151838201526020016118d2565b505050509190910160408181526020938401518a850280840186019092528a8352969850959650610896959094508993508892839250850190849080828437600092019190915250869250859150611e979050565b60075490565b61194d611c91565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061197d57fe5b602090810291909101015260408051600180825281830190925260609181602001602082028038833901905050905082816000815181106119ba57fe5b60200260200101818152505061089682826000611e97565b6119da612c36565b60606119e461200d565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611a5957600080fd5b8101908080516040519392919084600160201b821115611a7857600080fd5b908301906020820185811115611a8d57600080fd5b82518660208202830111600160201b82111715611aa957600080fd5b82525081516020918201928201910280838360005b83811015611ad6578181015183820152602001611abe565b50505050905001604052505050905060606000806000611af585612330565b6b11955515549154d7d111509560a21b600090815260056020527fb03402a6fc396b42a4a74df8120873f820800f1398191168ef707a9051d6d76e849055845194985092965090945092508491905b81811015611bae576000878281518110611b5a57fe5b60200260200101519050611b77818561227990919063ffffffff16565b935080600560008b8581518110611b8a57fe5b60209081029190910181015182528101919091526040016000205550600101611b44565b506c115610d31551115117d1115095609a1b600090815260056020527fbca14b7b4212dd98a4b255832d862779dccd9aba14592c2e2c4e62d4efc07bc7859055611bfe838663ffffffff612c9c16565b6004819055426007556040805182815290519192507f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be599919081900360200190a16040805142815290517fc481e742c89630d4b1a5ed3a0fc624c1c41ed463bd00ac26a7e93c71e932126f9181900360200190a1611c7a84611cf7565b5050505050505050565b600061139c600754612255565b611c9961200d565b6001600160a01b0316336001600160a01b031614611cf5576040805162461bcd60e51b815260206004820152601460248201527329b2b73232b91034b9903737ba1024b9b9bab2b960611b604482015290519081900360640190fd5b565b60085460ff16151581151514610753576008805460ff19168215159081179091556040517f8eebec690c34bbf0fe0d5b93e442beaf16bdaf99052569581de2dcb3e31a53a790600090a250565b6060600082519050606081604051908082528060200260200182016040528015611d78578160200160208202803883390190505b50905060005b82811015611dcc5760066000868381518110611d9657fe5b6020026020010151815260200190815260200160002054828281518110611db957fe5b6020908102919091010152600101611d7e565b509392505050565b6000546001600160a01b03163314611cf55760405162461bcd60e51b815260040180806020018281038252602f81526020018061325f602f913960400191505060405180910390fd5b611e2561200d565b6001600160a01b0316336001600160a01b03161480611e5c5750611e47612cb7565b6001600160a01b0316336001600160a01b0316145b611cf55760405162461bcd60e51b815260040180806020018281038252602181526020018061323e6021913960400191505060405180910390fd5b825182518114611eee576040805162461bcd60e51b815260206004820152601a60248201527f496e707574206172726179206c656e6774687320646966666572000000000000604482015290519081900360640190fd5b6000806060611efd8787612cce565b905060005b84811015611f8c576000888281518110611f1857fe5b602002602001015190506000838381518110611f3057fe5b60200260200101519050611f6060056000848152602001908152602001600020548761227990919063ffffffff16565b9550611f72858263ffffffff61227916565b600092835260056020526040909220559250600101611f02565b50818314611ff557600454611fb784611fab838663ffffffff61227916565b9063ffffffff6122d316565b60048190556040805182815290519192507f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be599919081900360200190a1505b84156120045761200485611cf7565b50505050505050565b600061139c6524b9b9bab2b960d11b612f99565b600061139c6c45786368616e6765526174657360981b612f99565b60008060008061204a613076565b6001600160a01b0316631e33fc6b6040518163ffffffff1660e01b8152600401604080518083038186803b15801561208157600080fd5b505afa158015612095573d6000803e3d6000fd5b505050506040513d60408110156120ab57600080fd5b50805160209091015190925090506000806120c4613076565b6001600160a01b031663ad79a8586040518163ffffffff1660e01b8152600401604080518083038186803b1580156120fb57600080fd5b505afa15801561210f573d6000803e3d6000fd5b505050506040513d604081101561212557600080fd5b5080516020909101519092509050868061213c5750825b806121445750805b9450612156848363ffffffff61227916565b95506121d4612163613095565b6001600160a01b031663ee5f3f5c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561219b57600080fd5b505afa1580156121af573d6000803e3d6000fd5b505050506040513d60208110156121c557600080fd5b5051879063ffffffff61227916565b955060005b89518110156122485761223e6122318a83815181106121f457fe5b6020026020010151600660008e868151811061220c57fe5b60200260200101518152602001908152602001600020546130af90919063ffffffff16565b889063ffffffff61227916565b96506001016121d9565b5050505050935093915050565b6000814203612262612aff565b10806107ad5750501590565b60006107ad826130c4565b6000828201838110156107aa576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561232a576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6060600080600060606000612343612021565b6001600160a01b031663c8e5bbd5886040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b838110156123a1578181015183820152602001612389565b505050509050019250505060006040518083038186803b1580156123c457600080fd5b505afa1580156123d8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561240157600080fd5b8101908080516040519392919084600160201b82111561242057600080fd5b90830190602082018581111561243557600080fd5b82518660208202830111600160201b8211171561245157600080fd5b82525081516020918201928201910280838360005b8381101561247e578181015183820152602001612466565b50505050919091016040525060200151929450919250606091506124a490508884612cce565b90506000806124b48a868661203c565b915091506000806124c36130da565b6001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401604080518083038186803b1580156124fa57600080fd5b505afa15801561250e573d6000803e3d6000fd5b505050506040513d604081101561252457600080fd5b5080516020909101519092509050848285888061253e5750835b806125465750855b9a509a509a509a50505050505050509193509193565b600080606061256961200d565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b1580156125a157600080fd5b505afa1580156125b5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156125de57600080fd5b8101908080516040519392919084600160201b8211156125fd57600080fd5b90830190602082018581111561261257600080fd5b82518660208202830111600160201b8211171561262e57600080fd5b82525081516020918201928201910280838360005b8381101561265b578181015183820152602001612643565b50505050905001604052505050905060606000612676612021565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b838110156126d45781810151838201526020016126bc565b505050509050019250505060006040518083038186803b1580156126f757600080fd5b505afa15801561270b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561273457600080fd5b8101908080516040519392919084600160201b82111561275357600080fd5b90830190602082018581111561276857600080fd5b82518660208202830111600160201b8211171561278457600080fd5b82525081516020918201928201910280838360005b838110156127b1578181015183820152602001612799565b50505050919091016040525060200151929450919250606091506127d790508484612cce565b90506000806127e786868661203c565b845191935091506000805b8281101561282a5761282086828151811061280957fe5b60200260200101518361227990919063ffffffff16565b91506001016127f2565b506000806128366130da565b6001600160a01b031663fc7b9c186040518163ffffffff1660e01b8152600401604080518083038186803b15801561286d57600080fd5b505afa158015612881573d6000803e3d6000fd5b505050506040513d604081101561289757600080fd5b50805160209091015190925090506128b5838363ffffffff61227916565b92508583106128d3576128ce838763ffffffff6122d316565b6128d6565b60005b92508288806128e25750815b806128ea5750855b9b509b50505050505050505050509091565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061293e57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561297d578160200160208202803883390190505b50905060005b83518110156129bf5783818151811061299857fe5b60200260200101518282815181106129ac57fe5b6020908102919091010152600101612983565b5060005b8251811015612a02578281815181106129d857fe5b60200260200101518282865101815181106129ef57fe5b60209081029190910101526001016129c3565b5092915050565b6000612a136130fc565b6001600160a01b031663e0aa2797336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612a6857600080fd5b505afa158015612a7c573d6000803e3d6000fd5b505050506040513d6020811015612a9257600080fd5b50516000549091506001600160a01b031633148080612aae5750815b610fc9576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920646562742069737375657273206d61792063616c6c207468697300604482015290519081900360640190fd5b6000612b09613118565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612b7d57600080fd5b505afa158015612b91573d6000803e3d6000fd5b505050506040513d6020811015612ba757600080fd5b5051905090565b6060600082519050606081604051908082528060200260200182016040528015612be2578160200160208202803883390190505b50905060005b82811015611dcc5760056000868381518110612c0057fe5b6020026020010151815260200190815260200160002054828281518110612c2357fe5b6020908102919091010152600101612be8565b6000546001600160a01b03163314611cf557612c50613135565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015612c8857600080fd5b505afa158015610896573d6000803e3d6000fd5b600082821015612cae578183036107aa565b50600092915050565b600061139c6822bc31b430b733b2b960b91b612f99565b606060008351905080604051908082528060200260200182016040528015612d00578160200160208202803883390190505b5091506060612d0d61200d565b6001600160a01b0316633b6afe40866040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015612d6b578181015183820152602001612d53565b505050509050019250505060006040518083038186803b158015612d8e57600080fd5b505afa158015612da2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015612dcb57600080fd5b8101908080516040519392919084600160201b821115612dea57600080fd5b908301906020820185811115612dff57600080fd5b82518660208202830111600160201b82111715612e1b57600080fd5b82525081516020918201928201910280838360005b83811015612e48578181015183820152602001612e30565b50505050905001604052505050905060008090505b82811015612f90576000828281518110612e7357fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415612edc576040805162461bcd60e51b815260206004820152601460248201527314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f1757600080fd5b505afa158015612f2b573d6000803e3d6000fd5b505050506040513d6020811015612f4157600080fd5b50518751909150612f6f90889085908110612f5857fe5b6020026020010151826130af90919063ffffffff16565b868481518110612f7b57fe5b60209081029190910101525050600101612e5d565b50505092915050565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081612a025760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561303b578181015183820152602001613023565b50505050905090810190601f1680156130685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600061139c7021b7b63630ba32b930b626b0b730b3b2b960791b612f99565b600061139c6b22ba3432b92bb930b83832b960a11b612f99565b60006107aa8383670de0b6b3a764000061314f565b60008082126130d357816107ad565b5060000390565b600061139c73233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b612f99565b600061139c6d57726170706572466163746f727960901b612f99565b600061139c6e466c657869626c6553746f7261676560881b612f99565b600061139c6b53797374656d53746174757360a01b612f99565b600080600a8304613166868663ffffffff61318b16565b8161316d57fe5b0490506005600a82061061317f57600a015b600a9004949350505050565b60008261319a575060006107ad565b828202828482816131a757fe5b04146107aa5760405162461bcd60e51b815260040180806020018281038252602181526020018061328e6021913960400191505060405180910390fdfe4578636c7564656420646562742063616e6e6f74206265636f6d65206e65676174697665596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697053656e646572206973206e6f7420497373756572206f722045786368616e6765724f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7774c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823fa265627a7a723158202400349b111f11971a00e184852baa1066b223ca1073e686cd4d88dad61c585864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "DebtCacheSnapshotTaken",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "cachedDebt",
							"type": "uint256"
						}
					],
					"name": "DebtCacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"name": "DebtCacheValidityChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheInfo",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "isStale",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheStale",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cachedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "cachedSynthDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "cachedSynthDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "snxIssuedDebts",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "currentSynthDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "debtValues",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256",
							"name": "futuresDebt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "excludedDebt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtSnapshotStaleTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "excludedIssuedDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "excludedDebts",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IDebtCache",
							"name": "prevDebtCache",
							"type": "address"
						},
						{
							"internalType": "contract IIssuer",
							"name": "prevIssuer",
							"type": "address"
						}
					],
					"name": "importExcludedIssuedDebts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isInitialized",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "purgeCachedSynthDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "delta",
							"type": "int256"
						}
					],
					"name": "recordExcludedDebtChange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "takeDebtSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalNonSnxBackedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "excludedDebt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "currencyRate",
							"type": "uint256"
						}
					],
					"name": "updateCachedSynthDebtWithRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "updateCachedSynthDebts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "currencyRates",
							"type": "uint256[]"
						}
					],
					"name": "updateCachedSynthDebtsWithRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "int256",
							"name": "amount",
							"type": "int256"
						}
					],
					"name": "updateCachedsUSDDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "currentlyInvalid",
							"type": "bool"
						}
					],
					"name": "updateDebtCacheValidity",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x1140dbb0909dd19e64d449d716798fc190c55238dce804eaf35d4f383ec1ae05",
				"urls": [
					"bzz-raw://95e5e71d093af7b280e741894ea69579f7afaab7f9552b3833fa38ab78c4cfd1",
					"dweb:/ipfs/QmPuekBASUQ7SzezYp7cH64y9eVHdQzmGRS7sj4muUYcA1"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DebtCache.sol": "DebtCache"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DebtCache.sol": {
						"keccak256": "0x1140dbb0909dd19e64d449d716798fc190c55238dce804eaf35d4f383ec1ae05",
						"urls": [
							"bzz-raw://95e5e71d093af7b280e741894ea69579f7afaab7f9552b3833fa38ab78c4cfd1",
							"dweb:/ipfs/QmPuekBASUQ7SzezYp7cH64y9eVHdQzmGRS7sj4muUYcA1"
						]
					}
				},
				"version": 1
			}
		},
		"EmptyEtherWrapper": {
			"bytecode": "60806040523480156100195760008061001661001f565b50505b5061008a565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561005757808601518282016040015260200161003c565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b60d5806100986000396000f3fe60806040523480156016576000806013606c565b50505b506004361060395760003560e01c8063bb57ad20146045578063ee5f3f5c14604d575b6000806042606c565b50505b604b6065565b005b60536067565b60405190815260200160405180910390f35b565b600090565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101560a25780860151828201604001526020016089565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b50505056",
			"abi": [
				{
					"inputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "distributeFees",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xe851cb18328170d833e186732d2c4578fd549427a0fbc7dc6b34fe3439f7385a",
				"urls": [
					"bzz-raw://825bd1d6f29708c95e4e95530d6bf4d2350b63fd4ab96c3f3e8faa40c641b403",
					"dweb:/ipfs/QmcVNqrgMorokfWtG7xAaxreid7enTDFQYkfH29Uu5cL2d"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EmptyEtherWrapper.sol": "EmptyEtherWrapper"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EmptyEtherWrapper.sol": {
						"keccak256": "0xe851cb18328170d833e186732d2c4578fd549427a0fbc7dc6b34fe3439f7385a",
						"urls": [
							"bzz-raw://825bd1d6f29708c95e4e95530d6bf4d2350b63fd4ab96c3f3e8faa40c641b403",
							"dweb:/ipfs/QmcVNqrgMorokfWtG7xAaxreid7enTDFQYkfH29Uu5cL2d"
						]
					}
				},
				"version": 1
			}
		},
		"SynthRedeemer": {
			"bytecode": "608060405234801561001057600080fd5b50600436106100b45760003560e01c806395a2251f1161007157806395a2251f146101a15780639bc3f269146101c7578063b915ece0146101ed578063d6232e8914610219578063e4dc2aa414610289578063f7888aec146102af576100b4565b806304f3bcec146100b95780632af64bd3146100dd5780633a70599c146100f9578063614d08f8146101275780637418536014610141578063899ffef414610149575b600080fd5b6100c16102dd565b604080516001600160a01b039092168252519081900360200190f35b6100e56102ec565b604080519115158252519081900360200190f35b6101256004803603604081101561010f57600080fd5b506001600160a01b0381351690602001356103f6565b005b61012f610685565b60408051918252519081900360200190f35b610125610699565b610151610864565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561018d578181015183820152602001610175565b505050509050019250505060405180910390f35b610125600480360360208110156101b757600080fd5b50356001600160a01b03166108d0565b61012f600480360360208110156101dd57600080fd5b50356001600160a01b0316610950565b6101256004803603604081101561020357600080fd5b506001600160a01b038135169060200135610962565b6101256004803603602081101561022f57600080fd5b81019060208101813564010000000081111561024a57600080fd5b82018360208201111561025c57600080fd5b8035906020019184602083028401116401000000008311171561027e57600080fd5b509092509050610a2b565b61012f6004803603602081101561029f57600080fd5b50356001600160a01b0316610aba565b61012f600480360360408110156102c557600080fd5b506001600160a01b0381358116916020013516610b5c565b6000546001600160a01b031681565b600060606102f8610864565b905060005b81518110156103ec57600082828151811061031457fe5b602090810291909101810151600081815260018352604080822054915481516321f8a72160e01b81526004810185905291519395506001600160a01b03928316949216926321f8a72192602480840193919291829003018186803b15801561037b57600080fd5b505afa15801561038f573d6000803e3d6000fd5b505050506040513d60208110156103a557600080fd5b50516001600160a01b03161415806103d257506000818152600160205260409020546001600160a01b0316155b156103e357600093505050506103f3565b506001016102fd565b5060019150505b90565b6103fe610bc0565b6001600160a01b03821660009081526002602052604090205482901561046b576040805162461bcd60e51b815260206004820152601b60248201527f53796e746820697320616c726561647920646570726563617465640000000000604482015290519081900360640190fd5b600082116104c0576040805162461bcd60e51b815260206004820152601b60248201527f4e6f207261746520666f722073796e746820746f2072656465656d0000000000604482015290519081900360640190fd5b6000836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104fb57600080fd5b505afa15801561050f573d6000803e3d6000fd5b505050506040513d602081101561052557600080fd5b50519050600061053b828563ffffffff610c2f16565b905080610546610c59565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561059b57600080fd5b505afa1580156105af573d6000803e3d6000fd5b505050506040513d60208110156105c557600080fd5b5051101561061a576040805162461bcd60e51b815260206004820152601b60248201527f73555344206d75737420666972737420626520737570706c6965640000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526002602090815260409182902087905581519288168352820186905281810184905260608201839052517f729d5d4b6f2f5105eb1f707c4929870479e07c211953ef7014da9463fb15d88a9181900360800190a15050505050565b6c29bcb73a342932b232b2b6b2b960991b81565b60606106a3610864565b905060005b81518110156108605760008282815181106106bf57fe5b60209081029190910181015160008054604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818701526039808201869052825180830390910181526059820180845263dacb2d0160e01b9052605d8201868152607d83019384528151609d840152815196985094966001600160a01b039094169563dacb2d0195899592949093909260bd90910191908501908083838c5b83811015610778578181015183820152602001610760565b50505050905090810190601f1680156107a55780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156107c357600080fd5b505afa1580156107d7573d6000803e3d6000fd5b505050506040513d60208110156107ed57600080fd5b505160008381526001602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016106a8565b5050565b60408051600280825260608083018452926020830190803883390190505090506524b9b9bab2b960d11b8160008151811061089b57fe5b6020026020010181815250506814de5b9d1a1cd554d160ba1b816001815181106108c157fe5b60200260200101818152505090565b604080516370a0823160e01b8152336004820152905161094d9183916001600160a01b038316916370a08231916024808301926020929190829003018186803b15801561091c57600080fd5b505afa158015610930573d6000803e3d6000fd5b505050506040513d602081101561094657600080fd5b5051610c75565b50565b60026020526000908152604090205481565b604080516370a0823160e01b8152336004820152905182916001600160a01b038516916370a0823191602480820192602092909190829003018186803b1580156109ab57600080fd5b505afa1580156109bf573d6000803e3d6000fd5b505050506040513d60208110156109d557600080fd5b50511015610a21576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6108608282610c75565b60005b81811015610ab557610aad838383818110610a4557fe5b905060200201356001600160a01b0316848484818110610a6157fe5b604080516370a0823160e01b81523360048201529051602092830294909401356001600160a01b0316936370a08231935060248083019392829003018186803b15801561091c57600080fd5b600101610a2e565b505050565b6000610b5660026000846001600160a01b03166001600160a01b0316815260200190815260200160002054836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1e57600080fd5b505afa158015610b32573d6000803e3d6000fd5b505050506040513d6020811015610b4857600080fd5b50519063ffffffff610c2f16565b92915050565b6001600160a01b0380831660008181526002602090815260408083205481516370a0823160e01b8152958716600487015290519294610bb994919391926370a0823192602480840193829003018186803b158015610b1e57600080fd5b9392505050565b610bc8610ea4565b6001600160a01b0316336001600160a01b031614610c2d576040805162461bcd60e51b815260206004820152601d60248201527f5265737472696374656420746f2049737375657220636f6e7472616374000000604482015290519081900360640190fd5b565b6000670de0b6b3a7640000610c4a848463ffffffff610eb816565b81610c5157fe5b049392505050565b6000610c706814de5b9d1a1cd554d160ba1b610f11565b905090565b6001600160a01b03821660009081526002602052604090205480610cd7576040805162461bcd60e51b815260206004820152601460248201527353796e7468206e6f742072656465656d61626c6560601b604482015290519081900360640190fd5b60008211610d2c576040805162461bcd60e51b815260206004820152601d60248201527f4e6f2062616c616e6365206f662073796e746820746f2072656465656d000000604482015290519081900360640190fd5b610d34610ea4565b604080516335a1b01b60e21b81526001600160a01b038681166004830152336024830152604482018690529151929091169163d686c06c9160648082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505050506000610dba8284610c2f90919063ffffffff16565b9050610dc4610c59565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e2357600080fd5b505af1158015610e37573d6000803e3d6000fd5b505050506040513d6020811015610e4d57600080fd5b5050604080516001600160a01b03861681523360208201528082018590526060810183905290517f8734fd5c7511ef698c61bce7dd8eefb212edea08cf7d9d4694e223c6f6121aef9181900360800190a150505050565b6000610c706524b9b9bab2b960d11b610f11565b600082610ec757506000610b56565b82820282848281610ed457fe5b0414610bb95760405162461bcd60e51b8152600401808060200182810382526021815260200180610ff66021913960400191505060405180910390fd5b600081815260016020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610fee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fb3578181015183820152602001610f9b565b50505050905090810190601f168015610fe05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158208c6464b50049d8b711b8d1409dc4320aa36cf037bd81f9145de4b5e016470a1664736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rateToRedeem",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalSynthSupply",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "supplyInsUSD",
							"type": "uint256"
						}
					],
					"name": "SynthDeprecated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountOfSynth",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountInsUSD",
							"type": "uint256"
						}
					],
					"name": "SynthRedeemed",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "balanceInsUSD",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "rateToRedeem",
							"type": "uint256"
						}
					],
					"name": "deprecate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						}
					],
					"name": "redeem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20[]",
							"name": "synthProxies",
							"type": "address[]"
						}
					],
					"name": "redeemAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amountOfSynth",
							"type": "uint256"
						}
					],
					"name": "redeemPartial",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "redemptions",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "synthProxy",
							"type": "address"
						}
					],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "supplyInsUSD",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x4d31499235bb64ab5975313a6c9208fad376de17a3d78f8f11e530b6d0f4af0b",
				"urls": [
					"bzz-raw://bf0d27c1716b7e43b2345b15b6cb7218615b0c6aa9e6b8234480b0f4729a65cc",
					"dweb:/ipfs/QmXq4EA3r3JYrWtgXfzjn5DFwapSXmJr6iKutCqgPJenA4"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthRedeemer.sol": "SynthRedeemer"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthRedeemer.sol": {
						"keccak256": "0x4d31499235bb64ab5975313a6c9208fad376de17a3d78f8f11e530b6d0f4af0b",
						"urls": [
							"bzz-raw://bf0d27c1716b7e43b2345b15b6cb7218615b0c6aa9e6b8234480b0f4729a65cc",
							"dweb:/ipfs/QmXq4EA3r3JYrWtgXfzjn5DFwapSXmJr6iKutCqgPJenA4"
						]
					}
				},
				"version": 1
			}
		},
		"MultiCollateralSynth": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200337d3803806200337d83398181016040526101008110156200003857600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006457600080fd5b9083019060208201858111156200007a57600080fd5b82516401000000008111828201881017156200009557600080fd5b82525081516020918201929091019080838360005b83811015620000c4578181015183820152602001620000aa565b50505050905090810190601f168015620000f25780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011657600080fd5b9083019060208201858111156200012c57600080fd5b82516401000000008111828201881017156200014757600080fd5b82525081516020918201929091019080838360005b83811015620001765781810151838201526020016200015c565b50505050905090810190601f168015620001a45780820380516001836020036101000a031916815260200191505b50604090815260208201519082015160608301516080909301519194509250878787878787878780888888888660128a86816001600160a01b03811662000232576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316620002dd576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9181900360200190a150600480546001600160a01b0319166001600160a01b03881617905584516200035f90600590602088019062000464565b5083516200037590600690602087019062000464565b50506007919091556008805460ff191660ff90921691909117610100600160a81b0319166101006001600160a01b03978816021790555050509089169050620003fa576040805162461bcd60e51b815260206004820152601260248201527105f70726f78792063616e6e6f7420626520360741b604482015290519081900360640190fd5b6001600160a01b0384166200044b576040805162461bcd60e51b815260206004820152601260248201527105f6f776e65722063616e6e6f7420626520360741b604482015290519081900360640190fd5b5050600a5550620005099b505050505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004a757805160ff1916838001178555620004d7565b82800160010185558215620004d7579182015b82811115620004d7578251825591602001919060010190620004ba565b50620004e5929150620004e9565b5090565b6200050691905b80821115620004e55760008155600101620004f0565b90565b612e6480620005196000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063d67bdd25116100ad578063e90dd9e21161007c578063e90dd9e2146105cb578063eb1edd61146105d3578063ec556889146105db578063f7ea7a3d146105e3578063ffff51d614610600576101fb565b8063d67bdd2514610557578063dbd06c851461055f578063dd62ed3e14610567578063e73cced314610595576101fb565b80639f769807116100e95780639f769807146104b3578063a9059cbb146104d9578063b014c3a314610505578063bc67f83214610531576101fb565b80638da5cb5b1461045157806395d89b411461045957806397107d6d146104615780639dc29fac14610487576101fb565b8063313ce56711610192578063741853601161016157806374185360146103bd57806379ba5097146103c5578063867904b4146103cd578063899ffef4146103f9576101fb565b8063313ce5671461037f57806353a47bb714610387578063614d08f81461038f57806370a0823114610397576101fb565b806318160ddd116101ce57806318160ddd1461030957806323b872dd146103235780632af64bd3146103595780632e0f262514610361576101fb565b806304f3bcec1461020057806306fdde0314610224578063095ea7b3146102a15780631627540c146102e1575b600080fd5b610208610626565b604080516001600160a01b039092168252519081900360200190f35b61022c61063a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026657818101518382015260200161024e565b50505050905090810190601f1680156102935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cd600480360360408110156102b757600080fd5b506001600160a01b0381351690602001356106c8565b604080519115158252519081900360200190f35b610307600480360360208110156102f757600080fd5b50356001600160a01b0316610765565b005b6103116107c1565b60408051918252519081900360200190f35b6102cd6004803603606081101561033957600080fd5b506001600160a01b038135811691602081013590911690604001356107c7565b6102cd6107ee565b610369610900565b6040805160ff9092168252519081900360200190f35b610369610905565b61020861090e565b61031161091d565b610311600480360360208110156103ad57600080fd5b50356001600160a01b0316610938565b6103076109bf565b610307610b9c565b610307600480360360408110156103e357600080fd5b506001600160a01b038135169060200135610c58565b610401610cbc565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043d578181015183820152602001610425565b505050509050019250505060405180910390f35b610208610d80565b61022c610d8f565b6103076004803603602081101561047757600080fd5b50356001600160a01b0316610dea565b6103076004803603604081101561049d57600080fd5b506001600160a01b038135169060200135610e46565b610307600480360360208110156104c957600080fd5b50356001600160a01b0316610eaf565b6102cd600480360360408110156104ef57600080fd5b506001600160a01b038135169060200135610ede565b6102cd6004803603604081101561051b57600080fd5b506001600160a01b038135169060200135610f76565b6103076004803603602081101561054757600080fd5b50356001600160a01b03166110cd565b6102086110f7565b610311611106565b6103116004803603604081101561057d57600080fd5b506001600160a01b038135811691602001351661110c565b6102cd600480360360608110156105ab57600080fd5b506001600160a01b0381358116916020810135909116906040013561119a565b6102086112ee565b6102086112fd565b610208611315565b610307600480360360208110156105f957600080fd5b5035611324565b6103116004803603602081101561061657600080fd5b50356001600160a01b0316611331565b60085461010090046001600160a01b031681565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106c05780601f10610695576101008083540402835291602001916106c0565b820191906000526020600020905b8154815290600101906020018083116106a357829003601f168201915b505050505081565b60006106d2611478565b6003546004805460408051633691826360e21b81526001600160a01b03948516938101849052878516602482015260448101879052905192939091169163da46098c9160648082019260009290919082900301818387803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050506107598185856114b8565b60019150505b92915050565b61076d6115f1565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60075481565b60006107d161163a565b6107db84836116be565b6107e684848461183d565b949350505050565b600060606107fa610cbc565b905060005b81518110156108f657600082828151811061081657fe5b6020908102919091018101516000818152600983526040908190205460085482516321f8a72160e01b81526004810185905292519395506001600160a01b0391821694610100909104909116926321f8a721926024808201939291829003018186803b15801561088557600080fd5b505afa158015610899573d6000803e3d6000fd5b505050506040513d60208110156108af57600080fd5b50516001600160a01b03161415806108dc57506000818152600960205260409020546001600160a01b0316155b156108ed57600093505050506108fd565b506001016107ff565b5060019150505b90565b601281565b60085460ff1681565b6001546001600160a01b031681565b7309aead8e8d286ded8d8c2e8cae4c2d8a6f2dce8d60631b81565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b15801561098b57600080fd5b505afa15801561099f573d6000803e3d6000fd5b505050506040513d60208110156109b557600080fd5b505190505b919050565b60606109c9610cbc565b905060005b8151811015610b985760008282815181106109e557fe5b602002602001015190506000600860019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ab0578181015183820152602001610a98565b50505050905090810190601f168015610add5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610afb57600080fd5b505afa158015610b0f573d6000803e3d6000fd5b505050506040513d6020811015610b2557600080fd5b505160008381526009602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016109ce565b5050565b6001546001600160a01b03163314610be55760405162461bcd60e51b8152600401808060200182810382526035815260200180612d366035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b610c61336119ff565b610cb2576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920696e7465726e616c20636f6e74726163747320616c6c6f77656400604482015290519081900360640190fd5b610b988282611b52565b606080610cc7611c7e565b60408051600380825260808201909252919250606091906020820183803883390190505090507021b7b63630ba32b930b626b0b730b3b2b960791b81600081518110610d0f57fe5b6020026020010181815250506b22ba3432b92bb930b83832b960a11b81600181518110610d3857fe5b6020026020010181815250506d57726170706572466163746f727960901b81600281518110610d6357fe5b602002602001018181525050610d798282611d6b565b9250505090565b6000546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106c05780601f10610695576101008083540402835291602001916106c0565b610df26115f1565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9181900360200190a150565b610e4f336119ff565b610ea0576040805162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920696e7465726e616c20636f6e74726163747320616c6c6f77656400604482015290519081900360640190fd5b610eaa8282611e27565b505050565b610eb7611f26565b600480546001600160a01b0319166001600160a01b038316179055610edb81611fbf565b50565b6000610ee861163a565b600354610efe906001600160a01b0316836116be565b6001600160a01b03831673feefeefeefeefeefeefeefeefeefeefeefeefeef1415610f3457610f2d8383612105565b905061075f565b6001600160a01b038316610f5857600354610f2d906001600160a01b031683611e27565b600354610f6f906001600160a01b03168484612282565b9392505050565b6000610f8061163a565b6000610f8a6124b3565b600354600a54604080516306c5a00b60e21b81526001600160a01b0393841660048201526024810192909252519290911691631b16802c916044808201926060929091908290030181600087803b158015610fe457600080fd5b505af1158015610ff8573d6000803e3d6000fd5b505050506040513d606081101561100e57600080fd5b5060400151905082811561109b5760048054600354604080516370a0823160e01b81526001600160a01b0392831694810194909452519116916370a08231916024808301926020929190829003018186803b15801561106c57600080fd5b505afa158015611080573d6000803e3d6000fd5b505050506040513d602081101561109657600080fd5b505190505b8084116110a857836110aa565b805b6003549094506110c4906001600160a01b03168686612282565b95945050505050565b6110d56124cf565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b600a5481565b6004805460408051636eb1769f60e11b81526001600160a01b0386811694820194909452848416602482015290516000939092169163dd62ed3e91604480820192602092909190829003018186803b15801561116757600080fd5b505afa15801561117b573d6000803e3d6000fd5b505050506040513d602081101561119157600080fd5b50519392505050565b60006111a461163a565b60006111ae6124b3565b6001600160a01b0316631b16802c86600a546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050606060405180830381600087803b15801561120f57600080fd5b505af1158015611223573d6000803e3d6000fd5b505050506040513d606081101561123957600080fd5b506040015190508281156112c75760048054604080516370a0823160e01b81526001600160a01b038a811694820194909452905192909116916370a0823191602480820192602092909190829003018186803b15801561129857600080fd5b505afa1580156112ac573d6000803e3d6000fd5b505050506040513d60208110156112c257600080fd5b505190505b808410156112d557836112d7565b805b93506112e486868661183d565b9695505050505050565b6004546001600160a01b031681565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6002546001600160a01b031681565b61132c611f26565b600755565b60008061133c6124b3565b6001600160a01b03166319d5c66584600a546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060606040518083038186803b15801561139b57600080fd5b505afa1580156113af573d6000803e3d6000fd5b505050506040513d60608110156113c557600080fd5b505160048054604080516370a0823160e01b81526001600160a01b0388811694820194909452905193945060009392909116916370a0823191602480820192602092909190829003018186803b15801561141e57600080fd5b505afa158015611432573d6000803e3d6000fd5b505050506040513d602081101561144857600080fd5b505190508082111561145f576000925050506109ba565b61146f818363ffffffff61252816565b925050506109ba565b6002546001600160a01b0316331480159061149e57506003546001600160a01b03163314155b156114b657600380546001600160a01b031916331790555b565b60025460408051602080820185905282518083039091018152908201918290526001600160a01b039092169163907dff9791600390806021612dc982396021019050604051809103902061150b88612585565b61151488612585565b60006040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018481526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b8381101561158357818101518382015260200161156b565b50505050905090810190601f1680156115b05780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b1580156115d457600080fd5b505af11580156115e8573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031633146114b65760405162461bcd60e51b815260040180806020018281038252602f815260200180612d9a602f913960400191505060405180910390fd5b6002546001600160a01b0316331415611652576114b6565b61165b33612591565b1561167757600380546001600160a01b031916331790556114b6565b6040805162461bcd60e51b815260206004820152601760248201527613db9b1e481d1a19481c1c9bde1e4818d85b8818d85b1b604a1b604482015290519081900360640190fd5b6116c66124b3565b6001600160a01b031663059c29ec83600a546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b15801561172557600080fd5b505afa158015611739573d6000803e3d6000fd5b505050506040513d602081101561174f57600080fd5b50511561178d5760405162461bcd60e51b8152600401808060200182810382526025815260200180612dea6025913960400191505060405180910390fd5b8061179783611331565b10156117d45760405162461bcd60e51b815260040180806020018281038252602f815260200180612d6b602f913960400191505060405180910390fd5b6117dc6128d9565b6001600160a01b03166342a28e21600a546040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561182157600080fd5b505afa158015611835573d6000803e3d6000fd5b505050505050565b6004805460035460408051636eb1769f60e11b81526001600160a01b038881169582019590955291841660248301525160009360001993169163dd62ed3e916044808301926020929190829003018186803b15801561189b57600080fd5b505afa1580156118af573d6000803e3d6000fd5b505050506040513d60208110156118c557600080fd5b5051146119f4576004805460035460408051636eb1769f60e11b81526001600160a01b0389811695820195909552918416602483018190529051939092169263da46098c9288929091611973918891879163dd62ed3e916044808301926020929190829003018186803b15801561193b57600080fd5b505afa15801561194f573d6000803e3d6000fd5b505050506040513d602081101561196557600080fd5b50519063ffffffff61252816565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b1580156119db57600080fd5b505af11580156119ef573d6000803e3d6000fd5b505050505b6107e6848484612282565b6000611a0a826128f3565b80611a9a5750611a18612965565b6001600160a01b031663b38988f7836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611a6d57600080fd5b505afa158015611a81573d6000803e3d6000fd5b505050506040513d6020811015611a9757600080fd5b50515b80611b2a5750611aa8612984565b6001600160a01b031663e0aa2797836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611afd57600080fd5b505afa158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b50515b8061075f5750611b386129a0565b6001600160a01b0316826001600160a01b03161492915050565b60048054604080516370a0823160e01b81526001600160a01b03868116948201949094529051929091169163b46310f6918591611bea91869186916370a08231916024808301926020929190829003018186803b158015611bb257600080fd5b505afa158015611bc6573d6000803e3d6000fd5b505050506040513d6020811015611bdc57600080fd5b50519063ffffffff6129ba16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611c3957600080fd5b505af1158015611c4d573d6000803e3d6000fd5b5050600754611c65925090508263ffffffff6129ba16565b600755611c7460008383612a14565b610b988282612a67565b60408051600580825260c082019092526060916020820160a0803883390190505090506b53797374656d53746174757360a01b81600081518110611cbe57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110611ce457fe5b6020026020010181815250506524b9b9bab2b960d11b81600281518110611d0757fe5b60200260200101818152505066119959541bdbdb60ca1b81600381518110611d2b57fe5b60200260200101818152505073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b81600481518110611d5c57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611d9b578160200160208202803883390190505b50905060005b8351811015611ddd57838181518110611db657fe5b6020026020010151828281518110611dca57fe5b6020908102919091010152600101611da1565b5060005b8251811015611e2057828181518110611df657fe5b6020026020010151828286510181518110611e0d57fe5b6020908102919091010152600101611de1565b5092915050565b60048054604080516370a0823160e01b81526001600160a01b038681169482019490945290516000939092169163b46310f6918691611e8991879186916370a08231916024808301926020929190829003018186803b15801561193b57600080fd5b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611ed857600080fd5b505af1158015611eec573d6000803e3d6000fd5b5050600754611f04925090508363ffffffff61252816565b600755611f1383600084612a14565b611f1d8383612ba8565b50600192915050565b6002546001600160a01b03163314801590611f4c57506003546001600160a01b03163314155b15611f6457600380546001600160a01b031916331790555b6000546003546001600160a01b039081169116146114b6576040805162461bcd60e51b815260206004820152601360248201527227bbb732b91037b7363c90333ab731ba34b7b760691b604482015290519081900360640190fd5b600254604080516001600160a01b038481166020808401919091528351808403820181528385018086527f546f6b656e5374617465557064617465642861646472657373290000000000009052935192839003605a01832063907dff9760e01b8452600160248501819052604485018290526000606486018190526084860181905260a4860181905260c060048701908152875160c48801528751959098169763907dff97979692959394919384938493839260e490920191908a0190808383885b83811015612099578181015183820152602001612081565b50505050905090810190601f1680156120c65780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b1580156120ea57600080fd5b505af11580156120fe573d6000803e3d6000fd5b5050505050565b600080600a54631cd554d160e21b141561213957506003548290612133906001600160a01b03168583612282565b50612213565b6121416124b3565b600354600a54604080516327c319e960e11b81526001600160a01b03938416600482018190526024820152604481019290925260648201879052631cd554d160e21b608483015273feefeefeefeefeefeefeefeefeefeefeefeefeef60a4830152600060c4830181905260e48301819052610104830181905281519490931693634f8633d293610124808501948390030190829087803b1580156121e457600080fd5b505af11580156121f8573d6000803e3d6000fd5b505050506040513d604081101561220e57600080fd5b505190505b61221b612c11565b6001600160a01b03166322bf55ef826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561226057600080fd5b505af1158015612274573d6000803e3d6000fd5b506001979650505050505050565b60006001600160a01b038316158015906122a557506001600160a01b0383163014155b80156122bf57506002546001600160a01b03848116911614155b612310576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f74207472616e7366657220746f2074686973206164647265737300604482015290519081900360640190fd5b60048054604080516370a0823160e01b81526001600160a01b03888116948201949094529051929091169163b46310f691879161237091879186916370a08231916024808301926020929190829003018186803b15801561193b57600080fd5b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156123bf57600080fd5b505af11580156123d3573d6000803e3d6000fd5b505060048054604080516370a0823160e01b81526001600160a01b0389811694820194909452905192909116935063b46310f69250869161243791879186916370a08231916024808301926020929190829003018186803b158015611bb257600080fd5b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561248657600080fd5b505af115801561249a573d6000803e3d6000fd5b505050506124a9848484612a14565b5060019392505050565b60006124ca6822bc31b430b733b2b960b91b612c22565b905090565b6002546001600160a01b031633146114b6576040805162461bcd60e51b815260206004820152601760248201527613db9b1e481d1a19481c1c9bde1e4818d85b8818d85b1b604a1b604482015290519081900360640190fd5b60008282111561257f576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b031690565b600854604080516321f8a72160e01b81526e10dbdb1b185d195c985b14da1bdc9d608a1b6004820152905160009261010090046001600160a01b0316916321f8a721916024808301926020929190829003018186803b1580156125f357600080fd5b505afa158015612607573d6000803e3d6000fd5b505050506040513d602081101561261d57600080fd5b50516001600160a01b03838116911614806126d75750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b815260040180806c29bcb73a342932b232b2b6b2b960991b815250602001905060206040518083038186803b15801561269c57600080fd5b505afa1580156126b0573d6000803e3d6000fd5b505050506040513d60208110156126c657600080fd5b50516001600160a01b038381169116145b806127825750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b815260040180806d57726170706572466163746f727960901b815250602001905060206040518083038186803b15801561274757600080fd5b505afa15801561275b573d6000803e3d6000fd5b505050506040513d602081101561277157600080fd5b50516001600160a01b038381169116145b806128315750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b81526004018080712730ba34bb32a2ba3432b92bb930b83832b960711b815250602001905060206040518083038186803b1580156127f657600080fd5b505afa15801561280a573d6000803e3d6000fd5b505050506040513d602081101561282057600080fd5b50516001600160a01b038381169116145b8061075f5750600860019054906101000a90046001600160a01b03166001600160a01b03166321f8a7216040518163ffffffff1660e01b815260040180806411195c1bdd60da1b815250602001905060206040518083038186803b15801561289857600080fd5b505afa1580156128ac573d6000803e3d6000fd5b505050506040513d60208110156128c257600080fd5b50516001600160a01b038381169116149050919050565b60006124ca6b53797374656d53746174757360a01b612c22565b60006128fd612c11565b6001600160a01b0316826001600160a01b03161480612934575061291f6124b3565b6001600160a01b0316826001600160a01b0316145b806129575750612942612cff565b6001600160a01b0316826001600160a01b0316145b8061075f5750611b38612d13565b60006124ca7021b7b63630ba32b930b626b0b730b3b2b960791b612c22565b60006124ca6d57726170706572466163746f727960901b612c22565b60006124ca6b22ba3432b92bb930b83832b960a11b612c22565b600082820183811015610f6f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60025460408051602080820185905282518083039091018152908201918290526001600160a01b039092169163907dff9791600390806021612e0f82396021019050604051809103902061150b88612585565b60028054604080516020808201869052825180830390910181528183018084527f49737375656428616464726573732c75696e7432353629000000000000000000905291519081900360570190206001600160a01b039092169263907dff9792612ad087612585565b6000806040518763ffffffff1660e01b815260040180806020018781526020018681526020018581526020018460001b81526020018360001b8152602001828103825288818151815260200191508051906020019080838360005b83811015612b43578181015183820152602001612b2b565b50505050905090810190601f168015612b705780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b158015612b9457600080fd5b505af1158015611835573d6000803e3d6000fd5b60028054604080516020808201869052825180830390910181528183018084527f4275726e656428616464726573732c75696e7432353629000000000000000000905291519081900360570190206001600160a01b039092169263907dff9792612ad087612585565b60006124ca66119959541bdbdb60ca1b5b600081815260096020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611e205760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cc4578181015183820152602001612cac565b50505050905090810190601f168015612cf15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60006124ca6524b9b9bab2b960d11b612c22565b60006124ca73233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b612c2256fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970496e73756666696369656e742062616c616e636520616674657220616e7920736574746c656d656e74206f77696e674f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e417070726f76616c28616464726573732c616464726573732c75696e743235362943616e6e6f74207472616e7366657220647572696e672077616974696e6720706572696f645472616e7366657228616464726573732c616464726573732c75696e7432353629a265627a7a723158200ab6f354799b3f2ca84430782d67c46a02187bf8717a34537181b246fd3ff3c264736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						},
						{
							"internalType": "string",
							"name": "_tokenName",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "_tokenSymbol",
							"type": "string"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_totalSupply",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Burned",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Issued",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTokenState",
							"type": "address"
						}
					],
					"name": "TokenStateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "DECIMALS",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_ADDRESS",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burn",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currencyKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						}
					],
					"name": "setTokenState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setTotalSupply",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tokenState",
					"outputs": [
						{
							"internalType": "contract TokenState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferAndSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFromAndSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "transferableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x548d16dab51321918778c500b04c32240f3d720f19d48533e0db9c2b9b722ebe",
				"urls": [
					"bzz-raw://6d9e8792979f1eee0372a7dee6371c0b91e6b522605e0079120c162def58cbe7",
					"dweb:/ipfs/QmQuccUukBgM3aLVmDrebRUc4aJjcYkVLjJ6Fv7wwVgrSd"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"MultiCollateralSynth.sol": "MultiCollateralSynth"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"MultiCollateralSynth.sol": {
						"keccak256": "0x548d16dab51321918778c500b04c32240f3d720f19d48533e0db9c2b9b722ebe",
						"urls": [
							"bzz-raw://6d9e8792979f1eee0372a7dee6371c0b91e6b522605e0079120c162def58cbe7",
							"dweb:/ipfs/QmQuccUukBgM3aLVmDrebRUc4aJjcYkVLjJ6Fv7wwVgrSd"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralUtil": {
			"bytecode": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063899ffef41161005b578063899ffef4146100ea5780638a739975146100ff578063e99f964714610112578063fbfeca401461012557610088565b806304f3bcec1461008d5780632af64bd3146100ab5780633c4aa0f3146100c057806374185360146100e0575b600080fd5b610095610138565b6040516100a29190611402565b60405180910390f35b6100b3610147565b6040516100a29190611349565b6100d36100ce366004610f52565b61025d565b6040516100a29190611357565b6100e861039a565b005b6100f26104ef565b6040516100a29190611338565b6100d361010d36600461103f565b61055b565b6100d3610120366004610f9f565b61068f565b6100d3610133366004610fdb565b6107ee565b6000546001600160a01b031681565b600060606101536104ef565b905060005b815181101561025357600082828151811061016f57fe5b60209081029190910181015160008181526001909252604080832054925490516321f8a72160e01b81529193506001600160a01b039283169216906321f8a721906101be908590600401611357565b60206040518083038186803b1580156101d657600080fd5b505afa1580156101ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061020e9190810190610f34565b6001600160a01b031614158061023957506000818152600160205260409020546001600160a01b0316155b1561024a576000935050505061025a565b50600101610158565b5060019150505b90565b600080610268610acb565b9050610272610b7d565b6001600160a01b031663654a60ac8686866040518463ffffffff1660e01b81526004016102a1939291906113da565b60206040518083038186803b1580156102b957600080fd5b505afa1580156102cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102f19190810190611021565b915061038f61038282730142f40c25ce1f1177ed131101fa19217396cb8863907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561033e57600080fd5b505af4158015610352573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103769190810190611021565b9063ffffffff610c0e16565b839063ffffffff610c3c16565b9150505b9392505050565b60606103a46104ef565b905060005b81518110156104eb5760008282815181106103c057fe5b6020026020010151905060008060009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610401919061132d565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161042d92919061139b565b60206040518083038186803b15801561044557600080fd5b505afa158015610459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061047d9190810190610f34565b6000838152600160205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906104d99084908490611365565b60405180910390a150506001016103a9565b5050565b6060806104fa610c66565b60408051600180825281830190925291925060609190602080830190803883390190505090506c45786368616e6765526174657360981b8160008151811061053e57fe5b6020026020010181815250506105548282610cb7565b9250505090565b6000806105ea84730142f40c25ce1f1177ed131101fa19217396cb8863907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156105a657600080fd5b505af41580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105de9190810190611021565b9063ffffffff610d7316565b90506106836105f7610b7d565b6001600160a01b031663654a60ac8589896040518463ffffffff1660e01b8152600401610626939291906113da565b60206040518083038186803b15801561063e57600080fd5b505afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106769190810190611021565b829063ffffffff610c3c16565b9150505b949350505050565b60008061069a610b7d565b6001600160a01b031663654a60ac848660400135631cd554d160e21b6040518463ffffffff1660e01b81526004016106d4939291906113da565b60206040518083038186803b1580156106ec57600080fd5b505afa158015610700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107249190810190611021565b90506000610730610b7d565b6001600160a01b031663654a60ac606087013561075b608089013560c08a013563ffffffff610c0e16565b631cd554d160e21b6040518463ffffffff1660e01b8152600401610781939291906113da565b60206040518083038186803b15801561079957600080fd5b505afa1580156107ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107d19190810190611021565b90506107e3828263ffffffff610d8816565b925050505b92915050565b6000806107f9610acb565b90506000610805610b7d565b6001600160a01b031663654a60ac606088013561083060808a013560c08b013563ffffffff610c0e16565b631cd554d160e21b6040518463ffffffff1660e01b8152600401610856939291906113da565b60206040518083038186803b15801561086e57600080fd5b505afa158015610882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108a69190810190611021565b905060006108b2610b7d565b6001600160a01b031663654a60ac868960400135631cd554d160e21b6040518463ffffffff1660e01b81526004016108ec939291906113da565b60206040518083038186803b15801561090457600080fd5b505afa158015610918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061093c9190810190611021565b90506000730142f40c25ce1f1177ed131101fa19217396cb8863907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561098457600080fd5b505af4158015610998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109bc9190810190611021565b905060006109e06109d3848a63ffffffff610d8816565b859063ffffffff610db216565b90506000610a14610a078a6109fb868a63ffffffff610c0e16565b9063ffffffff610d8816565b849063ffffffff610db216565b90506000610a28838363ffffffff610d8816565b9050610a32610b7d565b6001600160a01b031663654a60ac631cd554d160e21b838e606001356040518463ffffffff1660e01b8152600401610a6c939291906113da565b60206040518083038186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610abc9190810190611021565b9b9a5050505050505050505050565b6000610ad5610dda565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401610b28929190611380565b60206040518083038186803b158015610b4057600080fd5b505afa158015610b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b789190810190611021565b905090565b6000805460405163dacb2d0160e01b81526001600160a01b039091169063dacb2d0190610bbe906c45786368616e6765526174657360981b906004016113bb565b60206040518083038186803b158015610bd657600080fd5b505afa158015610bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b789190810190610f34565b6000828201838110156103935760405162461bcd60e51b8152600401610c3390611421565b60405180910390fd5b6000670de0b6b3a7640000610c57848463ffffffff610df716565b81610c5e57fe5b049392505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110610ca857fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610ce7578160200160208202803883390190505b50905060005b8351811015610d2957838181518110610d0257fe5b6020026020010151828281518110610d1657fe5b6020908102919091010152600101610ced565b5060005b8251811015610d6c57828181518110610d4257fe5b6020026020010151828286510181518110610d5957fe5b6020908102919091010152600101610d2d565b5092915050565b60006103938383670de0b6b3a7640000610e31565b600061039382610da685670de0b6b3a764000063ffffffff610df716565b9063ffffffff610e6816565b600082821115610dd45760405162461bcd60e51b8152600401610c3390611431565b50900390565b6000610b786e466c657869626c6553746f7261676560881b610e9d565b600082610e06575060006107e8565b82820282848281610e1357fe5b04146103935760405162461bcd60e51b8152600401610c3390611451565b600080610e4b84610da687600a870263ffffffff610df716565b90506005600a820610610e5c57600a015b600a9004949350505050565b6000808211610e895760405162461bcd60e51b8152600401610c3390611441565b6000828481610e9457fe5b04949350505050565b60008181526001602090815260408083205490516001600160a01b039091169182151591610ecd9186910161130d565b60405160208183030381529060405290610d6c5760405162461bcd60e51b8152600401610c339190611410565b80516107e8816114da565b80356107e8816114f1565b60006101208284031215610f2357600080fd5b50919050565b80516107e8816114f1565b600060208284031215610f4657600080fd5b60006106878484610efa565b600080600060608486031215610f6757600080fd5b6000610f738686610f05565b9350506020610f8486828701610f05565b9250506040610f9586828701610f05565b9150509250925092565b6000806101408385031215610fb357600080fd5b6000610fbf8585610f10565b925050610120610fd185828601610f05565b9150509250929050565b60008060006101608486031215610ff157600080fd5b6000610ffd8686610f10565b93505061012061100f86828701610f05565b925050610140610f9586828701610f05565b60006020828403121561103357600080fd5b60006106878484610f29565b6000806000806080858703121561105557600080fd5b60006110618787610f05565b945050602061107287828801610f05565b935050604061108387828801610f05565b925050606061109487828801610f05565b91505092959194509250565b60006110ac8383611125565b505060200190565b6110bd81611479565b82525050565b60006110ce82611467565b6110d8818561146b565b93506110e383611461565b8060005b838110156111115781516110fb88826110a0565b975061110683611461565b9250506001016110e7565b509495945050505050565b6110bd81611484565b6110bd8161025a565b6110bd61113a8261025a565b61025a565b6110bd81611495565b600061115382611467565b61115d818561146b565b935061116d8185602086016114a0565b611176816114d0565b9093019392505050565b600061118d601b8361146b565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006111c6601e8361146b565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006111ff601a8361146b565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000611238601183611474565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061126560218361146b565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006112a8601e8361146b565b7f4d697373696e672045786368616e6765526174657320636f6e74726163740000815260200192915050565b60006112e1601983611474565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006113188261122b565b9150611324828461112e565b50602001919050565b6000611318826112d4565b6020808252810161039381846110c3565b602081016107e8828461111c565b602081016107e88284611125565b604081016113738285611125565b61039360208301846110b4565b6040810161138e8285611125565b6103936020830184611125565b604081016113a98285611125565b81810360208301526106878184611148565b604081016113c98284611125565b81810360208301526103938161129b565b606081016113e88286611125565b6113f56020830185611125565b6106876040830184611125565b602081016107e8828461113f565b602080825281016103938184611148565b602080825281016107e881611180565b602080825281016107e8816111b9565b602080825281016107e8816111f2565b602080825281016107e881611258565b60200190565b5190565b90815260200190565b919050565b60006107e882611489565b151590565b6001600160a01b031690565b60006107e882611479565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b601f01601f191690565b6114e381611479565b81146114ee57600080fd5b50565b6114e38161025a56fea365627a7a72315820126f7f3ad863ca506459f84ae0bf971eef657e347939fce08a7327c0e33127d76c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "collateralKey",
							"type": "bytes32"
						}
					],
					"name": "collateralRedeemed",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						},
						{
							"internalType": "bytes32",
							"name": "collateralKey",
							"type": "bytes32"
						}
					],
					"name": "getCollateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						},
						{
							"internalType": "uint256",
							"name": "minCratio",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "collateralKey",
							"type": "bytes32"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "minCratio",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "collateralKey",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xa4a8f1bfe0d3ba3c6248b9ef642ba1002247bcd61bb46bd76874379346d6e7f0",
				"urls": [
					"bzz-raw://3fcdb714252cad657624975b262f69ee0f1d3b6452aaeb6020f12f72aef80620",
					"dweb:/ipfs/QmUvZk2ZR9sCTjvVNBDXhFbJF2gnvyXnb6gcaFocEft7y2"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralUtil.sol": "CollateralUtil"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralUtil.sol": {
						"keccak256": "0xa4a8f1bfe0d3ba3c6248b9ef642ba1002247bcd61bb46bd76874379346d6e7f0",
						"urls": [
							"bzz-raw://3fcdb714252cad657624975b262f69ee0f1d3b6452aaeb6020f12f72aef80620",
							"dweb:/ipfs/QmUvZk2ZR9sCTjvVNBDXhFbJF2gnvyXnb6gcaFocEft7y2"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralManagerState": {
			"bytecode": "608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638c58250311610104578063cc952b57116100a2578063e50a31b311610071578063e50a31b31461038f578063eb94bbde146103a2578063ed039154146103b5578063f53037b6146103c8576101cf565b8063cc952b571461034e578063d2f0047514610356578063e31f27c114610369578063e32261fe1461037c576101cf565b8063a29fe7b8116100de578063a29fe7b81461030d578063aefc4ccb14610320578063af07aa9d14610328578063b52e0dc81461033b576101cf565b80638c582503146102ea5780638da5cb5b146102f2578063a0356f6e146102fa576101cf565b806352f445ca116101715780636431e0bd1161014b5780636431e0bd146102a6578063781dc0e2146102b957806379ba5097146102c157806383d625d4146102c9576101cf565b806352f445ca1461026b57806353a47bb71461027e5780635537479914610293576101cf565b806322e07b7a116101ad57806322e07b7a14610235578063246206391461023d578063381c5cb5146102505780635246f2b914610258576101cf565b806303f048b0146101d45780631627540c14610200578063173fcb4114610215575b600080fd5b6101e76101e2366004610b70565b6103db565b6040516101f79493929190610df2565b60405180910390f35b61021361020e366004610b4a565b610415565b005b610228610223366004610b8e565b610473565b6040516101f79190610dc9565b6102286104a1565b61021361024b366004610b8e565b6104a7565b61022861050d565b610213610266366004610b8e565b610514565b610213610279366004610b4a565b610579565b6102866105cc565b6040516101f79190610d50565b6102286102a1366004610b70565b6105db565b6102136102b4366004610b70565b6105ed565b610228610631565b610213610637565b6102dc6102d7366004610b70565b6106d3565b6040516101f7929190610dd7565b6102286106ec565b610286610737565b610228610308366004610b70565b610746565b61022861031b366004610b70565b610758565b610286610776565b6101e7610336366004610b8e565b610785565b610228610349366004610b70565b6107c5565b6102286107e6565b610228610364366004610b70565b6107ec565b610213610377366004610b8e565b61082c565b61022861038a366004610b70565b610878565b61021361039d366004610b8e565b6108bb565b6102136103b0366004610b8e565b61091a565b6102136103c3366004610b70565b610963565b6102136103d6366004610b70565b6109d6565b6000806000806103e961050d565b90506103f4856107c5565b9350610402600182036107c5565b925061040c610631565b91509193509193565b61041d610a39565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610468908390610d50565b60405180910390a150565b6006602052816000526040600020818154811061048c57fe5b90600052602060002001600091509150505481565b60055481565b6002546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d190610db9565b60405180910390fd5b60008281526006602090815260408083208054600181018255908452828420019390935592815260079092529020429055565b6004545b90565b6002546001600160a01b0316331461053e5760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902060010154610560908263ffffffff610a6516565b6000928352600860205260409092206001019190915550565b610581610a39565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390610468908390610d50565b6001546001600160a01b031681565b60076020526000908152604090205481565b6002546001600160a01b031633146106175760405162461bcd60e51b81526004016104d190610db9565b600081815260066020526040812061062e91610afd565b50565b60055490565b6001546001600160a01b031633146106615760405162461bcd60e51b81526004016104d190610d79565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926106a4926001600160a01b0391821692911690610d5e565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6008602052600090815260409020805460019091015482565b6002546000906001600160a01b031633146107195760405162461bcd60e51b81526004016104d190610db9565b60035461072d90600163ffffffff610a9216565b6003819055905090565b6000546001600160a01b031681565b60009081526006602052604090205490565b6004818154811061076557fe5b600091825260209091200154905081565b6002546001600160a01b031681565b60008060008061079486610746565b90506107a08686610abe565b93506107af8660018303610abe565b92506107ba86610aeb565b915092959194509250565b6000600482815481106107d457fe5b90600052602060002001549050919050565b60035481565b6002546000906001600160a01b031633146108195760405162461bcd60e51b81526004016104d190610db9565b5060009081526008602052604090205490565b6002546001600160a01b031633146108565760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902060010154610560908263ffffffff610a9216565b6002546000906001600160a01b031633146108a55760405162461bcd60e51b81526004016104d190610db9565b5060009081526008602052604090206001015490565b6002546001600160a01b031633146108e55760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902054610904908263ffffffff610a6516565b6000928352600860205260409092209190915550565b6002546001600160a01b031633146109445760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902054610904908263ffffffff610a9216565b6002546001600160a01b0316331461098d5760405162461bcd60e51b81526004016104d190610db9565b600081815260066020526040902054156109a65761062e565b60008181526006602090815260408083208054600181018255908452828420018390559282526007905220429055565b6002546001600160a01b03163314610a005760405162461bcd60e51b81526004016104d190610db9565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015542600555565b6000546001600160a01b03163314610a635760405162461bcd60e51b81526004016104d190610da9565b565b600082821115610a875760405162461bcd60e51b81526004016104d190610d99565b508082035b92915050565b600082820183811015610ab75760405162461bcd60e51b81526004016104d190610d89565b9392505050565b6000828152600660205260408120805483908110610ad857fe5b9060005260206000200154905092915050565b60009081526007602052604090205490565b508054600082559060005260206000209081019061062e919061051191905b80821115610b305760008155600101610b1c565b5090565b8035610a8c81610e4a565b8035610a8c81610e5e565b600060208284031215610b5c57600080fd5b6000610b688484610b34565b949350505050565b600060208284031215610b8257600080fd5b6000610b688484610b3f565b60008060408385031215610ba157600080fd5b6000610bad8585610b3f565b9250506020610bbe85828601610b3f565b9150509250929050565b610bd181610e39565b82525050565b6000610be4603583610e30565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000610c3b601b83610e30565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610c74601e83610e30565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000610cad602f83610e30565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000610cfe603483610e30565b7f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e815273103832b93337b936903a3434b99030b1ba34b7b760611b602082015260400192915050565b610bd181610511565b60208101610a8c8284610bc8565b60408101610d6c8285610bc8565b610ab76020830184610bc8565b60208082528101610a8c81610bd7565b60208082528101610a8c81610c2e565b60208082528101610a8c81610c67565b60208082528101610a8c81610ca0565b60208082528101610a8c81610cf1565b60208101610a8c8284610d47565b60408101610de58285610d47565b610ab76020830184610d47565b60808101610e008287610d47565b610e0d6020830186610d47565b610e1a6040830185610d47565b610e276060830184610d47565b95945050505050565b90815260200190565b60006001600160a01b038216610a8c565b610e5381610e39565b811461062e57600080fd5b610e538161051156fea365627a7a72315820fd88d326b2a176232a0e527a5d6eaf32c2d4101e98d53e7494e7d7feb63221fd6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "addShortCurrency",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "borrowRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "borrowRatesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRateAt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getRatesLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getShortRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "getShortRatesLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "incrementTotalLoans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "long",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "ratesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "removeShortCurrency",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "short",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "shortRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortRatesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "long",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "short",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLoans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateBorrowRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateShortRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x543c31c6ce66e421d251f7f90b42c955a3e1adb19bc19bd1d0e11e375aa0c9c8",
				"urls": [
					"bzz-raw://2bef3db5d497775fbccb62c0c027b4cca2e4ed89941ab800db946e27fe82882b",
					"dweb:/ipfs/QmZmRCUUFW5LSTWwJCNgvpCsssCsmNBkePnpHubjkEUQmy"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralManagerState.sol": "CollateralManagerState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralManagerState.sol": {
						"keccak256": "0x543c31c6ce66e421d251f7f90b42c955a3e1adb19bc19bd1d0e11e375aa0c9c8",
						"urls": [
							"bzz-raw://2bef3db5d497775fbccb62c0c027b4cca2e4ed89941ab800db946e27fe82882b",
							"dweb:/ipfs/QmZmRCUUFW5LSTWwJCNgvpCsssCsmNBkePnpHubjkEUQmy"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralManager": {
			"bytecode": "608060405234801561001057600080fd5b50600436106103425760003560e01c80638da5cb5b116101b8578063bbb601cd11610104578063e31f27c1116100a2578063eb94bbde1161007c578063eb94bbde146106a7578063edc77dc2146106ba578063ee81f790146106c2578063ffa749cd146106d557610342565b8063e31f27c11461066e578063e32261fe14610681578063e50a31b31461069457610342565b8063c9e18015116100de578063c9e1801514610638578063ca969f2314610640578063d0064c0014610653578063d2f004751461065b57610342565b8063bbb601cd14610615578063bf38668214610628578063c19d93fb1461063057610342565b8063af07aa9d11610171578063b4d6cb401161014b578063b4d6cb40146105c6578063b9e2451c146105e7578063ba1c5e80146105fa578063baa380361461060257610342565b8063af07aa9d14610598578063b38988f7146105ab578063b3b46732146105be57610342565b80638da5cb5b1461054757806391b4ded91461054f57806393a72fbe146105575780639f7eac371461056a578063a894a14b1461057d578063ad79a8581461059057610342565b8063614d08f81161029257806379ba509711610230578063899ffef41161020a578063899ffef4146105045780638b173e81146105195780638d1341901461052c5780638d6ad02d1461053f57610342565b806379ba5097146104c857806380054666146104d05780638471db13146104f157610342565b806372e18b6a1161026c57806372e18b6a14610487578063741853601461049a578063744d646e146104a25780637687402a146104b557610342565b8063614d08f8146104595780636526941b14610461578063710388d11461047457610342565b806323d60e2e116102ff5780634db7764c116102d95780634db7764c146104215780635246f2b91461042957806353a47bb71461043c5780635c975abb1461045157610342565b806323d60e2e146103d95780632af64bd3146103ec578063382453771461040157610342565b806303f048b01461034757806304f3bcec146103735780630c9c81a1146103885780631627540c1461039d57806316c38b3c146103b05780631e33fc6b146103c3575b600080fd5b61035a61035536600461317d565b6106e8565b60405161036a9493929190613877565b60405180910390f35b61037b61077f565b60405161036a91906137a8565b61039b61039636600461317d565b610793565b005b61039b6103ab366004612fcd565b6107db565b61039b6103be366004613141565b61082e565b6103cb6108a3565b60405161036a929190613737565b61039b6103e7366004613080565b610b1e565b6103f4610c4e565b60405161036a91906136f2565b61041461040f36600461317d565b610d6b565b60405161036a919061371b565b610414610d7d565b61039b6104373660046131b9565b610d83565b610444610e16565b60405161036a91906136b8565b6103f4610e25565b610414610e2e565b61039b61046f36600461317d565b610e46565b61039b610482366004613080565b610ea3565b6103f4610495366004613080565b610fb7565b61039b611051565b6103f46104b036600461304b565b6111a7565b61039b6104c33660046131b9565b6111f1565b61039b61124d565b6104e36104de366004613208565b6112e9565b60405161036a929190613765565b6103f46104ff36600461317d565b611414565b61050c611428565b60405161036a91906136e1565b61039b61052736600461317d565b611595565b61039b61053a36600461317d565b6115d2565b610414611662565b610444611668565b610414611677565b6103f4610565366004613080565b61167d565b61039b61057836600461317d565b611760565b61039b61058b366004613080565b6117bd565b6103cb61190c565b61035a6105a63660046131b9565b611afa565b6103f46105b9366004612fcd565b611b95565b610414611bae565b6105d96105d43660046131b9565b611c67565b60405161036a929190613700565b6104146105f536600461317d565b611d2f565b6103cb611d41565b61039b61061036600461317d565b611e64565b61039b610623366004613009565b611ea1565b610414611f81565b61037b611f87565b610414611f96565b61039b61064e366004613009565b611f9c565b610414612155565b61041461066936600461317d565b61215b565b61039b61067c3660046131b9565b6121dc565b61041461068f36600461317d565b612238565b61039b6106a23660046131b9565b612269565b61039b6106b53660046131b9565b6122c5565b6103cb612321565b6103cb6106d036600461317d565b612515565b61039b6106e3366004613009565b612745565b600554604051623f048b60e41b81526000918291829182916001600160a01b03909116906303f048b09061072090889060040161371b565b60806040518083038186803b15801561073857600080fd5b505afa15801561074c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107709190810190613255565b92989197509550909350915050565b60035461010090046001600160a01b031681565b61079b6127fe565b60138190556040517f08f9599493340b8255c7698bded59e30079641f4a9531613ec02055739247004906107d090839061371b565b60405180910390a150565b6107e36127fe565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906107d09083906136b8565b6108366127fe565b60035460ff161515811515141561084c576108a0565b6003805460ff1916821515179081905560ff161561086957426002555b6003546040517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916107d09160ff909116906136f2565b50565b600880546040805160208084028201810190925282815260009384936060938301828280156108f157602002820191906000526020600020905b8154815260200190600101908083116108dd575b50505050509050600081511115610b195760005b8151811015610b1757600082828151811061091c57fe5b60200260200101519050631cd554d160e21b8114156109cb5760055460405163d2f0047560e01b81526109c4916001600160a01b03169063d2f004759061096790859060040161371b565b60206040518083038186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109b7919081019061319b565b869063ffffffff61282a16565b9450610b0e565b6000806109d6612856565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401610a01919061371b565b604080518083038186803b158015610a1857600080fd5b505afa158015610a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a5091908101906131e9565b60055460405163d2f0047560e01b8152929450909250600091610aeb9185916001600160a01b039091169063d2f0047590610a8f90899060040161371b565b60206040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610adf919081019061319b565b9063ffffffff61287616565b9050610afd888263ffffffff61282a16565b97508115610b0a57600196505b5050505b50600101610905565b505b509091565b610b266127fe565b828114610b4e5760405162461bcd60e51b8152600401610b45906137c7565b60405180910390fd5b60005b83811015610c3f57610b7f858583818110610b6857fe5b90506020020135600a6128a090919063ffffffff16565b610c37576000858583818110610b9157fe5b905060200201359050610bae81600a6128f090919063ffffffff16565b610bd4848484818110610bbd57fe5b9050602002013560086128f090919063ffffffff16565b80600c6000868686818110610be557fe5b905060200201358152602001908152602001600020819055507f87f8a613724bd8be7a9139e4c83bc8d58fedee7206e2d7077849f5988d78759981604051610c2d919061371b565b60405180910390a1505b600101610b51565b50610c48611051565b50505050565b60006060610c5a611428565b905060005b8151811015610d61576000828281518110610c7657fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b039081169361010090920416916321f8a72191610ccc9186910161371b565b60206040518083038186803b158015610ce457600080fd5b505afa158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d1c9190810190612feb565b6001600160a01b0316141580610d4757506000818152600460205260409020546001600160a01b0316155b15610d585760009350505050610d68565b50600101610c5f565b5060019150505b90565b600c6020526000908152604090205481565b60145481565b6000610d8e33611b95565b905080610dad5760405162461bcd60e51b8152600401610b4590613857565b600554604051635246f2b960e01b81526001600160a01b0390911690635246f2b990610ddf9086908690600401613765565b600060405180830381600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b50505050505050565b6001546001600160a01b031681565b60035460ff1681565b7021b7b63630ba32b930b626b0b730b3b2b960791b81565b610e4e6127fe565b60008111610e6e5760405162461bcd60e51b8152600401610b4590613827565b60118190556040517f3620cc91bd75c6d3d752b529a1b98b38789dd2b81a13ece55801abc83531a77f906107d090839061371b565b610eab6127fe565b828114610eca5760405162461bcd60e51b8152600401610b45906137c7565b60005b83811015610fb057610ee4858583818110610b6857fe5b15610fa857610f0f858583818110610ef857fe5b90506020020135600a61292890919063ffffffff16565b610f35838383818110610f1e57fe5b90506020020135600861292890919063ffffffff16565b600c6000848484818110610f4557fe5b905060200201358152602001908152602001600020600090557f788aff97f65e6ddeee9246c47d08b819813066c87876a912c79baddffb138f0a858583818110610f8b57fe5b90506020020135604051610f9f919061371b565b60405180910390a15b600101610ecd565b5050505050565b600a546000908414610fcb57506000611049565b60005b8481101561104357610fe5868683818110610b6857fe5b610ff3576000915050611049565b858582818110610fff57fe5b90506020020135600c600086868581811061101657fe5b905060200201358152602001908152602001600020541461103b576000915050611049565b600101610fce565b50600190505b949350505050565b606061105b611428565b905060005b81518110156111a357600082828151811061107757fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016110b991906136ad565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016110e5929190613745565b60206040518083038186803b1580156110fd57600080fd5b505afa158015611111573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111359190810190612feb565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906111919084908490613729565b60405180910390a15050600101611060565b5050565b6000805b82518110156111e6576111d08382815181106111c357fe5b6020026020010151611b95565b6111de5760009150506111ec565b6001016111ab565b50600190505b919050565b60006111fc33611b95565b90508061121b5760405162461bcd60e51b8152600401610b4590613857565b600554604051632462063960e01b81526001600160a01b0390911690632462063990610ddf9086908690600401613765565b6001546001600160a01b031633146112775760405162461bcd60e51b8152600401610b45906137d7565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926112ba926001600160a01b03918216929116906136c6565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60008060006112f733611b95565b9050806113165760405162461bcd60e51b8152600401610b4590613857565b6000806000808761132f5761132a8a6106e8565b611339565b611339898b611afa565b93509350935093506000808961135657611351611d41565b61135f565b61135f8b612515565b9150915080156113815760405162461bcd60e51b8152600401610b4590613867565b60006113ab670de0b6b3a764000061139f428863ffffffff6129fc16565b9063ffffffff612a2416565b905060006113cf6113c2858463ffffffff61287616565b889063ffffffff61282a16565b90506113e1818963ffffffff6129fc16565b9a508499508b6113f9576113f481612a5e565b611403565b6114038d82612abc565b505050505050505050935093915050565b6000908152600c6020526040902054151590565b6040805160028082526060808301845292839291906020830190803883390190505090506524b9b9bab2b960d11b8160008151811061146357fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061148d57fe5b6020908102919091010152600d54606090801561151657806040519080825280602002602001820160405280156114ce578160200160208202803883390190505b50915060005b8181101561151457600d8054829081106114ea57fe5b906000526020600020015483828151811061150157fe5b60209081029190910101526001016114d4565b505b600a80546040805160208084028201810190925282815260609361156f93879383018282801561156557602002820191906000526020600020905b815481526020019060010190808311611551575b5050505050612aee565b80519091501561158a576115838185612aee565b945061158e565b8394505b5050505090565b61159d6127fe565b60148190556040517fe2695216766f2a627e90e17041ac2f085fd60ea503345b039f815c69bcbcccc9906107d090839061371b565b60006115dd33611b95565b9050806115fc5760405162461bcd60e51b8152600401610b4590613857565b600554604051637a981bdb60e11b81526001600160a01b039091169063f53037b69061162c90859060040161371b565b600060405180830381600087803b15801561164657600080fd5b505af115801561165a573d6000803e3d6000fd5b505050505050565b60125481565b6000546001600160a01b031681565b60025481565b600083821461169e5760405162461bcd60e51b8152600401610b45906137c7565b600d5484146116af57506000611049565b60005b82811015611043576005546001600160a01b031663a0356f6e8585848181106116d757fe5b905060200201356040518263ffffffff1660e01b81526004016116fa919061371b565b60206040518083038186803b15801561171257600080fd5b505afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061174a919081019061319b565b611758576000915050611049565b6001016116b2565b6117686127fe565b600081116117885760405162461bcd60e51b8152600401610b4590613827565b60108190556040517fcf53b24098da84a81615c6450c76443db743815230079981717af7ff9d647fd4906107d090839061371b565b6117c56127fe565b8281146117e45760405162461bcd60e51b8152600401610b45906137c7565b60005b83811015610c3f5760008585838181106117fd57fe5b90506020020135905061181a81600d6128a090919063ffffffff16565b6119035761182f600d8263ffffffff6128f016565b80600f600086868681811061184057fe5b905060200201358152602001908152602001600020819055507fa71e21d8a72d99830e0d382f042d37e6a20c8a33ec3185affcaf6586e9a0187a81604051611888919061371b565b60405180910390a16005546001600160a01b031663ed0391548585858181106118ad57fe5b905060200201356040518263ffffffff1660e01b81526004016118d0919061371b565b600060405180830381600087803b1580156118ea57600080fd5b505af11580156118fe573d6000803e3d6000fd5b505050505b506001016117e7565b600d805460408051602080840282018101909252828152600093849360609383018282801561195a57602002820191906000526020600020905b815481526020019060010190808311611946575b50505050509050600081511115610b195760005b8151811015610b1757600061199583838151811061198857fe5b6020026020010151612baa565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b1580156119cd57600080fd5b505afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a05919081019061319b565b9050600080611a12612856565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401611a3d919061371b565b604080518083038186803b158015611a5457600080fd5b505afa158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a8c91908101906131e9565b60055460405163719130ff60e11b8152929450909250600091611acb9185916001600160a01b039091169063e32261fe90610a8f90899060040161371b565b9050611add888263ffffffff61282a16565b97508115611aea57600196505b50506001909201915061196e9050565b60055460405163af07aa9d60e01b81526000918291829182916001600160a01b039091169063af07aa9d90611b359089908990600401613765565b60806040518083038186803b158015611b4d57600080fd5b505afa158015611b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b859190810190613255565b9299919850965090945092505050565b6000611ba860068363ffffffff612bb516565b92915050565b600080611bba33611b95565b905080611bd95760405162461bcd60e51b8152600401610b4590613857565b600560009054906101000a90046001600160a01b03166001600160a01b0316638c5825036040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c61919081019061319b565b91505090565b6000806000611c74612856565b6001600160a01b031663654a60ac8587631cd554d160e21b6040518463ffffffff1660e01b8152600401611caa93929190613780565b60206040518083038186803b158015611cc257600080fd5b505afa158015611cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cfa919081019061319b565b9050600080611d07612321565b6011549193509150611d1f838563ffffffff61282a16565b11159450925050505b9250929050565b600f6020526000908152604090205481565b6000806000611d4e612c22565b6001600160a01b0316637b1001b7631cd554d160e21b60016040518363ffffffff1660e01b8152600401611d83929190613737565b60206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dd3919081019061319b565b9050600080611de06108a3565b90925090506000611df7848463ffffffff61282a16565b90506000611e266a1a1a7062e5185d7e380000611e1a868563ffffffff612c3616565b9063ffffffff612c3616565b90506000611e3f6010548361287690919063ffffffff16565b9050611e566013548261282a90919063ffffffff16565b989397509295505050505050565b611e6c6127fe565b60128190556040517f465c1047eec44dfecb260ee7e6187823a7cbdd80f19082eb56c35967b16d8e26906107d090839061371b565b611ea96127fe565b60005b81811015611f7c57611ee6838383818110611ec357fe5b9050602002016020611ed89190810190612fcd565b60069063ffffffff612bb516565b611f7457611f1c838383818110611ef957fe5b9050602002016020611f0e9190810190612fcd565b60069063ffffffff612c6016565b7f7db05e63d635a68c62fd7fd8f3107ae8ab584a383e102d1bd8a40f4c977e465f838383818110611f4957fe5b9050602002016020611f5e9190810190612fcd565b604051611f6b91906136b8565b60405180910390a15b600101611eac565b505050565b60135481565b6005546001600160a01b031681565b60105481565b611fa46127fe565b60005b81811015611f7c57611fd5838383818110611fbe57fe5b90506020020135600d6128a090919063ffffffff16565b1561214d57612000838383818110611fe957fe5b90506020020135600d61292890919063ffffffff16565b600061201d84848481811061201157fe5b90506020020135612baa565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561205557600080fd5b505afa158015612069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061208d919081019061319b565b6000818152600f6020526040808220919091556005549051636431e0bd60e01b81529192506001600160a01b031690636431e0bd906120d090849060040161371b565b600060405180830381600087803b1580156120ea57600080fd5b505af11580156120fe573d6000803e3d6000fd5b505050507f23caa21d7c1015aa7051e1ae4a09f99de36dab4545dfec5f4dde3a54173a123b84848481811061212f57fe5b90506020020135604051612143919061371b565b60405180910390a1505b600101611fa7565b60115481565b60055460405163d2f0047560e01b81526000916001600160a01b03169063d2f004759061218c90859060040161371b565b60206040518083038186803b1580156121a457600080fd5b505afa1580156121b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ba8919081019061319b565b60006121e733611b95565b9050806122065760405162461bcd60e51b8152600401610b4590613857565b60055460405163e31f27c160e01b81526001600160a01b039091169063e31f27c190610ddf9086908690600401613765565b60055460405163719130ff60e11b81526000916001600160a01b03169063e32261fe9061218c90859060040161371b565b600061227433611b95565b9050806122935760405162461bcd60e51b8152600401610b4590613857565b60055460405163e50a31b360e01b81526001600160a01b039091169063e50a31b390610ddf9086908690600401613765565b60006122d033611b95565b9050806122ef5760405162461bcd60e51b8152600401610b4590613857565b6005546040516375ca5def60e11b81526001600160a01b039091169063eb94bbde90610ddf9086908690600401613765565b6008805460408051602080840282018101909252828152600093849360609383018282801561236f57602002820191906000526020600020905b81548152602001906001019080831161235b575b50505050509050600081511115610b19576060600061238c612856565b6001600160a01b031663c8e5bbd5846040518263ffffffff1660e01b81526004016123b791906136e1565b60006040518083038186803b1580156123cf57600080fd5b505afa1580156123e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261240b91908101906130f0565b909250905060005b825181101561250d57600061248984838151811061242d57fe5b6020026020010151600560009054906101000a90046001600160a01b03166001600160a01b031663d2f0047588868151811061246557fe5b60200260200101516040518263ffffffff1660e01b8152600401610a8f919061371b565b905060006124d485848151811061249c57fe5b6020026020010151600560009054906101000a90046001600160a01b03166001600160a01b031663e32261fe89878151811061246557fe5b90506124f6816124ea8a8563ffffffff61282a16565b9063ffffffff61282a16565b9750831561250357600196505b5050600101612413565b505050509091565b600080612520612856565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b815260040161254b919061371b565b60206040518083038186803b15801561256357600080fd5b505afa158015612577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061259b919081019061315f565b6000848152600f6020526040812054919250906125b790612baa565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125ef57600080fd5b505afa158015612603573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612627919081019061319b565b60055460405163719130ff60e11b81529192506000916001600160a01b039091169063e32261fe9061265d90889060040161371b565b60206040518083038186803b15801561267557600080fd5b505afa158015612689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126ad919081019061319b565b9050808211156126c35750600092506127409050565b60006126d5828463ffffffff6129fc16565b905060006127086a1a1a7062e5185d7e380000611e1a6126fb878763ffffffff61282a16565b859063ffffffff612c3616565b905060006127216012548361287690919063ffffffff16565b90506127386014548261282a90919063ffffffff16565b965050505050505b915091565b61274d6127fe565b60005b81811015611f7c57612767838383818110611ec357fe5b156127f65761279e83838381811061277b57fe5b90506020020160206127909190810190612fcd565b60069063ffffffff612cb216565b7fd89d2ee68ab04dca0193f48a4aff55e20fa5ec0429a8a8c1c51b8dad6178a5938383838181106127cb57fe5b90506020020160206127e09190810190612fcd565b6040516127ed91906136b8565b60405180910390a15b600101612750565b6000546001600160a01b031633146128285760405162461bcd60e51b8152600401610b4590613837565b565b60008282018381101561284f5760405162461bcd60e51b8152600401610b45906137e7565b9392505050565b60006128716c45786368616e6765526174657360981b612dc8565b905090565b6000670de0b6b3a7640000612891848463ffffffff612a2416565b8161289857fe5b049392505050565b81546000906128b157506000611ba8565b600082815260018401602052604090205480151580611049575082846000016000815481106128dc57fe5b906000526020600020015414949350505050565b6128fa82826128a0565b6111a35781546000828152600180850160209081526040832084905590830185558482529020018190555050565b61293282826128a0565b61294e5760405162461bcd60e51b8152600401610b45906137f7565b60008181526001830160205260409020548254600019018082146129bc57600084600001828154811061297d57fe5b906000526020600020015490508085600001848154811061299a57fe5b6000918252602080832090910192909255918252600186019052604090208290555b83548490806129c757fe5b600190038181906000526020600020016000905590558360010160008481526020019081526020016000206000905550505050565b600082821115612a1e5760405162461bcd60e51b8152600401610b4590613807565b50900390565b600082612a3357506000611ba8565b82820282848281612a4057fe5b041461284f5760405162461bcd60e51b8152600401610b4590613847565b600554604051637a981bdb60e11b81526001600160a01b039091169063f53037b690612a8e90849060040161371b565b600060405180830381600087803b158015612aa857600080fd5b505af1158015610fb0573d6000803e3d6000fd5b600554604051632462063960e01b81526001600160a01b039091169063246206399061162c9085908590600401613765565b60608151835101604051908082528060200260200182016040528015612b1e578160200160208202803883390190505b50905060005b8351811015612b6057838181518110612b3957fe5b6020026020010151828281518110612b4d57fe5b6020908102919091010152600101612b24565b5060005b8251811015612ba357828181518110612b7957fe5b6020026020010151828286510181518110612b9057fe5b6020908102919091010152600101612b64565b5092915050565b6000611ba882612dc8565b8154600090612bc657506000611ba8565b6001600160a01b0382166000908152600184016020526040902054801515806110495750826001600160a01b031684600001600081548110612c0457fe5b6000918252602090912001546001600160a01b031614949350505050565b60006128716524b9b9bab2b960d11b612dc8565b600061284f82612c5485670de0b6b3a764000063ffffffff612a2416565b9063ffffffff612e2516565b612c6a8282612bb5565b6111a35781546001600160a01b038216600081815260018086016020908152604083208590559084018655858252902090910180546001600160a01b03191690911790555050565b612cbc8282612bb5565b612cd85760405162461bcd60e51b8152600401610b45906137f7565b6001600160a01b0381166000908152600183016020526040902054825460001901808214612d77576000846000018281548110612d1157fe5b60009182526020909120015485546001600160a01b0390911691508190869085908110612d3a57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018601909152604090208290555b8354849080612d8257fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0394909416815260019490940190925250506040812055565b60008181526004602090815260408083205490516001600160a01b039091169182151591612df89186910161368d565b60405160208183030381529060405290612ba35760405162461bcd60e51b8152600401610b4591906137b6565b6000808211612e465760405162461bcd60e51b8152600401610b4590613817565b6000828481612e5157fe5b04949350505050565b8035611ba88161396d565b8051611ba88161396d565b60008083601f840112612e8257600080fd5b50813567ffffffffffffffff811115612e9a57600080fd5b602083019150836020820283011115611d2857600080fd5b600082601f830112612ec357600080fd5b8135612ed6612ed1826138dc565b6138b5565b91508181835260208401935060208101905083856020840282011115612efb57600080fd5b60005b83811015612f275781612f118882612e5a565b8452506020928301929190910190600101612efe565b5050505092915050565b600082601f830112612f4257600080fd5b8151612f50612ed1826138dc565b91508181835260208401935060208101905083856020840282011115612f7557600080fd5b60005b83811015612f275781612f8b8882612fc2565b8452506020928301929190910190600101612f78565b8035611ba881613981565b8051611ba881613981565b8035611ba88161398a565b8051611ba88161398a565b600060208284031215612fdf57600080fd5b60006110498484612e5a565b600060208284031215612ffd57600080fd5b60006110498484612e65565b6000806020838503121561301c57600080fd5b823567ffffffffffffffff81111561303357600080fd5b61303f85828601612e70565b92509250509250929050565b60006020828403121561305d57600080fd5b813567ffffffffffffffff81111561307457600080fd5b61104984828501612eb2565b6000806000806040858703121561309657600080fd5b843567ffffffffffffffff8111156130ad57600080fd5b6130b987828801612e70565b9450945050602085013567ffffffffffffffff8111156130d857600080fd5b6130e487828801612e70565b95989497509550505050565b6000806040838503121561310357600080fd5b825167ffffffffffffffff81111561311a57600080fd5b61312685828601612f31565b925050602061313785828601612fac565b9150509250929050565b60006020828403121561315357600080fd5b60006110498484612fa1565b60006020828403121561317157600080fd5b60006110498484612fac565b60006020828403121561318f57600080fd5b60006110498484612fb7565b6000602082840312156131ad57600080fd5b60006110498484612fc2565b600080604083850312156131cc57600080fd5b60006131d88585612fb7565b925050602061313785828601612fb7565b600080604083850312156131fc57600080fd5b60006131268585612fc2565b60008060006060848603121561321d57600080fd5b60006132298686612fb7565b935050602061323a86828701612fb7565b925050604061324b86828701612fa1565b9150509250925092565b6000806000806080858703121561326b57600080fd5b60006132778787612fc2565b945050602061328887828801612fc2565b935050604061329987828801612fc2565b92505060606132aa87828801612fc2565b91505092959194509250565b60006132c2838361333b565b505060200190565b6132d381613910565b82525050565b60006132e482613903565b6132ee8185613907565b93506132f9836138fd565b8060005b8381101561332757815161331188826132b6565b975061331c836138fd565b9250506001016132fd565b509495945050505050565b6132d38161391b565b6132d381610d68565b6132d361335082610d68565b610d68565b6132d38161392c565b600061336982613903565b6133738185613907565b9350613383818560208601613937565b61338c81613963565b9093019392505050565b60006133a3601b83613907565b7f496e707574206172726179206c656e677468206d69736d617463680000000000815260200192915050565b60006133dc603583613907565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613433601b83613907565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061346c601383613907565b7222b632b6b2b73a103737ba1034b71039b2ba1760691b815260200192915050565b600061349b601e83613907565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006134d4601a83613907565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061350d6011836111ec565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061353a601683613907565b7504d7573742062652067726561746572207468616e20360541b815260200192915050565b600061356c602f83613907565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006135bd602183613907565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613600601983613907565b7f4f6e6c7920636f6c6c61746572616c20636f6e74726163747300000000000000815260200192915050565b60006136396019836111ec565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613672600c83613907565b6b496e76616c6964207261746560a01b815260200192915050565b600061369882613500565b91506136a48284613344565b50602001919050565b60006136988261362c565b60208101611ba882846132ca565b604081016136d482856132ca565b61284f60208301846132ca565b6020808252810161284f81846132d9565b60208101611ba88284613332565b6040810161370e8285613332565b61284f6020830184613332565b60208101611ba8828461333b565b604081016136d4828561333b565b6040810161370e828561333b565b60408101613753828561333b565b8181036020830152611049818461335e565b60408101613773828561333b565b61284f602083018461333b565b6060810161378e828661333b565b61379b602083018561333b565b611049604083018461333b565b60208101611ba88284613355565b6020808252810161284f818461335e565b60208082528101611ba881613396565b60208082528101611ba8816133cf565b60208082528101611ba881613426565b60208082528101611ba88161345f565b60208082528101611ba88161348e565b60208082528101611ba8816134c7565b60208082528101611ba88161352d565b60208082528101611ba88161355f565b60208082528101611ba8816135b0565b60208082528101611ba8816135f3565b60208082528101611ba881613665565b60808101613885828761333b565b613892602083018661333b565b61389f604083018561333b565b6138ac606083018461333b565b95945050505050565b60405181810167ffffffffffffffff811182821017156138d457600080fd5b604052919050565b600067ffffffffffffffff8211156138f357600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000611ba882613920565b151590565b6001600160a01b031690565b6000611ba882613910565b60005b8381101561395257818101518382015260200161393a565b83811115610c485750506000910152565b601f01601f191690565b61397681613910565b81146108a057600080fd5b6139768161391b565b61397681610d6856fea365627a7a723158208ce9b6c873048c9e13f053c324a4e1d84a649d7ccdf7ce0df35c31497bc316e06c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract CollateralManagerState",
							"name": "_state",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_maxDebt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_maxSkewRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_baseBorrowRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_baseShortRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "baseBorrowRate",
							"type": "uint256"
						}
					],
					"name": "BaseBorrowRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "baseShortRate",
							"type": "uint256"
						}
					],
					"name": "BaseShortRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "CollateralAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "CollateralRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "liquidationPenalty",
							"type": "uint256"
						}
					],
					"name": "LiquidationPenaltyUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxDebt",
							"type": "uint256"
						}
					],
					"name": "MaxDebtUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxSkewRate",
							"type": "uint256"
						}
					],
					"name": "MaxSkewRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "ShortableSynthAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "ShortableSynthRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "SynthAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "SynthRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "utilisationMultiplier",
							"type": "uint256"
						}
					],
					"name": "UtilisationMultiplierUpdated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "interestIndex",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "isShort",
							"type": "bool"
						}
					],
					"name": "accrueInterest",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "difference",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "addCollaterals",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "requiredSynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addShortableSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "requiredSynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areShortableSynthsSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "requiredSynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areSynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "baseBorrowRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "baseShortRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "exceedsDebtLimit",
					"outputs": [
						{
							"internalType": "bool",
							"name": "canIssue",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getBorrowRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "borrowRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "getNewLoanId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						}
					],
					"name": "getShortRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "shortRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "rateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getShortRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "hasAllCollaterals",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "hasCollateral",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isSynthManaged",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "long",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxSkewRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "removeCollaterals",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synths",
							"type": "bytes32[]"
						}
					],
					"name": "removeShortableSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "removeSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_baseBorrowRate",
							"type": "uint256"
						}
					],
					"name": "setBaseBorrowRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_baseShortRate",
							"type": "uint256"
						}
					],
					"name": "setBaseShortRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxDebt",
							"type": "uint256"
						}
					],
					"name": "setMaxDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxSkewRate",
							"type": "uint256"
						}
					],
					"name": "setMaxSkewRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_utilisationMultiplier",
							"type": "uint256"
						}
					],
					"name": "setUtilisationMultiplier",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "short",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortableSynthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "state",
					"outputs": [
						{
							"internalType": "contract CollateralManagerState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLong",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "susdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLongAndShort",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "susdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalShort",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "susdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateBorrowRatesCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateShortRatesCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "utilisationMultiplier",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xd80a8e47521faec6385a266bcb29acdefe1402f9c0d4f57bb8b839982380b149",
				"urls": [
					"bzz-raw://c4ffe7da625f50c9ca03a1fc59d013564ffbfc0d87314847ea2016a8a7b50b8f",
					"dweb:/ipfs/QmNftomv5EF6zUQaxYtEGTLNab9BU78xtiuCUsF7S71YaN"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralManager.sol": "CollateralManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralManager.sol": {
						"keccak256": "0xd80a8e47521faec6385a266bcb29acdefe1402f9c0d4f57bb8b839982380b149",
						"urls": [
							"bzz-raw://c4ffe7da625f50c9ca03a1fc59d013564ffbfc0d87314847ea2016a8a7b50b8f",
							"dweb:/ipfs/QmNftomv5EF6zUQaxYtEGTLNab9BU78xtiuCUsF7S71YaN"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralShort": {
			"bytecode": "6080604052600d805460ff191660011790553480156200001e57600080fd5b5060405162004c7138038062004c7183398101604081905262000041916200014b565b8585858585858380876001600160a01b0381166200007c5760405162461bcd60e51b815260040162000073906200025c565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c991849062000236565b60405180910390a150600280546001600160a01b039283166001600160a01b0319918216179091556006805498909216971696909617909555600492909255600a55600b5550620002dd975050505050505050565b80516200012b81620002ad565b92915050565b80516200012b81620002c7565b80516200012b81620002d2565b60008060008060008060c087890312156200016557600080fd5b60006200017389896200011e565b96505060206200018689828a016200013e565b95505060406200019989828a016200011e565b9450506060620001ac89828a0162000131565b9350506080620001bf89828a0162000131565b92505060a0620001d289828a0162000131565b9150509295509295509295565b620001ea81620002a0565b82525050565b620001ea8162000277565b60006200020a6019836200026e565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620002468285620001df565b620002556020830184620001f0565b9392505050565b602080825281016200012b81620001fb565b90815260200190565b60006200012b8262000294565b90565b60006200012b8262000277565b6001600160a01b031690565b60006200012b8262000287565b620002b88162000277565b8114620002c457600080fd5b50565b620002b88162000284565b620002b88162000287565b61498480620002ed6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806379ba509711610130578063981bddf2116100b8578063c799bd5c1161007c578063c799bd5c14610457578063d2b8035a1461046a578063de81eda91461047d578063e1ec3c6814610490578063f93451ed146104b857610227565b8063981bddf21461040e578063a76cdfa514610421578063aa2d8ce314610434578063b562a1ab14610447578063ba2de9bc1461044f57610227565b8063899ffef4116100ff578063899ffef4146103c35780638cd2e0c7146103d85780638da5cb5b146103eb57806390abb4d9146103f3578063925ead111461040657610227565b806379ba5097146103825780637e1323551461038a5780637e9c9b741461039d578063846321a4146103b057610227565b806338245377116101b3578063481c6a7511610182578063481c6a751461033757806353a47bb71461033f5780635eb2ad011461035457806372e18b6a14610367578063741853601461037a57610227565b806338245377146102f65780634065b81b1461030957806341c7380114610311578063441a3e701461032457610227565b80631627540c116101fa5780631627540c1461029357806323d60e2e146102a65780632af64bd3146102b957806330edd961146102ce578063361e2086146102ee57610227565b806304f3bcec1461022c5780630710285c1461024a5780630aebeb4e1461025f5780630efe6a8b14610280575b600080fd5b6102346104cb565b6040516102419190614516565b60405180910390f35b61025d610258366004613a05565b6104da565b005b61027261026d366004613b2e565b610577565b6040516102419291906144cd565b61027261028e366004613a05565b610616565b61025d6102a136600461398f565b610767565b61025d6102b4366004613a52565b6107c5565b6102c161088b565b60405161024191906144a3565b6102e16102dc366004613b2e565b6109a3565b60405161024191906144b1565b6102e16109c1565b6102e1610304366004613b2e565b6109c7565b6102c16109d9565b6102e161031f366004613b2e565b6109e2565b610272610332366004613b6a565b610b01565b610234610ba2565b610347610bb1565b604051610241919061440a565b61025d6103623660046139cb565b610bc0565b6102c1610375366004613a52565b610bf6565b61025d610cba565b61025d610e10565b6102e1610398366004613b6a565b610eac565b6102726103ab366004613b6a565b610f44565b61025d6103be366004613b2e565b610f5d565b6103cb610f9a565b6040516102419190614492565b6102726103e6366004613a05565b61112a565b610347611139565b61025d610401366004613ac2565b611148565b6102e1611194565b61027261041c3660046139cb565b61119a565b61025d61042f366004613b2e565b611233565b6102e1610442366004613b2e565b611270565b6102e1611334565b6102e161133a565b610272610465366004613b2e565b611340565b610272610478366004613b6a565b611365565b61034761048b366004613b2e565b611372565b6104a361049e366004613b2e565b61138d565b604051610241999897969594939291906146fb565b6102e16104c6366004613bb9565b6113e7565b6002546001600160a01b031681565b60006104e7848484611480565b90506104f16117e7565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040161051e92919061445b565b602060405180830381600087803b15801561053857600080fd5b505af115801561054c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105709190810190613ae0565b5050505050565b6000806105843384611803565b90925090506105916117e7565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b81526004016105be92919061445b565b602060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106109190810190613ae0565b50915091565b6000806106216117e7565b6001600160a01b031663dd62ed3e33306040518363ffffffff1660e01b815260040161064e929190614418565b60206040518083038186803b15801561066657600080fd5b505afa15801561067a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061069e9190810190613b4c565b8311156106c65760405162461bcd60e51b81526004016106bd906145e5565b60405180910390fd5b6106ce6117e7565b6001600160a01b03166323b872dd3330866040518463ffffffff1660e01b81526004016106fd93929190614433565b602060405180830381600087803b15801561071757600080fd5b505af115801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061074f9190810190613ae0565b5061075b8585856118f9565b90969095509350505050565b61076f6119ca565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906107ba90839061440a565b60405180910390a150565b6107cd6119ca565b8281146107ec5760405162461bcd60e51b81526004016106bd90614555565b60005b8381101561087c57600085858381811061080557fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101819055925082916008915086868681811061085957fe5b6020908102929092013583525081019190915260400160002055506001016107ef565b50610885610cba565b50505050565b60006060610897610f9a565b905060005b81518110156109995760008282815181106108b357fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906109049085906004016144b1565b60206040518083038186803b15801561091c57600080fd5b505afa158015610930573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061095491908101906139ad565b6001600160a01b031614158061097f57506000818152600360205260409020546001600160a01b0316155b1561099057600093505050506109a0565b5060010161089c565b5060019150505b90565b600781815481106109b057fe5b600091825260209091200154905081565b600c5481565b60086020526000908152604090205481565b600d5460ff1681565b60006109ec6138b1565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152610a776119f6565b6001600160a01b031663fbfeca4082600a546004546040518463ffffffff1660e01b8152600401610aaa939291906146b2565b60206040518083038186803b158015610ac257600080fd5b505afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610afa9190810190613b4c565b9392505050565b600080610b0e8484611a12565b9092509050610b1b6117e7565b6001600160a01b031663a9059cbb33856040518363ffffffff1660e01b8152600401610b4892919061445b565b602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b9a9190810190613ae0565b509250929050565b6006546001600160a01b031681565b6001546001600160a01b031681565b610bc86119ca565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000908414610c0a57506000610cb2565b60005b84811015610cac576000868683818110610c2357fe5b9050602002013590508060078381548110610c3a57fe5b906000526020600020015414610c5557600092505050610cb2565b60078281548110610c6257fe5b906000526020600020015460086000878786818110610c7d57fe5b9050602002013581526020019081526020016000205414610ca357600092505050610cb2565b50600101610c0d565b50600190505b949350505050565b6060610cc4610f9a565b905060005b8151811015610e0c576000828281518110610ce057fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d2291906143ff565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d4e9291906144db565b60206040518083038186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d9e91908101906139ad565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610dfa90849084906144bf565b60405180910390a15050600101610cc9565b5050565b6001546001600160a01b03163314610e3a5760405162461bcd60e51b81526004016106bd90614545565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610e7d926001600160a01b0391821692911690614476565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610eb66119f6565b6001600160a01b0316638a7399758484600a546004546040518563ffffffff1660e01b8152600401610eeb94939291906147e7565b60206040518083038186803b158015610f0357600080fd5b505afa158015610f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f3b9190810190613b4c565b90505b92915050565b600080610f52338585611ab6565b909590945092505050565b610f656119ca565b600b8190556040517fd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d906107ba9083906144b1565b606080610fa5611d4f565b60408051600680825260e08201909252919250606091906020820160c08038833901905050905066119959541bdbdb60ca1b81600081518110610fe457fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061100e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160028151811061103457fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061105d57fe5b6020026020010181815250506814de5b9d1a1cd554d160ba1b8160048151811061108357fe5b6020026020010181815250506d10dbdb1b185d195c985b155d1a5b60921b816005815181106110ae57fe5b60200260200101818152505060606110c68383611da0565b905061112281600780548060200260200160405190810160405280929190818152602001828054801561111857602002820191906000526020600020905b815481526020019060010190808311611104575b5050505050611da0565b935050505090565b60008061075b85338686611e5c565b6000546001600160a01b031681565b6111506119ca565b600d805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916107ba9160ff909116906144a3565b600a5481565b6000806111a56138b1565b5050506000818152600560208181526040928390208351610120810185528154815260018201546001600160a01b0316928101929092526002810154938201849052600381015460608301526004810154608083018190529281015460ff16151560a0830152600681015460c0830152600781015460e08301526008015461010090910152905b9250929050565b61123b6119ca565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c906107ba9083906144b1565b600061127a6138b1565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008909101546101008201526113056119f6565b6001600160a01b031663e99f9647826004546040518363ffffffff1660e01b8152600401610aaa929190614695565b60045481565b600b5481565b60008061134d338461200b565b90925090508015611360576105916117e7565b915091565b600080610f5284846120a2565b6009602052600090815260409020546001600160a01b031681565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460089097015495976001600160a01b0390951696939592949360ff9092169290919089565b60006113f16117e7565b6001600160a01b03166323b872dd3330876040518463ffffffff1660e01b815260040161142093929190614433565b602060405180830381600087803b15801561143a57600080fd5b505af115801561144e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114729190810190613ae0565b50610cb284848460016124e4565b600061148a612b8c565b611492612c2e565b600082116114b25760405162461bcd60e51b81526004016106bd90614685565b60006114be8486612c82565b90506114cf33826003015485612cd6565b600a546114da6119f6565b6001600160a01b031663e99f9647836004546040518363ffffffff1660e01b81526004016115099291906146dd565b60206040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115599190810190613b4c565b106115765760405162461bcd60e51b81526004016106bd90614675565b60006115806119f6565b6001600160a01b031663fbfeca4083600a546004546040518463ffffffff1660e01b81526004016115b3939291906146ec565b60206040518083038186803b1580156115cb57600080fd5b505afa1580156115df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116039190810190613b4c565b905060008482106116145784611616565b815b9050600061163584600601548560040154612d8e90919063ffffffff16565b905080821061165657611649883386612db3565b9550610afa945050505050565b61166533856003015484612cd6565b61166f8483612e24565b6116776119f6565b6001600160a01b0316633c4aa0f38560030154846004546040518463ffffffff1660e01b81526004016116ac939291906144fb565b60206040518083038186803b1580156116c457600080fd5b505afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116fc9190810190613b4c565b6002850154909550611714908663ffffffff61304916565b6002850155600384015460009081526008602052604090205461173690613071565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b815260040161176392919061445b565b600060405180830381600087803b15801561177d57600080fd5b505af1158015611791573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5883385896040516117d49493929190614781565b60405180910390a2505050509392505050565b60006117fe6814de5b9d1a1cd554d160ba1b613078565b905090565b60008061180e612b8c565b611816612c2e565b60006118228486612c82565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061189e906130d5565b6118a9858683613122565b60405191945092506001600160a01b038616907fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f906118e99087906144b1565b60405180910390a2509250929050565b600080611904612b8c565b61190c612c2e565b6000831161192c5760405162461bcd60e51b81526004016106bd90614645565b6000848152600560205260409020600781015461194890613388565b611951816133a5565b6002810154611966908563ffffffff612d8e16565b600282018190556040516001600160a01b038816917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c916119ab9189918991906144fb565b60405180910390a2806004015481600201549250925050935093915050565b6000546001600160a01b031633146119f45760405162461bcd60e51b81526004016106bd906145c5565b565b60006117fe6d10dbdb1b185d195c985b155d1a5b60921b613078565b600080611a1d612b8c565b611a25612c2e565b6000611a318533612c82565b6002810154909150611a49908563ffffffff61304916565b6002820155611a5781613497565b336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330386868460020154604051611a98939291906144fb565b60405180910390a28060040154816002015492509250509250929050565b600080611ac1612b8c565b611ac9612c2e565b6000611ad58587612c82565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152909150611b51906130d5565b60068101546004820154611b6a9163ffffffff612d8e16565b841115611b895760405162461bcd60e51b81526004016106bd906145b5565b611b938185612e24565b600080611b9e6134d0565b6001600160a01b031663f450aa34878560030154631cd554d160e21b6040518463ffffffff1660e01b8152600401611bd8939291906144fb565b60606040518083038186803b158015611bf057600080fd5b505afa158015611c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c289190810190613bda565b5090925090506000611c40838363ffffffff612d8e16565b90506000611c54828463ffffffff612d8e16565b6002860154909150611c6c908263ffffffff61304916565b6002860155611c8283631cd554d160e21b6134e7565b611c8a6117e7565b6001600160a01b0316639dc29fac30836040518363ffffffff1660e01b8152600401611cb7929190614484565b600060405180830381600087803b158015611cd157600080fd5b505af1158015611ce5573d6000803e3d6000fd5b5050426008880155505060048501546040516001600160a01b038c169182917fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f91611d33918e918e916144fb565b60405180910390a3505050506002015492959294509192505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611d9157fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611dd0578160200160208202803883390190505b50905060005b8351811015611e1257838181518110611deb57fe5b6020026020010151828281518110611dff57fe5b6020908102919091010152600101611dd6565b5060005b8251811015611e5557828181518110611e2b57fe5b6020026020010151828286510181518110611e4257fe5b6020908102919091010152600101611e16565b5092915050565b600080611e67612b8c565b611e6f612c2e565b6000848152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152611ef9906130d5565b611f0886826003015486612cd6565b611f11816133a5565b611f1b8185612e24565b6003810154600090815260086020526040902054611f3890613071565b6001600160a01b0316639dc29fac87866040518363ffffffff1660e01b8152600401611f65929190614484565b600060405180830381600087803b158015611f7f57600080fd5b505af1158015611f93573d6000803e3d6000fd5b50505050428160080181905550856001600160a01b0316876001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f87878560040154604051611feb939291906144fb565b60405180910390a380600401548160020154925092505094509492505050565b600080600061201a8486612c82565b9050600061203982600601548360040154612d8e90919063ffffffff16565b9050612046868683611ab6565b90945092506120548261369d565b856001600160a01b03167f70346f402be1b9ee8737498472823400f3a14730d534d309f1d2d365ca7511e6868686604051612091939291906144fb565b60405180910390a250509250929050565b6000806120ad612b8c565b6120b5612c2e565b60006120c18533612c82565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061213d906130d5565b6004810154612152908563ffffffff612d8e16565b600482015561216081613497565b6000612177600c54866136c290919063ffffffff16565b9050600061218b868363ffffffff61304916565b600584015490915060ff161561239857600654600384015460405163e31f27c160e01b81526001600160a01b039092169163e31f27c1916121d0918a906004016144cd565b600060405180830381600087803b1580156121ea57600080fd5b505af11580156121fe573d6000803e3d6000fd5b5050505061220a6117e7565b6001600160a01b031663867904b4336122216136d7565b6001600160a01b031663654a60ac876003015486631cd554d160e21b6040518463ffffffff1660e01b815260040161225b939291906144fb565b60206040518083038186803b15801561227357600080fd5b505afa158015612287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122ab9190810190613b4c565b6040518363ffffffff1660e01b81526004016122c892919061445b565b600060405180830381600087803b1580156122e257600080fd5b505af11580156122f6573d6000803e3d6000fd5b5050505060038301546000908152600960205260409020546001600160a01b0316156123935760038301546000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906123609033908a9060040161445b565b600060405180830381600087803b15801561237a57600080fd5b505af115801561238e573d6000803e3d6000fd5b505050505b61247c565b60065460038401546040516375ca5def60e11b81526001600160a01b039092169163eb94bbde916123cd918a906004016144cd565b600060405180830381600087803b1580156123e757600080fd5b505af11580156123fb573d6000803e3d6000fd5b505050600384015460009081526008602052604090205461241c9150613071565b6001600160a01b031663867904b433836040518363ffffffff1660e01b815260040161244992919061445b565b600060405180830381600087803b15801561246357600080fd5b505af1158015612477573d6000803e3d6000fd5b505050505b61248a8284600301546134e7565b42600884015560405133907f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf358310654906124c4908a908a906144cd565b60405180910390a282600401548360020154945094505050509250929050565b60006124ee612b8c565b6124f6612c2e565b600d5460ff166125185760405162461bcd60e51b81526004016106bd90614635565b6000838152600860205260409020546125435760405162461bcd60e51b81526004016106bd90614565565b61254b6136d7565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b815260040161257691906144b1565b60206040518083038186803b15801561258e57600080fd5b505afa1580156125a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125c69190810190613ae0565b156125e35760405162461bcd60e51b81526004016106bd90614615565b600b548510156126055760405162461bcd60e51b81526004016106bd90614665565b6006546040516302d35b2d60e61b815260009182916001600160a01b039091169063b4d6cb409061263c90899089906004016144cd565b604080518083038186803b15801561265357600080fd5b505afa158015612667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061268b9190810190613afe565b9150915081801561269a575080155b6126b65760405162461bcd60e51b81526004016106bd906145f5565b6126c08786610eac565b8611156126df5760405162461bcd60e51b81526004016106bd90614655565b60006126f6600c54886136c290919063ffffffff16565b9050600061270a888363ffffffff61304916565b9050600660009054906101000a90046001600160a01b03166001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561275c57600080fd5b505af1158015612770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127949190810190613b4c565b60408051610120810182528281523360208083019182528284018e8152606084018d8152608085018f81528d151560a08701908152600060c0880181815260e08901828152426101008b019081528c84526005988990529a9092209851895596516001890180546001600160a01b0319166001600160a01b03909216919091179055935160028801559151600387015551600486015551918401805460ff191692151592909217909155905160068301555160078201559051600882015590955061285e906133a5565b61286882886134e7565b8515612a5b576128766117e7565b6001600160a01b031663867904b43361288d6136d7565b6001600160a01b031663654a60ac8b86631cd554d160e21b6040518463ffffffff1660e01b81526004016128c3939291906144fb565b60206040518083038186803b1580156128db57600080fd5b505afa1580156128ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129139190810190613b4c565b6040518363ffffffff1660e01b815260040161293092919061445b565b600060405180830381600087803b15801561294a57600080fd5b505af115801561295e573d6000803e3d6000fd5b505060065460405163e31f27c160e01b81526001600160a01b03909116925063e31f27c19150612994908a908c906004016144cd565b600060405180830381600087803b1580156129ae57600080fd5b505af11580156129c2573d6000803e3d6000fd5b5050506000888152600960205260409020546001600160a01b0316159050612a56576000878152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a5190612a239033908c9060040161445b565b600060405180830381600087803b158015612a3d57600080fd5b505af1158015612a51573d6000803e3d6000fd5b505050505b612b37565b600087815260086020526040902054612a7390613071565b6001600160a01b031663867904b433836040518363ffffffff1660e01b8152600401612aa092919061445b565b600060405180830381600087803b158015612aba57600080fd5b505af1158015612ace573d6000803e3d6000fd5b50506006546040516375ca5def60e11b81526001600160a01b03909116925063eb94bbde9150612b04908a908c906004016144cd565b600060405180830381600087803b158015612b1e57600080fd5b505af1158015612b32573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a868a8c8b87604051612b78959493929190614802565b60405180910390a250505050949350505050565b612b946136d7565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b8152600401612bc191906144b1565b60206040518083038186803b158015612bd957600080fd5b505afa158015612bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c119190810190613ae0565b156119f45760405162461bcd60e51b81526004016106bd90614615565b612c366136f2565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015612c6e57600080fd5b505afa158015610885573d6000803e3d6000fd5b60008281526005602052604090206007810154612c9e90613388565b60018101546001600160a01b03838116911614612ccd5760405162461bcd60e51b81526004016106bd90614625565b610f3e816133a5565b6000828152600860205260409020548190612cf090613071565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401612d1b919061440a565b60206040518083038186803b158015612d3357600080fd5b505afa158015612d47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d6b9190810190613b4c565b1015612d895760405162461bcd60e51b81526004016106bd906145a5565b505050565b600082820183811015610f3b5760405162461bcd60e51b81526004016106bd90614575565b600080612dc1858585613122565b8092508193505050836001600160a01b0316856001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb85600001548585604051612e14939291906144fb565b60405180910390a3935093915050565b60008111612e445760405162461bcd60e51b81526004016106bd90614685565b600682015415612ea657600082600601548211612e615781612e67565b82600601545b6006840154909150612e7f908263ffffffff61304916565b6006840155612e94828263ffffffff61304916565b9150612ea48184600301546134e7565b505b8015610e0c576004820154612ec1908263ffffffff61304916565b6004830155600582015460ff1615612fde576006546003830154604051635246f2b960e01b81526001600160a01b0390921691635246f2b991612f089185906004016144cd565b600060405180830381600087803b158015612f2257600080fd5b505af1158015612f36573d6000803e3d6000fd5b5050505060038201546000908152600960205260409020546001600160a01b031615612fd957600382015460009081526009602052604090819020546001840154915163f3fef3a360e01b81526001600160a01b039182169263f3fef3a392612fa692911690859060040161445b565b600060405180830381600087803b158015612fc057600080fd5b505af1158015612fd4573d6000803e3d6000fd5b505050505b610e0c565b600654600383015460405163e50a31b360e01b81526001600160a01b039092169163e50a31b3916130139185906004016144cd565b600060405180830381600087803b15801561302d57600080fd5b505af1158015613041573d6000803e3d6000fd5b505050505050565b60008282111561306b5760405162461bcd60e51b81526004016106bd90614595565b50900390565b6000610f3e825b60008181526003602090815260408083205490516001600160a01b0390911691821515916130a8918691016143df565b60405160208183030381529060405290611e555760405162461bcd60e51b81526004016106bd9190614524565b6130e28160e00151613388565b426131016130ef3061370c565b6101008401519063ffffffff612d8e16565b111561311f5760405162461bcd60e51b81526004016106bd90614605565b50565b600080600061314284600601548560040154612d8e90919063ffffffff16565b9050836004015492508360020154915061316185856003015483612cd6565b600384015460009081526008602052604090205461317e90613071565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b81526004016131ab929190614484565b600060405180830381600087803b1580156131c557600080fd5b505af11580156131d9573d6000803e3d6000fd5b50505050600584015460ff16156132f7576006546003850154600480870154604051635246f2b960e01b81526001600160a01b0390941693635246f2b99361322493909291016144cd565b600060405180830381600087803b15801561323e57600080fd5b505af1158015613252573d6000803e3d6000fd5b5050505060038401546000908152600960205260409020546001600160a01b0316156132f25760038401546000908152600960205260409081902054600480870154925163f3fef3a360e01b81526001600160a01b039092169263f3fef3a3926132bf928b929101614484565b600060405180830381600087803b1580156132d957600080fd5b505af11580156132ed573d6000803e3d6000fd5b505050505b613364565b600654600385015460048087015460405163e50a31b360e01b81526001600160a01b039094169363e50a31b39361333193909291016144cd565b600060405180830381600087803b15801561334b57600080fd5b505af115801561335f573d6000803e3d6000fd5b505050505b613376846006015485600301546134e7565b61337f8461369d565b50935093915050565b8061311f5760405162461bcd60e51b81526004016106bd90614585565b600654600782015460038301546005840154604051634002a33360e11b815260009485946001600160a01b03909116936380054666936133ed9360ff909116906004016147bf565b6040805180830381600087803b15801561340657600080fd5b505af115801561341a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061343e9190810190613b89565b915091506000836007015460001461346a576004840154613465908463ffffffff6137df16565b61346d565b60005b6006850154909150613485908263ffffffff612d8e16565b60068501555060079092019190915550565b60048101546134a55761311f565b600a5481546134b390611270565b1161311f5760405162461bcd60e51b81526004016106bd90614535565b60006117fe6822bc31b430b733b2b960b91b613078565b8115610e0c57631cd554d160e21b811461358c576135036136d7565b6001600160a01b031663654a60ac8284631cd554d160e21b6040518463ffffffff1660e01b8152600401613539939291906144fb565b60206040518083038186803b15801561355157600080fd5b505afa158015613565573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135899190810190613b4c565b91505b6135946117e7565b6001600160a01b031663867904b46135aa613809565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b1580156135e257600080fd5b505afa1580156135f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061361a91908101906139ad565b846040518363ffffffff1660e01b8152600401613638929190614484565b600060405180830381600087803b15801561365257600080fd5b505af1158015613666573d6000803e3d6000fd5b50505050613672613809565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b815260040161301391906144b1565b6000600482018190556002820181905560068201819055600782015542600890910155565b6000610f3b8383670de0b6b3a764000061381e565b60006117fe6c45786368616e6765526174657360981b613078565b60006117fe6b53797374656d53746174757360a01b613078565b600061371661385a565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f696e746572616374696f6e44656c617960801b8560405160200161375c9291906143b9565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161378f9291906144cd565b60206040518083038186803b1580156137a757600080fd5b505afa1580156137bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f3e9190810190613b4c565b6000670de0b6b3a76400006137fa848463ffffffff61387716565b8161380157fe5b049392505050565b60006117fe66119959541bdbdb60ca1b613078565b600080600a8304613835868663ffffffff61387716565b8161383c57fe5b0490506005600a82061061384e57600a015b600a9004949350505050565b60006117fe6e466c657869626c6553746f7261676560881b613078565b60008261388657506000610f3e565b8282028284828161389357fe5b0414610f3b5760405162461bcd60e51b81526004016106bd906145d5565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035610f3e8161491b565b8051610f3e8161491b565b60008083601f84011261393357600080fd5b50813567ffffffffffffffff81111561394b57600080fd5b60208301915083602082028301111561122c57600080fd5b8035610f3e8161492f565b8051610f3e8161492f565b8035610f3e81614938565b8051610f3e81614938565b6000602082840312156139a157600080fd5b6000610cb2848461390b565b6000602082840312156139bf57600080fd5b6000610cb28484613916565b600080604083850312156139de57600080fd5b60006139ea858561390b565b92505060206139fb85828601613979565b9150509250929050565b600080600060608486031215613a1a57600080fd5b6000613a26868661390b565b9350506020613a3786828701613979565b9250506040613a4886828701613979565b9150509250925092565b60008060008060408587031215613a6857600080fd5b843567ffffffffffffffff811115613a7f57600080fd5b613a8b87828801613921565b9450945050602085013567ffffffffffffffff811115613aaa57600080fd5b613ab687828801613921565b95989497509550505050565b600060208284031215613ad457600080fd5b6000610cb28484613963565b600060208284031215613af257600080fd5b6000610cb2848461396e565b60008060408385031215613b1157600080fd5b6000613b1d858561396e565b92505060206139fb8582860161396e565b600060208284031215613b4057600080fd5b6000610cb28484613979565b600060208284031215613b5e57600080fd5b6000610cb28484613984565b60008060408385031215613b7d57600080fd5b60006139ea8585613979565b60008060408385031215613b9c57600080fd5b6000613ba88585613984565b92505060206139fb85828601613984565b600080600060608486031215613bce57600080fd5b6000613a268686613979565b600080600060608486031215613bef57600080fd5b6000613bfb8686613984565b9350506020613c0c86828701613984565b9250506040613a4886828701613984565b6000613c298383613cbc565b505060200190565b613c3a81614888565b82525050565b613c3a81614878565b613c3a613c5582614878565b6148fa565b6000613c6582614854565b613c6f8185614858565b9350613c7a8361484e565b8060005b83811015613ca8578151613c928882613c1d565b9750613c9d8361484e565b925050600101613c7e565b509495945050505050565b613c3a81614883565b613c3a816109a0565b613c3a613cd1826109a0565b6109a0565b613c3a8161488f565b6000613cea82614854565b613cf48185614858565b9350613d0481856020860161489a565b613d0d8161490b565b9093019392505050565b6000613d24600e83614858565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b6000613d4e603583614858565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000613da5601583614858565b74082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b815260200192915050565b6000613dd6601483614858565b734e6f7420616c6c6f77656420746f20697373756560601b815260200192915050565b6000613e06601b83614858565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613e3f600e83614858565b6d131bd85b881a5cc818db1bdcd95960921b815260200192915050565b6000613e69601e83614858565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613ea2601183614861565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000613ecf601283614858565b714e6f7420656e6f7567682062616c616e636560701b815260200192915050565b6000613efd601083614858565b6f0a0c2f2dacadce840e8dede40d0d2ced60831b815260200192915050565b6000613f29602f83614858565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613f7a602183614858565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613fbd601183614858565b70416c6c6f77616e636520746f6f206c6f7760781b815260200192915050565b6000613fea601a83614858565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b6000614023601383614858565b72149958d95b9d1b1e481a5b9d195c9858dd1959606a1b815260200192915050565b6000614052601983614861565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061408b600c83614858565b6b496e76616c6964207261746560a01b815260200192915050565b60006140b3601083614858565b6f26bab9ba103132903137b93937bbb2b960811b815260200192915050565b60006140df600d83614858565b6c13dc195b88191a5cd8589b1959609a1b815260200192915050565b6000614108601783614858565b7f4465706f736974206d7573742062652061626f76652030000000000000000000815260200192915050565b6000614141601783614858565b7f457863656564206d617820626f72726f7720706f776572000000000000000000815260200192915050565b600061417a601583614858565b74139bdd08195b9bdd59da0818dbdb1b185d195c985b605a1b815260200192915050565b60006141ab601683614858565b7543726174696f2061626f7665206c697120726174696f60501b815260200192915050565b60006141dd601783614858565b7f5061796d656e74206d7573742062652061626f76652030000000000000000000815260200192915050565b805161012083019061421b8482613cbc565b50602082015161422e6020850182613c40565b5060408201516142416040850182613cbc565b5060608201516142546060850182613cbc565b5060808201516142676080850182613cbc565b5060a082015161427a60a0850182613cb3565b5060c082015161428d60c0850182613cbc565b5060e08201516142a060e0850182613cbc565b50610100820151610885610100850182613cbc565b80546101208301906142c6816148ec565b6142d08582613cbc565b505060018201546142e0816148c6565b6142ed6020860182613c40565b505060028201546142fd816148ec565b61430a6040860182613cbc565b5050600382015461431a816148ec565b6143276060860182613cbc565b50506004820154614337816148ec565b6143446080860182613cbc565b50506005820154614354816148d9565b61436160a0860182613cb3565b50506006820154614371816148ec565b61437e60c0860182613cbc565b5050600782015461438e816148ec565b61439b60e0860182613cbc565b505060088201546143ab816148ec565b610570610100860182613cbc565b60006143c58285613cc5565b6020820191506143d58284613c49565b5060140192915050565b60006143ea82613e95565b91506143f68284613cc5565b50602001919050565b60006143ea82614045565b60208101610f3e8284613c40565b604081016144268285613c31565b610afa6020830184613c40565b606081016144418286613c31565b61444e6020830185613c40565b610cb26040830184613cbc565b604081016144698285613c31565b610afa6020830184613cbc565b604081016144268285613c40565b604081016144698285613c40565b60208082528101610f3b8184613c5a565b60208101610f3e8284613cb3565b60208101610f3e8284613cbc565b604081016144268285613cbc565b604081016144698285613cbc565b604081016144e98285613cbc565b8181036020830152610cb28184613cdf565b606081016145098286613cbc565b61444e6020830185613cbc565b60208101610f3e8284613cd6565b60208082528101610f3b8184613cdf565b60208082528101610f3e81613d17565b60208082528101610f3e81613d41565b60208082528101610f3e81613d98565b60208082528101610f3e81613dc9565b60208082528101610f3e81613df9565b60208082528101610f3e81613e32565b60208082528101610f3e81613e5c565b60208082528101610f3e81613ec2565b60208082528101610f3e81613ef0565b60208082528101610f3e81613f1c565b60208082528101610f3e81613f6d565b60208082528101610f3e81613fb0565b60208082528101610f3e81613fdd565b60208082528101610f3e81614016565b60208082528101610f3e8161407e565b60208082528101610f3e816140a6565b60208082528101610f3e816140d2565b60208082528101610f3e816140fb565b60208082528101610f3e81614134565b60208082528101610f3e8161416d565b60208082528101610f3e8161419e565b60208082528101610f3e816141d0565b61014081016146a48285614209565b610afa610120830184613cbc565b61016081016146c18286614209565b6146cf610120830185613cbc565b610cb2610140830184613cbc565b61014081016146a482856142b5565b61016081016146c182866142b5565b610120810161470a828c613cbc565b614717602083018b613c40565b614724604083018a613cbc565b6147316060830189613cbc565b61473e6080830188613cbc565b61474b60a0830187613cb3565b61475860c0830186613cbc565b61476560e0830185613cbc565b614773610100830184613cbc565b9a9950505050505050505050565b6080810161478f8287613cbc565b61479c6020830186613c31565b6147a96040830185613cbc565b6147b66060830184613cbc565b95945050505050565b606081016147cd8286613cbc565b6147da6020830185613cbc565b610cb26040830184613cb3565b608081016147f58287613cbc565b61479c6020830186613cbc565b60a081016148108288613cbc565b61481d6020830187613cbc565b61482a6040830186613cbc565b6148376060830185613cbc565b6148446080830184613cbc565b9695505050505050565b60200190565b5190565b90815260200190565b919050565b6001600160a01b031690565b60ff1690565b6000610f3e82614866565b151590565b6000610f3e825b6000610f3e82614878565b60005b838110156148b557818101518382015260200161489d565b838111156108855750506000910152565b6000610f3e6148d4836109a0565b614866565b6000610f3e6148e7836109a0565b614872565b6000610f3e613cd1836109a0565b6000610f3e826000610f3e82614915565b601f01601f191690565b60601b90565b61492481614878565b811461311f57600080fd5b61492481614883565b614924816109a056fea365627a7a7231582008ec1721c55cb3cb1b37ab8b740b45d03240683b3b46db9012909df15539935e6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ICollateralManager",
							"name": "_manager",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_collateralKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canOpenLoans",
							"type": "bool"
						}
					],
					"name": "CanOpenLoansUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountDeposited",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByRepayment",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issuanceFee",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanDrawnDown",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "repayer",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfter",
							"type": "uint256"
						}
					],
					"name": "LoanRepaymentMade",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCollateral",
							"type": "uint256"
						}
					],
					"name": "MinCollateralUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "rewardsContract",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "addRewardsContracts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areSynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "canOpenLoans",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "close",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "closeWithCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "collateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "draw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "getShortAndCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "liquidate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "liqAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "loans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address payable",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "short",
							"type": "bool"
						},
						{
							"internalType": "uint256",
							"name": "accruedInterest",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "interestIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastInteraction",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "manager",
					"outputs": [
						{
							"internalType": "contract ICollateralManager",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCratio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "open",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repayWithCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_canOpenLoans",
							"type": "bool"
						}
					],
					"name": "setCanOpenLoans",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"name": "setMinCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortingRewards",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x245135b67168b129937d6e9526846712ff4ff9739077f2fabab67315a3cf3a45",
				"urls": [
					"bzz-raw://e16f85ecec3ba91e9fcd3506bf5354991f3b9a3dbd7fdd3993698e8e3e783b16",
					"dweb:/ipfs/QmeWyJzovRk9zBJ1bm8L7kNvhNXeXRZeMvGWhBs5ZcrzS6"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralShort.sol": "CollateralShort"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralShort.sol": {
						"keccak256": "0x245135b67168b129937d6e9526846712ff4ff9739077f2fabab67315a3cf3a45",
						"urls": [
							"bzz-raw://e16f85ecec3ba91e9fcd3506bf5354991f3b9a3dbd7fdd3993698e8e3e783b16",
							"dweb:/ipfs/QmeWyJzovRk9zBJ1bm8L7kNvhNXeXRZeMvGWhBs5ZcrzS6"
						]
					}
				},
				"version": 1
			}
		},
		"WrapperFactory": {
			"bytecode": "608060405234801561001057600080fd5b506040516135553803806135558339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050613431806101246000396000f3fe608060405260043610620000d45760003560e01c806375d920a9116200008b5780638da5cb5b11620000615780638da5cb5b14620002ae578063a106935d14620002c6578063bb57ad201462000309578063e0aa2797146200032157620000d4565b806375d920a9146200021457806379ba5097146200022c578063899ffef4146200024457620000d4565b806304f3bcec14620001215780631627540c14620001555780632af64bd3146200018e57806353a47bb714620001ba578063614d08f814620001d25780637418536014620001fc575b6040805162461bcd60e51b815260206004820152601760248201527f436f6e7472616374206973206e6f742070617961626c65000000000000000000604482015290519081900360640190fd5b3480156200012e57600080fd5b506200013962000358565b604080516001600160a01b039092168252519081900360200190f35b3480156200016257600080fd5b506200018c600480360360208110156200017b57600080fd5b50356001600160a01b031662000367565b005b3480156200019b57600080fd5b50620001a6620003c5565b604080519115158252519081900360200190f35b348015620001c757600080fd5b5062000139620004db565b348015620001df57600080fd5b50620001ea620004ea565b60408051918252519081900360200190f35b3480156200020957600080fd5b506200018c620004ff565b3480156200022157600080fd5b50620001ea620006d2565b3480156200023957600080fd5b506200018c62000767565b3480156200025157600080fd5b506200025c62000825565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200029a57818101518382015260200162000280565b505050509050019250505060405180910390f35b348015620002bb57600080fd5b5062000139620008c3565b348015620002d357600080fd5b506200013960048036036060811015620002ec57600080fd5b506001600160a01b038135169060208101359060400135620008d2565b3480156200031657600080fd5b506200018c62000a8a565b3480156200032e57600080fd5b50620001a6600480360360208110156200034757600080fd5b50356001600160a01b031662000bff565b6002546001600160a01b031681565b6200037162000caa565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006060620003d362000825565b905060005b8151811015620004d1576000828281518110620003f157fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156200045a57600080fd5b505afa1580156200046f573d6000803e3d6000fd5b505050506040513d60208110156200048657600080fd5b50516001600160a01b0316141580620004b457506000818152600360205260409020546001600160a01b0316155b15620004c75760009350505050620004d8565b50600101620003d8565b5060019150505b90565b6001546001600160a01b031681565b6d57726170706572466163746f727960901b81565b60606200050b62000825565b905060005b8151811015620006ce5760008282815181106200052957fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015620005e1578181015183820152602001620005c7565b50505050905090810190601f1680156200060f5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156200062e57600080fd5b505afa15801562000643573d6000803e3d6000fd5b505050506040513d60208110156200065a57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a1505060010162000510565b5050565b6000620006de62000cf7565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156200073457600080fd5b505afa15801562000749573d6000803e3d6000fd5b505050506040513d60208110156200076057600080fd5b5051905090565b6001546001600160a01b03163314620007b25760405162461bcd60e51b8152600401808060200182810382526035815260200180620033996035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b604080516003808252608082019092526060916020820183803883390190505090506814de5b9d1a1cd554d160ba1b816000815181106200086257fe5b6020026020010181815250506e466c657869626c6553746f7261676560881b816001815181106200088f57fe5b60200260200101818152505066119959541bdbdb60ca1b81600281518110620008b457fe5b60200260200101818152505090565b6000546001600160a01b031681565b6000620008de62000caa565b600080546002546040516001600160a01b039283169290911690879087908790620009099062000e2e565b6001600160a01b0395861681529385166020850152919093166040808401919091526060830193909352608082015290519081900360a001906000f08015801562000958573d6000803e3d6000fd5b509050806001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200099757600080fd5b505af1158015620009ac573d6000803e3d6000fd5b50505050620009ba62000d15565b60408051631d5b277f60e01b81526d57726170706572466163746f727960901b60048201526001600160a01b0384811660248301526001604483015291519290911691631d5b277f9160648082019260009290919082900301818387803b15801562000a2557600080fd5b505af115801562000a3a573d6000803e3d6000fd5b5050604080516001600160a01b038581168252915188945091891692507f8aba3d0a3cbd86bcfc8d4d553823cb5030939fb35208794c1ca597046b2b561e919081900360200190a3949350505050565b600062000a96620006d2565b9050801562000bfc57600062000aab62000cf7565b6001600160a01b031663a9059cbb62000ac362000d34565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801562000afc57600080fd5b505afa15801562000b11573d6000803e3d6000fd5b505050506040513d602081101562000b2857600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018690525160448083019260209291908290030181600087803b15801562000b7957600080fd5b505af115801562000b8e573d6000803e3d6000fd5b505050506040513d602081101562000ba557600080fd5b5051905080620006ce576040805162461bcd60e51b815260206004820152601860248201527f5472616e7366657220646964206e6f7420737563636565640000000000000000604482015290519081900360640190fd5b50565b60008062000c0c62000d15565b6001600160a01b03166323257c2b6d57726170706572466163746f727960901b856001600160a01b031660001b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801562000c7557600080fd5b505afa15801562000c8a573d6000803e3d6000fd5b505050506040513d602081101562000ca157600080fd5b50511192915050565b6000546001600160a01b0316331462000cf55760405162461bcd60e51b815260040180806020018281038252602f815260200180620033ce602f913960400191505060405180910390fd5b565b600062000d106814de5b9d1a1cd554d160ba1b62000d46565b905090565b600062000d106e466c657869626c6553746f7261676560881b62000d46565b600062000d1066119959541bdbdb60ca1b5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b0316908162000e275760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000deb57818101518382015260200162000dd1565b50505050905090810190601f16801562000e195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b61255c8062000e3d8339019056fe60806040523480156200001157600080fd5b506040516200255c3803806200255c833981810160405260a08110156200003757600080fd5b508051602082015160408301516060840151608090940151929391929091908380866001600160a01b038116620000b5576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b031662000160576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b60038054610100600160a81b0319166101006001600160a01b0393841602179055600580546001600160a01b031916868316179081905560068590556007849055600060088190556040805163095ea7b360e01b81523060048201526000196024820152905192909316935063095ea7b392604480820193602093909283900390910190829087803b158015620001f657600080fd5b505af11580156200020b573d6000803e3d6000fd5b505050506040513d60208110156200022257600080fd5b5050505050505061232380620002396000396000f3fe6080604052600436106101665760003560e01c80635c975abb116100d15780638a926d0f1161008a578063a0712d6811610064578063a0712d681461048d578063dbd06c85146104b7578063ee5f3f5c146104cc578063fc0c546a146104e157610166565b80638a926d0f1461044e5780638da5cb5b1461046357806391b4ded91461047857610166565b80635c975abb1461036b5780635cfc1a51146103805780636ad882691461039557806374185360146103bf57806379ba5097146103d4578063899ffef4146103e957610166565b80631f23a352116101235780631f23a352146102965780632af64bd3146102ab57806342966c68146102d4578063509bf42a146102fe57806353a47bb7146103135780635c095e541461032857610166565b806304f3bcec146101b35780630902f1ac146101e45780631627540c1461020b57806316c38b3c1461024057806317c943bc1461026c57806318819a3114610281575b6040805162461bcd60e51b815260206004820152601d60248201527f46616c6c6261636b2064697361626c65642c20757365206d696e742829000000604482015290519081900360640190fd5b3480156101bf57600080fd5b506101c86104f6565b604080516001600160a01b039092168252519081900360200190f35b3480156101f057600080fd5b506101f961050a565b60408051918252519081900360200190f35b34801561021757600080fd5b5061023e6004803603602081101561022e57600080fd5b50356001600160a01b0316610587565b005b34801561024c57600080fd5b5061023e6004803603602081101561026357600080fd5b503515156105e3565b34801561027857600080fd5b506101f961065d565b34801561028d57600080fd5b506101f9610663565b3480156102a257600080fd5b506101f9610673565b3480156102b757600080fd5b506102c0610679565b604080519115158252519081900360200190f35b3480156102e057600080fd5b5061023e600480360360208110156102f757600080fd5b5035610789565b34801561030a57600080fd5b506101f9610c73565b34801561031f57600080fd5b506101c8610c7e565b34801561033457600080fd5b506103526004803603602081101561034b57600080fd5b5035610c8d565b6040805192835290151560208301528051918290030190f35b34801561037757600080fd5b506102c0610ce2565b34801561038c57600080fd5b506101f9610ceb565b3480156103a157600080fd5b50610352600480360360208110156103b857600080fd5b5035610d2d565b3480156103cb57600080fd5b5061023e610d3a565b3480156103e057600080fd5b5061023e610f17565b3480156103f557600080fd5b506103fe610fd3565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561043a578181015183820152602001610422565b505050509050019250505060405180910390f35b34801561045a57600080fd5b506101f96110f5565b34801561046f57600080fd5b506101c8611100565b34801561048457600080fd5b506101f961110f565b34801561049957600080fd5b5061023e600480360360208110156104b057600080fd5b5035611115565b3480156104c357600080fd5b506101f961156f565b3480156104d857600080fd5b506101f9611575565b3480156104ed57600080fd5b506101c86115dd565b60035461010090046001600160a01b031681565b600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561055557600080fd5b505afa158015610569573d6000803e3d6000fd5b505050506040513d602081101561057f57600080fd5b505190505b90565b61058f6115ec565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6105eb6115ec565b60035460ff16151581151514156106015761065a565b6003805460ff1916821515179081905560ff161561061e57426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60085481565b600061066e30611637565b905090565b60075481565b60006060610685610fd3565b905060005b81518110156107805760008282815181106106a157fe5b602090810291909101810151600081815260048084526040918290205460035483516321f8a72160e01b815292830185905292519395506001600160a01b039081169461010090930416926321f8a72192602480840193919291829003018186803b15801561070f57600080fd5b505afa158015610723573d6000803e3d6000fd5b505050506040513d602081101561073957600080fd5b50516001600160a01b031614158061076657506000818152600460205260409020546001600160a01b0316155b156107775760009350505050610584565b5060010161068a565b50600191505090565b60035460ff16156107cb5760405162461bcd60e51b815260040180806020018281038252603c815260200180612258603c913960400191505060405180910390fd5b6107d3611727565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561080b57600080fd5b505afa15801561081f573d6000803e3d6000fd5b5050505061082b611741565b6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561088057600080fd5b505afa158015610894573d6000803e3d6000fd5b505050506040513d60208110156108aa57600080fd5b50518111156108f5576040805162461bcd60e51b815260206004820152601260248201527142616c616e636520697320746f6f206c6f7760701b604482015290519081900360640190fd5b6108fd61174e565b6001600160a01b0316632528f0fe6006546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561094257600080fd5b505afa158015610956573d6000803e3d6000fd5b505050506040513d602081101561096c57600080fd5b5051156109bb576040805162461bcd60e51b815260206004820152601860248201527710dd5c9c995b98de481c985d19481a5cc81a5b9d985b1a5960421b604482015290519081900360640190fd5b60006109c5611575565b11610a015760405162461bcd60e51b81526004018080602001828103825260358152602001806122ba6035913960400191505060405180910390fd5b600080610a0f600854610d2d565b915091506000808215610ad1578460085410610a2b5784610a3e565b600854610a3e908563ffffffff61176916565b9150610aca610a4b610c73565b73__$b638afe8340e430a394ced2a8f566f670f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8f57600080fd5b505af4158015610aa3573d6000803e3d6000fd5b505050506040513d6020811015610ab957600080fd5b50518491900363ffffffff6117cb16565b9050610b92565b6008548590610ae6908663ffffffff6117f516565b10610af15784610b04565b600854610b04908563ffffffff6117f516565b9150610b8f610b11610c73565b73__$b638afe8340e430a394ced2a8f566f670f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5557600080fd5b505af4158015610b69573d6000803e3d6000fd5b505050506040513d6020811015610b7f57600080fd5b505184910163ffffffff61185616565b90505b600083610bae57610ba9838363ffffffff61176916565b610bb1565b60005b600554909150600090610bcf906001600160a01b0316303386611880565b905080610c1e576040805162461bcd60e51b8152602060048201526018602482015277151c985b9cd9995c88191a59081b9bdd081cdd58d8d9595960421b604482015290519081900360640190fd5b610c2784611925565b6040805184815260208101849052808201869052905133917f4c60206a5c1de41f3376d1d60f0949d96cb682033c90b1c2d9d9a62d4c4120c0919081900360600190a250505050505050565b600061066e30611b2b565b6001546001600160a01b031681565b6000806000610c9a610663565b90506000811215610cc557610cb984600083900363ffffffff611be916565b60019250925050610cdd565b610cd5848263ffffffff611be916565b600092509250505b915091565b60035460ff1681565b600080610cf661050a565b90506000610d026110f5565b9050808210610d1657600092505050610584565b610d26818363ffffffff61176916565b9250505090565b6000806000610c9a610c73565b6060610d44610fd3565b905060005b8151811015610f13576000828281518110610d6057fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e2b578181015183820152602001610e13565b50505050905090810190601f168015610e585780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610e7657600080fd5b505afa158015610e8a573d6000803e3d6000fd5b505050506040513d6020811015610ea057600080fd5b505160008381526004602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610d49565b5050565b6001546001600160a01b03163314610f605760405162461bcd60e51b81526004018080602001828103825260358152602001806121d36035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610fde611bfe565b60408051600680825260e08201909252919250606091906020820160c0803883390190505090506814de5b9d1a1cd554d160ba1b8160008151811061101f57fe5b6020026020010181815250506007548160018151811061103b57fe5b6020026020010181815250506c45786368616e6765526174657360981b8160028151811061106557fe5b6020026020010181815250506844656274436163686560b81b8160038151811061108b57fe5b6020026020010181815250506b53797374656d53746174757360a01b816004815181106110b457fe5b6020026020010181815250506d57726170706572466163746f727960901b816005815181106110df57fe5b602002602001018181525050610d268282611c4f565b600061066e30611d0b565b6000546001600160a01b031681565b60025481565b60035460ff16156111575760405162461bcd60e51b815260040180806020018281038252603c815260200180612258603c913960400191505060405180910390fd5b61115f611727565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561119757600080fd5b505afa1580156111ab573d6000803e3d6000fd5b505060055460408051636eb1769f60e11b815233600482015230602482015290516001600160a01b03909216935063dd62ed3e9250604480820192602092909190829003018186803b15801561120057600080fd5b505afa158015611214573d6000803e3d6000fd5b505050506040513d602081101561122a57600080fd5b5051811115611280576040805162461bcd60e51b815260206004820152601960248201527f416c6c6f77616e6365206e6f74206869676820656e6f75676800000000000000604482015290519081900360640190fd5b600554604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156112cb57600080fd5b505afa1580156112df573d6000803e3d6000fd5b505050506040513d60208110156112f557600080fd5b5051811115611340576040805162461bcd60e51b815260206004820152601260248201527142616c616e636520697320746f6f206c6f7760701b604482015290519081900360640190fd5b61134861174e565b6001600160a01b0316632528f0fe6006546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d60208110156113b757600080fd5b505115611406576040805162461bcd60e51b815260206004820152601860248201527710dd5c9c995b98de481c985d19481a5cc81a5b9d985b1a5960421b604482015290519081900360640190fd5b6000611410610ceb565b9050600081116114515760405162461bcd60e51b81526004018080602001828103825260268152602001806122946026913960400191505060405180910390fd5b60008282106114605782611462565b815b905060008061147083610c8d565b915091506000816114905761148b848463ffffffff61176916565b6114a0565b6114a0848463ffffffff6117f516565b6005549091506000906114be906001600160a01b0316333088611880565b90508061150d576040805162461bcd60e51b8152602060048201526018602482015277151c985b9cd9995c88191a59081b9bdd081cdd58d8d9595960421b604482015290519081900360640190fd5b61151682611dc7565b337f5a3358a3d27a5373c0df2604662088d37894d56b7cfd27f315770440f4e0d91983856115445786611547565b60005b604080519283526020830191909152818101899052519081900360600190a250505050505050565b60065481565b600061157f61174e565b6001600160a01b031663654a60ac600654600854631cd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561055557600080fd5b6005546001600160a01b031681565b6000546001600160a01b031633146116355760405162461bcd60e51b815260040180806020018281038252602f815260200180612208602f913960400191505060405180910390fd5b565b6000611641611f18565b6001600160a01b031663c4f610ed6d53797374656d53657474696e677360901b71777261707065724d696e744665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116f557600080fd5b505afa158015611709573d6000803e3d6000fd5b505050506040513d602081101561171f57600080fd5b505192915050565b600061066e6b53797374656d53746174757360a01b611f31565b600061066e600754611f31565b600061066e6c45786368616e6765526174657360981b611f31565b6000828211156117c0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000670de0b6b3a76400006117e6848463ffffffff61200e16565b816117ed57fe5b049392505050565b60008282018381101561184f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061184f8261187485670de0b6b3a764000063ffffffff61200e16565b9063ffffffff61206716565b604080516001600160a01b038086166024830152841660448201526064808201849052825180830390910181526084909101909152602081810180516001600160e01b03166323b872dd60e01b178152825160ff60009081529392909184908390828b5af16118ee57600080fd5b60005160ff811461190c576001811461190c57801561191557600080fd5b6001935061191a565b600093505b505050949350505050565b600061192f61050a565b600854909150600090611948838563ffffffff6117f516565b11611954576000611977565b6008546119779061196b848663ffffffff6117f516565b9063ffffffff61176916565b9050600061198361174e565b6001600160a01b031663654a60ac60065484631cd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b50519050611a15611741565b6001600160a01b0316639dc29fac33866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b505050506000811115611b1c57611a9d6120d1565b6001600160a01b031663867904b4611ab36120e8565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611b0357600080fd5b505af1158015611b17573d6000803e3d6000fd5b505050505b611b2583612104565b50505050565b6000611b35611f18565b6001600160a01b031663c4f610ed6d53797374656d53657474696e677360901b71777261707065724275726e4665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116f557600080fd5b600061184f8383670de0b6b3a764000061217f565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611c4057fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611c7f578160200160208202803883390190505b50905060005b8351811015611cc157838181518110611c9a57fe5b6020026020010151828281518110611cae57fe5b6020908102919091010152600101611c85565b5060005b8251811015611d0457828181518110611cda57fe5b6020026020010151828286510181518110611cf157fe5b6020908102919091010152600101611cc5565b5092915050565b6000611d15611f18565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f777261707065724d6178546f6b656e7360801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116f557600080fd5b6000611dd161050a565b90506000611dea836008546117f590919063ffffffff16565b8211611df7576000611e1b565b600854611e1b90611e0e908563ffffffff6117f516565b839063ffffffff61176916565b90506000611e2761174e565b6001600160a01b031663654a60ac60065484631cd554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015611e8357600080fd5b505afa158015611e97573d6000803e3d6000fd5b505050506040513d6020811015611ead57600080fd5b50519050611eb9611741565b6001600160a01b031663867904b433866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611a7457600080fd5b600061066e6e466c657869626c6553746f7261676560881b5b600081815260046020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611d045760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fd3578181015183820152602001611fbb565b50505050905090810190601f1680156120005780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60008261201d575060006117c5565b8282028284828161202a57fe5b041461184f5760405162461bcd60e51b81526004018080602001828103825260218152602001806122376021913960400191505060405180910390fd5b60008082116120bd576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816120c857fe5b04949350505050565b600061066e6814de5b9d1a1cd554d160ba1b611f31565b600061066e6d57726170706572466163746f727960901b611f31565b61210c6121bb565b6001600160a01b0316639e3b92ca60065460085484036040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561215f57600080fd5b505af1158015612173573d6000803e3d6000fd5b50505060089190915550565b600080600a8304612196868663ffffffff61200e16565b8161219d57fe5b0490506005600a8206106121af57600a015b600a9004949350505050565b600061066e6844656274436163686560b81b611f3156fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e747261637420697320706175736564436f6e747261637420686173206e6f20737061726520636170616369747920746f206d696e74436f6e74726163742063616e6e6f74206275726e20666f7220746f6b656e2c20746f6b656e2062616c616e6365206973207a65726fa265627a7a72315820a4a10d85c707bcbaf53a80a679c2465266162fe35b377e6b8360036004afc38e64736f6c63430005100032596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820389b20616fbd648646f2eabc9039e3a34d21fd0baea43bc61609f135762f668f64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "wrapperAddress",
							"type": "address"
						}
					],
					"name": "WrapperCreated",
					"type": "event"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IERC20",
							"name": "token",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "synthContractName",
							"type": "bytes32"
						}
					],
					"name": "createWrapper",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "distributeFees",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feesEscrowed",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "possibleWrapper",
							"type": "address"
						}
					],
					"name": "isWrapper",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x582cac91f50cfefc154d67097081d0dd0d4877333df51c3cfe19485f80ef7e74",
				"urls": [
					"bzz-raw://315555f29d5cf1602830af23bf1c97d8259d7ad3103590d1094b9c942affe69e",
					"dweb:/ipfs/QmXmVJg9JYtL3VSHFpC6WTh4CLcVm9WDDTmCoSMVxPzAHc"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"WrapperFactory.sol": "WrapperFactory"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"WrapperFactory.sol": {
						"keccak256": "0x582cac91f50cfefc154d67097081d0dd0d4877333df51c3cfe19485f80ef7e74",
						"urls": [
							"bzz-raw://315555f29d5cf1602830af23bf1c97d8259d7ad3103590d1094b9c942affe69e",
							"dweb:/ipfs/QmXmVJg9JYtL3VSHFpC6WTh4CLcVm9WDDTmCoSMVxPzAHc"
						]
					}
				},
				"version": 1
			}
		},
		"Issuer": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620061a2380380620061a28339810160408190526200003491620000fc565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001b8565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000192565b60405180910390a150600280546001600160a01b0319166001600160a01b03929092169190911790555062000213915050565b8051620000f681620001f9565b92915050565b600080604083850312156200011057600080fd5b60006200011e8585620000e9565b92505060206200013185828601620000e9565b9150509250929050565b6200014681620001e5565b82525050565b6200014681620001d3565b600062000166601983620001ca565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a282856200013b565b620001b160208301846200014c565b9392505050565b60208082528101620000f68162000157565b90815260200190565b60006001600160a01b038216620000f6565b6000620000f6826000620000f682620001d3565b6200020481620001d3565b81146200021057600080fd5b50565b615f7f80620002236000396000f3fe608060405234801561001057600080fd5b50600436106102d65760003560e01c80637168d2c211610182578063a311c7c2116100e9578063c81ff8fa116100a2578063d686c06c1161007c578063d686c06c14610633578063dbf6334014610646578063dd3d2b2e1461064e578063fd864ccf14610661576102d6565b8063c81ff8fa146105fa578063c89771321461060d578063d37c4d8b14610620576102d6565b8063a311c7c214610593578063a5fdc5de146105a6578063ae3bbbbb146105b9578063b06e8c65146105cc578063b410a034146105df578063bff4fdfc146105e7576102d6565b8063835e119c1161013b578063835e119c14610537578063849cf5881461054a578063890235d41461055d578063899ffef4146105705780638da5cb5b146105785780639a5154b414610580576102d6565b80637168d2c2146104cb57806372c65816146104de57806372cb051f146104ff578063741853601461051457806379ba50971461051c5780637b1001b714610524576102d6565b80632b3f41aa11610241578063461ee763116101fa5780634e99bda9116101d45780634e99bda91461048557806353a47bb71461048d578063614d08f8146104a25780636bed0415146104aa576102d6565b8063461ee7631461044c57806347a9b6db1461045f578063497d704a14610472576102d6565b80632b3f41aa146103d857806331e6da5a146103eb57806332608039146103fe5780633b6afe40146104115780633fa70f451461043157806344ec6b6214610439576102d6565b806314d494131161029357806314d494131461037a5780631627540c1461038257806316b2213f146103955780631b3ba4d0146103a8578063242df9e1146103bb5780632af64bd3146103c3576102d6565b8063042e0688146102db57806304f3bcec146102f057806305b3c1c91461030e5780630b887dae1461032e5780631137aedf146103415780631313e6ca14610363575b600080fd5b6102ee6102e9366004614d8b565b610674565b005b6102f86106e5565b6040516103059190615b9c565b60405180910390f35b61032161031c366004614c98565b6106f4565b6040516103059190615ae8565b6102ee61033c366004614e62565b61070a565b61035461034f366004614c98565b6107e8565b60405161030593929190615b12565b61036b610804565b60405161030593929190615db2565b610321610998565b6102ee610390366004614c98565b61099e565b6103216103a3366004614c98565b6109fc565b6102ee6103b6366004614d8b565b610a0e565b610321610c65565b6103cb610c75565b6040516103059190615ada565b6102ee6103e6366004614cd4565b610d8c565b6102ee6103f9366004614f1a565b610ddb565b6102f861040c366004614e62565b610ed5565b61042461041f366004614dbb565b610ef0565b6040516103059190615ac9565b610321610f9e565b6102ee610447366004614d0e565b610fa3565b6102ee61045a366004614e62565b610ff6565b6102ee61046d366004614dbb565b611003565b6102ee610480366004614c98565b6110b4565b6103cb6110fc565b61049561118e565b60405161030591906159f5565b61032161119d565b6104bd6104b8366004614d8b565b6111aa565b604051610305929190615da4565b6102ee6104d9366004614dbb565b611290565b6104f16104ec366004614d5b565b6113c5565b604051610305929190615b04565b610507611873565b6040516103059190615ab8565b6102ee61187f565b6102ee6119d1565b610321610532366004614ebf565b611a6d565b6102f8610545366004614e62565b611a81565b6102ee610558366004614ede565b611aa8565b6103cb61056b366004614e9e565b611b22565b610507611eb6565b610495612185565b6102ee61058e366004614d0e565b612194565b6103216105a1366004614c98565b6121e2565b6103216105b4366004614c98565b6121f4565b6104bd6105c7366004614c98565b6121ff565b6102ee6105da366004614d8b565b612215565b610321612259565b6103cb6105f5366004614c98565b612263565b6103cb610608366004614e9e565b61226e565b6102ee61061b366004614c98565b612643565b61032161062e366004614d8b565b612688565b6102ee610641366004614d0e565b61273b565b6103216127e1565b61032161065c366004614c98565b6127e7565b6102ee61066f366004614cd4565b6127f2565b61067c612841565b6001600160a01b0316336001600160a01b0316146106b55760405162461bcd60e51b81526004016106ac90615c86565b60405180910390fd5b600081116106d55760405162461bcd60e51b81526004016106ac90615d36565b6106e182826000612858565b5050565b6002546001600160a01b031681565b600080610700836129ba565b509150505b919050565b610712612a86565b600061071c612ab2565b604051636b42ba1d60e11b81529091506001600160a01b0382169063d685743a9061074e908590600090600401615b3a565b600060405180830381600087803b15801561076857600080fd5b505af115801561077c573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03841692506304bd11e591506107ad90600190600401615ada565b600060405180830381600087803b1580156107c757600080fd5b505af11580156107db573d6000803e3d6000fd5b505050506106e182612ac9565b60008060006107f684612f77565b509196909550909350915050565b60008060008060006108357f6578743a41676772656761746f7249737375656453796e746873000000000000613004565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561086d57600080fd5b505afa158015610881573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108a59190810190615019565b509350509250506000806108d2766578743a41676772656761746f7244656274526174696f60481b613004565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561090a57600080fd5b505afa15801561091e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109429190810190615019565b509350509250508396508160001461096957610964878363ffffffff61306116565b61096c565b60005b955082610977613081565b4203118061098d575080610989613081565b4203115b945050505050909192565b60075481565b6109a6612a86565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906109f19083906159f5565b60405180910390a150565b60066020526000908152604090205481565b610a16612a86565b6001600160a01b038216610a3c5760405162461bcd60e51b81526004016106ac90615cf6565b6002546040516321f8a72160e01b81526001600160a01b03909116906321f8a72190610a6a90600401615c39565b60206040518083038186803b158015610a8257600080fd5b505afa158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aba9190810190614cb6565b6001600160a01b0316826001600160a01b031614610aea5760405162461bcd60e51b81526004016106ac90615c09565b631cd554d160e21b6000526005602052600080516020615f1d833981519152546001600160a01b0316610b2f5760405162461bcd60e51b81526004016106ac90615d56565b60008111610b4f5760405162461bcd60e51b81526004016106ac90615bf9565b610b5761312b565b6001600160a01b0316631b16802c83631cd554d160e21b6040518363ffffffff1660e01b8152600401610b8b929190615a39565b606060405180830381600087803b158015610ba557600080fd5b505af1158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bdd9190810190614fd6565b5050631cd554d160e21b600052506005602052600080516020615f1d83398151915254604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610c2f9085908590600401615a39565b600060405180830381600087803b158015610c4957600080fd5b505af1158015610c5d573d6000803e3d6000fd5b505050505050565b6000610c6f613142565b90505b90565b60006060610c81611eb6565b905060005b8151811015610d83576000828281518110610c9d57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610cee908590600401615ae8565b60206040518083038186803b158015610d0657600080fd5b505afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d3e9190810190614cb6565b6001600160a01b0316141580610d6957506000818152600360205260409020546001600160a01b0316155b15610d7a5760009350505050610c72565b50600101610c86565b50600191505090565b610d94612841565b6001600160a01b0316336001600160a01b031614610dc45760405162461bcd60e51b81526004016106ac90615c86565b610dce828261319d565b6106e1826000600161323e565b610de36134ae565b6001600160a01b0316336001600160a01b031614610e135760405162461bcd60e51b81526004016106ac90615c96565b6000610e1d6134c3565b9050816001600160801b0316816001600160a01b031663988e65956040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6257600080fd5b505afa158015610e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e9a9190810190614f38565b6001600160801b031610156106e15760405163abb6de9560e01b81526001600160a01b0382169063abb6de9590610c2f908590600401615d96565b6005602052600090815260409020546001600160a01b031681565b60408051828152602080840282010190915260609082908290828015610f20578160200160208202803883390190505b50905060005b82811015610f935760056000878784818110610f3e57fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b0316828281518110610f7357fe5b6001600160a01b0390921660209283029190910190910152600101610f26565b509150505b92915050565b60a581565b610fab612841565b6001600160a01b0316336001600160a01b031614610fdb5760405162461bcd60e51b81526004016106ac90615c86565b610fe583836134e3565b610ff183826000612858565b505050565b610ffe612a86565b600755565b61100b612a86565b8060005b818110156110485761104084848381811061102657fe5b905060200201602061103b9190810190614ede565b613518565b60010161100f565b50611051612ab2565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b815260040161107d9190615ada565b600060405180830381600087803b15801561109757600080fd5b505af11580156110ab573d6000803e3d6000fd5b50505050505050565b6110bc612841565b6001600160a01b0316336001600160a01b0316146110ec5760405162461bcd60e51b81526004016106ac90615c86565b6110f9816000600161323e565b50565b60006111066136a9565b6001600160a01b031663c8e5bbd561111e60016136c4565b6040518263ffffffff1660e01b815260040161113a9190615ab8565b60006040518083038186803b15801561115257600080fd5b505afa158015611166573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f989190810190614dfd565b6001546001600160a01b031681565b6524b9b9bab2b960d11b81565b60008060006112416111ba6134c3565b6001600160a01b03166370a08231876040518263ffffffff1660e01b81526004016111e591906159f5565b60206040518083038186803b1580156111fd57600080fd5b505afa158015611211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112359190810190614e80565b620a69cb60eb1b6137a0565b93509091506000905061126261125561388a565b839063ffffffff6138e216565b90508481106112745760009350611287565b611284858263ffffffff6138f716565b93505b50509250929050565b611298612a86565b8060006112a3612ab2565b90506060826040519080825280602002602001820160405280156112d1578160200160208202803883390190505b506040516305ece36d60e21b81529091506001600160a01b038316906317b38db49061130590889088908690600401615a92565b600060405180830381600087803b15801561131f57600080fd5b505af1158015611333573d6000803e3d6000fd5b50506040516304bd11e560e01b81526001600160a01b03851692506304bd11e5915061136490600190600401615ada565b600060405180830381600087803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b506000925050505b83811015610c5d576113bd8686838181106113b157fe5b90506020020135612ac9565b60010161139a565b6000806113d0612841565b6001600160a01b0316336001600160a01b0316146114005760405162461bcd60e51b81526004016106ac90615c86565b61140861391f565b6001600160a01b031663952225f385856040518363ffffffff1660e01b8152600401611435929190615a1e565b60206040518083038186803b15801561144d57600080fd5b505afa158015611461573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114859190810190614e44565b6114a15760405162461bcd60e51b81526004016106ac90615cd6565b6000836114b5576114b0613937565b6114bd565b6114bd613997565b90506000806115556114cd6134c3565b6001600160a01b03166370a08231896040518263ffffffff1660e01b81526004016114f891906159f5565b60206040518083038186803b15801561151057600080fd5b505afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115489190810190614e80565b631cd554d160e21b6137a0565b92505091506000806115656136a9565b6001600160a01b0316630c71cd23620a69cb60eb1b6040518263ffffffff1660e01b81526004016115969190615ae8565b604080518083038186803b1580156115ad57600080fd5b505afa1580156115c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115e59190810190614f56565b915091506115fa83806115f55750815b6139f8565b60006116058a613a16565b905061160f61391f565b6001600160a01b031663f557f73c866116288487613bbf565b896040518463ffffffff1660e01b815260040161164793929190615b12565b60206040518083038186803b15801561165f57600080fd5b505afa158015611673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116979190810190614e80565b965061173e6117288773__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156116e457600080fd5b505af41580156116f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061171c9190810190614e80565b9063ffffffff613bd116565b6117328986613bf6565b9063ffffffff613c0816565b9750600061174a612841565b6001600160a01b03166370a082318c6040518263ffffffff1660e01b815260040161177591906159f5565b60206040518083038186803b15801561178d57600080fd5b505afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117c59190810190614e80565b9050808911156117f5576117ef896117e38a8463ffffffff613c0816565b9063ffffffff613c3216565b97508098505b6118008b8988613c5c565b61180861391f565b6001600160a01b031663974e9e7f8c6040518263ffffffff1660e01b815260040161183391906159f5565b600060405180830381600087803b15801561184d57600080fd5b505af1158015611861573d6000803e3d6000fd5b50505050505050505050509250929050565b6060610c6f60006136c4565b6060611889611eb6565b905060005b81518110156106e15760008282815181106118a557fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016118e791906159ea565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611913929190615b55565b60206040518083038186803b15801561192b57600080fd5b505afa15801561193f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119639190810190614cb6565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906119bf9084908490615af6565b60405180910390a1505060010161188e565b6001546001600160a01b031633146119fb5760405162461bcd60e51b81526004016106ac90615bd9565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92611a3e926001600160a01b0391821692911690615a03565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000611a798383613e3d565b509392505050565b60048181548110611a8e57fe5b6000918252602090912001546001600160a01b0316905081565b611ab0612a86565b611ab981613518565b611ac1612ab2565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b8152600401611aed9190615ada565b600060405180830381600087803b158015611b0757600080fd5b505af1158015611b1b573d6000803e3d6000fd5b5050505050565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a72190611b73907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615ae8565b60206040518083038186803b158015611b8b57600080fd5b505afa158015611b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611bc39190810190614cb6565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a72190611c11907453796e746865746978427269646765546f4261736560581b90600401615ae8565b60206040518083038186803b158015611c2957600080fd5b505afa158015611c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c619190810190614cb6565b9050336001600160a01b0383161480611c825750336001600160a01b038216145b611c9e5760405162461bcd60e51b81526004016106ac90615d86565b6001600160a01b0382161580611cbb57506001600160a01b038116155b611cd75760405162461bcd60e51b81526004016106ac90615bc9565b6000868152600560205260409020546001600160a01b0316611d0b5760405162461bcd60e51b81526004016106ac90615d56565b60008411611d2b5760405162461bcd60e51b81526004016106ac90615d36565b611d3485614048565b6000868152600560205260409081902054905163219e412d60e21b81526001600160a01b039091169063867904b490611d739088908890600401615a39565b600060405180830381600087803b158015611d8d57600080fd5b505af1158015611da1573d6000803e3d6000fd5b50505050600080611db06136a9565b6001600160a01b0316630c71cd23896040518263ffffffff1660e01b8152600401611ddb9190615ae8565b604080518083038186803b158015611df257600080fd5b505afa158015611e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e2a9190810190614f56565b91509150611e36612ab2565b6001600160a01b03166342c7b819611e5c611e57898663ffffffff613c0816565b6140c1565b6040518263ffffffff1660e01b8152600401611e789190615ae8565b600060405180830381600087803b158015611e9257600080fd5b505af1158015611ea6573d6000803e3d6000fd5b50929a9950505050505050505050565b606080611ec16140ea565b60408051600f808252610200820190925291925060609190602082016101e080388339019050509050680a6f2dce8d0cae8d2f60bb1b81600081518110611f0457fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110611f2a57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110611f5457fe5b6020026020010181815250507153796e74686574697844656274536861726560701b81600381518110611f8357fe5b60200260200101818152505066119959541bdbdb60ca1b81600481518110611fa757fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b81600581518110611fd557fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b8160068151811061200057fe5b6020026020010181815250506e53796e746865746978457363726f7760881b8160078151811061202c57fe5b602002602001018181525050692634b8bab4b230ba37b960b11b8160088151811061205357fe5b602002602001018181525050704c697175696461746f725265776172647360781b8160098151811061208157fe5b6020026020010181815250506844656274436163686560b81b81600a815181106120a757fe5b6020026020010181815250506c29bcb73a342932b232b2b6b2b960991b81600b815181106120d157fe5b6020026020010181815250506b53797374656d53746174757360a01b81600c815181106120fa57fe5b6020026020010181815250507f6578743a41676772656761746f7249737375656453796e74687300000000000081600d8151811061213457fe5b602002602001018181525050766578743a41676772656761746f7244656274526174696f60481b81600e8151811061216857fe5b60200260200101818152505061217e828261413b565b9250505090565b6000546001600160a01b031681565b61219c612841565b6001600160a01b0316336001600160a01b0316146121cc5760405162461bcd60e51b81526004016106ac90615c86565b6121d6838361319d565b610ff18382600061323e565b60006121ed826141f0565b5092915050565b6000610f9882613a16565b60008061220b836141f0565b915091505b915091565b61221d612841565b6001600160a01b0316336001600160a01b03161461224d5760405162461bcd60e51b81526004016106ac90615c86565b6106e18282600061323e565b6000610c6f61388a565b6000610f9882614270565b6002546040516321f8a72160e01b815260009182916001600160a01b03909116906321f8a721906122bf907853796e746865746978427269646765546f4f7074696d69736d60381b90600401615ae8565b60206040518083038186803b1580156122d757600080fd5b505afa1580156122eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061230f9190810190614cb6565b6002546040516321f8a72160e01b81529192506000916001600160a01b03909116906321f8a7219061235d907453796e746865746978427269646765546f4261736560581b90600401615ae8565b60206040518083038186803b15801561237557600080fd5b505afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123ad9190810190614cb6565b9050336001600160a01b03831614806123ce5750336001600160a01b038216145b6123ea5760405162461bcd60e51b81526004016106ac90615d86565b6001600160a01b038216158061240757506001600160a01b038116155b6124235760405162461bcd60e51b81526004016106ac90615bc9565b6000868152600560205260409020546001600160a01b03166124575760405162461bcd60e51b81526004016106ac90615d56565b600084116124775760405162461bcd60e51b81526004016106ac90615d36565b61247f61312b565b6001600160a01b0316631b16802c86886040518363ffffffff1660e01b81526004016124ac929190615a39565b606060405180830381600087803b1580156124c657600080fd5b505af11580156124da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124fe9190810190614fd6565b50505060008681526005602052604090819020549051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906125409088908890600401615a39565b600060405180830381600087803b15801561255a57600080fd5b505af115801561256e573d6000803e3d6000fd5b5050505060008061257d6136a9565b6001600160a01b0316630c71cd23896040518263ffffffff1660e01b81526004016125a89190615ae8565b604080518083038186803b1580156125bf57600080fd5b505afa1580156125d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125f79190810190614f56565b91509150612603612ab2565b6001600160a01b03166342c7b819612624611e57898663ffffffff613c0816565b6000036040518263ffffffff1660e01b8152600401611e789190615ae8565b61264b612841565b6001600160a01b0316336001600160a01b03161461267b5760405162461bcd60e51b81526004016106ac90615c86565b6110f98160006001612858565b6000806126936134c3565b90506000816001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016126c391906159f5565b60206040518083038186803b1580156126db57600080fd5b505afa1580156126ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127139190810190614e80565b90508061272557600092505050610f98565b61272f81856137a0565b50909695505050505050565b61274361428f565b826001600160a01b031663d4b839926040518163ffffffff1660e01b815260040160206040518083038186803b15801561277c57600080fd5b505afa158015612790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127b49190810190614cb6565b6001600160a01b0316639dc29fac83836040518363ffffffff1660e01b815260040161107d929190615a39565b60045490565b6000610f98826142c7565b6127fa612841565b6001600160a01b0316336001600160a01b03161461282a5760405162461bcd60e51b81526004016106ac90615c86565b61283482826134e3565b6106e18260006001612858565b6000610c6f680a6f2dce8d0cae8d2f60bb1b613004565b612860614390565b61286957610ff1565b60008061287585612f77565b935050509150612884816139f8565b826128ae57818411156128a95760405162461bcd60e51b81526004016106ac90615c56565b6128b2565b8193505b6128bc85856144c5565b6128c585614048565b631cd554d160e21b6000526005602052600080516020615f1d8339815191525460405163219e412d60e21b81526001600160a01b039091169063867904b4906129149088908890600401615a39565b600060405180830381600087803b15801561292e57600080fd5b505af1158015612942573d6000803e3d6000fd5b5050505061294e612ab2565b6001600160a01b03166342c7b819612965866140c1565b6040518263ffffffff1660e01b81526004016129819190615ae8565b600060405180830381600087803b15801561299b57600080fd5b505af11580156129af573d6000803e3d6000fd5b505050505050505050565b6000806000806129c86136a9565b6001600160a01b0316630c71cd23620a69cb60eb1b6040518263ffffffff1660e01b81526004016129f99190615ae8565b604080518083038186803b158015612a1057600080fd5b505afa158015612a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a489190810190614f56565b915091506000612a60612a5a87613a16565b84613bbf565b9050612a7a612a6d61388a565b829063ffffffff613c0816565b94509092505050915091565b6000546001600160a01b03163314612ab05760405162461bcd60e51b81526004016106ac90615ce6565b565b6000610c6f6844656274436163686560b81b613004565b6000818152600560205260409020546001600160a01b031680612afe5760405162461bcd60e51b81526004016106ac90615cb6565b631cd554d160e21b821415612b255760405162461bcd60e51b81526004016106ac90615d26565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b6057600080fd5b505afa158015612b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b989190810190614e80565b90508015612e1a57600080612bab6136a9565b6001600160a01b0316638295016a86856040518363ffffffff1660e01b8152600401612bd8929190615b75565b60606040518083038186803b158015612bf057600080fd5b505afa158015612c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c289190810190614fd6565b509150915060008111612c4d5760405162461bcd60e51b81526004016106ac90615cc6565b6000612c5761460f565b631cd554d160e21b6000526005602052600080516020615f1d8339815191525460405163219e412d60e21b81529192506001600160a01b03169063867904b490612ca79084908790600401615a39565b600060405180830381600087803b158015612cc157600080fd5b505af1158015612cd5573d6000803e3d6000fd5b50505050612ce1612ab2565b6001600160a01b03166342c7b819612cf8856140c1565b6040518263ffffffff1660e01b8152600401612d149190615ae8565b600060405180830381600087803b158015612d2e57600080fd5b505af1158015612d42573d6000803e3d6000fd5b50505050806001600160a01b0316633a70599c866001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b158015612d8e57600080fd5b505afa158015612da2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612dc69190810190614efc565b846040518363ffffffff1660e01b8152600401612de4929190615baa565b600060405180830381600087803b158015612dfe57600080fd5b505af1158015612e12573d6000803e3d6000fd5b505050505050505b60005b600454811015612f0157826001600160a01b031660048281548110612e3e57fe5b6000918252602090912001546001600160a01b03161415612ef95760048181548110612e6657fe5b600091825260209091200180546001600160a01b0319169055600480546000198101908110612e9157fe5b600091825260209091200154600480546001600160a01b039092169183908110612eb757fe5b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556004805490612ef3906000198301614b25565b50612f01565b600101612e1d565b506001600160a01b038216600090815260066020908152604080832083905585835260059091529081902080546001600160a01b0319169055517f6166f5c475cc1cd535c6cdf14a6d5edb811e34117031fc2863392a136eb655d090612f6a9085908590615af6565b60405180910390a1505050565b600080600080612fb3612f886134c3565b6001600160a01b03166370a08231876040518263ffffffff1660e01b81526004016114f891906159f5565b91945092509050600080612fc6876129ba565b915091508195508280612fd65750805b9250858510612fe85760009550612ffb565b612ff8868663ffffffff6138f716565b95505b50509193509193565b60008181526003602090815260408083205490516001600160a01b039091169182151591613034918691016159ca565b604051602081830303815290604052906121ed5760405162461bcd60e51b81526004016106ac9190615bb8565b600061307a83836b033b2e3c9fd0803ce800000061462a565b9392505050565b600061308b614662565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b81526004016130db929190615b04565b60206040518083038186803b1580156130f357600080fd5b505afa158015613107573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c6f9190810190614e80565b6000610c6f6822bc31b430b733b2b960b91b613004565b600061314c614662565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b81526004016130db929190615b04565b6131a561467f565b6001600160a01b0316637d3f0ba283836040518363ffffffff1660e01b81526004016131d2929190615a03565b60206040518083038186803b1580156131ea57600080fd5b505afa1580156131fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506132229190810190614e44565b6106e15760405162461bcd60e51b81526004016106ac90615be9565b613246614390565b61324f57610ff1565b806133ac5761325d83614270565b6132795760405162461bcd60e51b81526004016106ac90615d66565b60008061328461312b565b6001600160a01b0316631b16802c86631cd554d160e21b6040518363ffffffff1660e01b81526004016132b8929190615a39565b606060405180830381600087803b1580156132d257600080fd5b505af11580156132e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061330a9190810190614fd6565b90935091505080156133a95761331e61312b565b6001600160a01b0316634c268fc886631cd554d160e21b87866040518563ffffffff1660e01b81526004016133569493929190615a54565b60206040518083038186803b15801561336e57600080fd5b505afa158015613382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133a69190810190614e80565b93505b50505b6000806133ba612f886134c3565b92505091506000806133cb876129ba565b915091506133df83806115f55750816139f8565b600084116133ff5760405162461bcd60e51b81526004016106ac90615c46565b841561341857613415848363ffffffff6138f716565b95505b60006134268889898861469e565b905082613439868363ffffffff6138f716565b116134a45761344661391f565b6001600160a01b031663974e9e7f896040518263ffffffff1660e01b815260040161347191906159f5565b600060405180830381600087803b15801561348b57600080fd5b505af115801561349f573d6000803e3d6000fd5b505050505b5050505050505050565b6000610c6f66119959541bdbdb60ca1b613004565b6000610c6f7153796e74686574697844656274536861726560701b613004565b6134eb61467f565b6001600160a01b0316630487261783836040518363ffffffff1660e01b81526004016131d2929190615a03565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561355357600080fd5b505afa158015613567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061358b9190810190614e80565b6000818152600560205260409020549091506001600160a01b0316156135c35760405162461bcd60e51b81526004016106ac90615d46565b6001600160a01b038216600090815260066020526040902054156135f95760405162461bcd60e51b81526004016106ac90615d06565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0384166001600160a01b03199182168117909255600083815260056020908152604080832080549094168517909355928152600690925290819020829055517f0a2b6ebf143b3e9fcd67e17748ad315174746100c27228468b2c98c302c628849061369d9083908590615af6565b60405180910390a15050565b6000610c6f6c45786368616e6765526174657360981b613004565b606080826136d35760006136d6565b60015b60ff1660048054905001604051908082528060200260200182016040528015613709578160200160208202803883390190505b50905060005b60045481101561377057600660006004838154811061372a57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054825183908390811061375d57fe5b602090810291909101015260010161370f565b508215610f98576004548151620a69cb60eb1b918391811061378e57fe5b60200260200101818152505092915050565b60008060008060006137b0610804565b925050915086600014156137cc57600094509092509050613883565b6000806137d76136a9565b6001600160a01b0316630c71cd23896040518263ffffffff1660e01b81526004016138029190615ae8565b604080518083038186803b15801561381957600080fd5b505afa15801561382d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506138519190810190614f56565b9150915061386e826138628b6147ca565b9063ffffffff6138e216565b9650839550808061387c5750825b9450505050505b9250925092565b6000613894614662565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b81526004016130db929190615b04565b600061307a8383670de0b6b3a764000061462a565b6000828211156139195760405162461bcd60e51b81526004016106ac90615c66565b50900390565b6000610c6f692634b8bab4b230ba37b960b11b613004565b6000613941614662565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b74736e784c69717569646174696f6e50656e616c747960581b6040518363ffffffff1660e01b81526004016130db929190615b04565b60006139a1614662565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b81526004016130db929190615b04565b80156110f95760405162461bcd60e51b81526004016106ac90615ca6565b600080613a21612841565b6001600160a01b03166370a08231846040518263ffffffff1660e01b8152600401613a4c91906159f5565b60206040518083038186803b158015613a6457600080fd5b505afa158015613a78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613a9c9190810190614e80565b90506000613aa8614879565b6001600160a01b031614613b4c57613b49613ac1614879565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401613aec91906159f5565b60206040518083038186803b158015613b0457600080fd5b505afa158015613b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613b3c9190810190614e80565b829063ffffffff613bd116565b90505b6000613b56614896565b6001600160a01b031614613b7257613b6f613ac1614896565b90505b6000613b7c6148b2565b6001600160a01b031614610f985761307a613b956148b2565b6001600160a01b0316628cc262856040518263ffffffff1660e01b8152600401613aec91906159f5565b600061307a838363ffffffff6148d116565b60008282018381101561307a5760405162461bcd60e51b81526004016106ac90615c19565b600061307a838363ffffffff6138e216565b6000670de0b6b3a7640000613c23848463ffffffff6148e616565b81613c2a57fe5b049392505050565b600061307a82613c5085670de0b6b3a764000063ffffffff6148e616565b9063ffffffff61492016565b613c646148b2565b6001600160a01b031663270fb338846040518263ffffffff1660e01b8152600401613c8f91906159f5565b600060405180830381600087803b158015613ca957600080fd5b505af1158015613cbd573d6000803e3d6000fd5b505050506000613ccb6134c3565b90506000816001600160a01b03166370a08231866040518263ffffffff1660e01b8152600401613cfb91906159f5565b60206040518083038186803b158015613d1357600080fd5b505afa158015613d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613d4b9190810190614e80565b905082841415613dba57604051631a378f0d60e01b81526001600160a01b03831690631a378f0d90613d839088908590600401615a39565b600060405180830381600087803b158015613d9d57600080fd5b505af1158015613db1573d6000803e3d6000fd5b50505050611b1b565b6000613dc585614955565b9050826001600160a01b0316631a378f0d87848410613de45784613de6565b835b6040518363ffffffff1660e01b8152600401613e03929190615a39565b600060405180830381600087803b158015613e1d57600080fd5b505af1158015613e31573d6000803e3d6000fd5b50505050505050505050565b6000806000806000613e4d612ab2565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b815260040160806040518083038186803b158015613e8557600080fd5b505afa158015613e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613ebd9190810190614f75565b935093505092508180613ecd5750805b93506000613ed96136a9565b905086613f7f57600080613eeb612ab2565b6001600160a01b0316632992dba26040518163ffffffff1660e01b8152600401604080518083038186803b158015613f2257600080fd5b505afa158015613f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613f5a9190810190614f56565b9092509050613f6f868363ffffffff613bd116565b95508680613f7a5750805b965050505b631cd554d160e21b881415613f9a5750919350614041915050565b600080826001600160a01b0316630c71cd238b6040518263ffffffff1660e01b8152600401613fc99190615ae8565b604080518083038186803b158015613fe057600080fd5b505afa158015613ff4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506140189190810190614f56565b909250905061402d868363ffffffff6138e216565b87806140365750815b975097505050505050505b9250929050565b614050614662565b6001600160a01b0316631d5b277f6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b8460405160200161408c9291906159a4565b60405160208183030381529060405280519060200120426040518463ffffffff1660e01b8152600401611aed93929190615b12565b6000600160ff1b82106140e65760405162461bcd60e51b81526004016106ac90615d76565b5090565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061412c57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561416b578160200160208202803883390190505b50905060005b83518110156141ad5783818151811061418657fe5b602002602001015182828151811061419a57fe5b6020908102919091010152600101614171565b5060005b82518110156121ed578281815181106141c657fe5b60200260200101518282865101815181106141dd57fe5b60209081029190910101526001016141b1565b60008060006141fe84613a16565b905060008061423961420e6134c3565b6001600160a01b03166370a08231886040518263ffffffff1660e01b81526004016111e591906159f5565b9250509150826000141561425557600094509250612210915050565b614265828463ffffffff6138e216565b945092505050915091565b600061428661427d613142565b61171c846142c7565b42101592915050565b61429761460f565b6001600160a01b0316336001600160a01b031614612ab05760405162461bcd60e51b81526004016106ac90615c29565b60006142d1614662565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b8560405160200161430d9291906159a4565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401614340929190615b04565b60206040518083038186803b15801561435857600080fd5b505afa15801561436c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f989190810190614e80565b6000806143b6766578743a41676772656761746f7244656274526174696f60481b613004565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156143ee57600080fd5b505afa158015614402573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506144269190810190615019565b505050915050600061443a60075483614a17565b9050614444614a63565b81106144bb57614452614acb565b6001600160a01b031663396e258e60a56040518263ffffffff1660e01b815260040161447e9190615ae8565b600060405180830381600087803b15801561449857600080fd5b505af11580156144ac573d6000803e3d6000fd5b50505050600092505050610c72565b5060075550600190565b6144cd6148b2565b6001600160a01b031663270fb338836040518263ffffffff1660e01b81526004016144f891906159f5565b600060405180830381600087803b15801561451257600080fd5b505af1158015614526573d6000803e3d6000fd5b5050505060006145346134c3565b9050600061454183614955565b9050806145ad57604051636178258560e11b81526001600160a01b0383169063c2f04b0a906145769087908790600401615a39565b600060405180830381600087803b15801561459057600080fd5b505af11580156145a4573d6000803e3d6000fd5b50505050614609565b604051636178258560e11b81526001600160a01b0383169063c2f04b0a906145db9087908590600401615a39565b600060405180830381600087803b1580156145f557600080fd5b505af11580156134a4573d6000803e3d6000fd5b50505050565b6000610c6f6c29bcb73a342932b232b2b6b2b960991b613004565b60008061464484613c5087600a870263ffffffff6148e616565b90506005600a825b061061465657600a015b600a9004949350505050565b6000610c6f6e466c657869626c6553746f7261676560881b613004565b6000610c6f7044656c6567617465417070726f76616c7360781b613004565b60006146a8614390565b6146b4575060006147c2565b8282106146c157826146c3565b815b90506146d0858284613c5c565b631cd554d160e21b6000526005602052600080516020615f1d83398151915254604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac9061471f9087908590600401615a39565b600060405180830381600087803b15801561473957600080fd5b505af115801561474d573d6000803e3d6000fd5b50505050614759612ab2565b6001600160a01b03166342c7b819614770836140c1565b6000036040518263ffffffff1660e01b815260040161478f9190615ae8565b600060405180830381600087803b1580156147a957600080fd5b505af11580156147bd573d6000803e3d6000fd5b505050505b949350505050565b6000806147f0766578743a41676772656761746f7244656274526174696f60481b613004565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561482857600080fd5b505afa15801561483c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506148609190810190615019565b50505091505061307a8184614ae590919063ffffffff16565b6000610c6f6e53796e746865746978457363726f7760881b613004565b6000610c6f6d2932bbb0b93222b9b1b937bbab1960911b613004565b6000610c6f704c697175696461746f725265776172647360781b613004565b600061307a8383670de0b6b3a7640000614afa565b6000826148f557506000610f98565b8282028284828161490257fe5b041461307a5760405162461bcd60e51b81526004016106ac90615d16565b60008082116149415760405162461bcd60e51b81526004016106ac90615c76565b600082848161494c57fe5b04949350505050565b60008061497b766578743a41676772656761746f7244656274526174696f60481b613004565b6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156149b357600080fd5b505afa1580156149c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506149eb9190810190615019565b50505091505080600014614a0e57614a09838263ffffffff61306116565b61307a565b50600092915050565b600082614a2657506001610f98565b81614a345750600019610f98565b81831115614a5357614a4c838363ffffffff613c3216565b9050610f98565b61307a828463ffffffff613c3216565b6000614a6d614662565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b81526004016130db929190615b04565b6000610c6f6b53797374656d53746174757360a01b613004565b600061307a83836b033b2e3c9fd0803ce80000005b600080600a8304614b11868663ffffffff6148e616565b81614b1857fe5b0490506005600a8261464c565b815481835581811115610ff157600083815260209020610ff1918101908301610c7291905b808211156140e65760008155600101614b4a565b8035610f9881615edb565b8051610f9881615edb565b60008083601f840112614b8657600080fd5b50813567ffffffffffffffff811115614b9e57600080fd5b60208301915083602082028301111561404157600080fd5b600082601f830112614bc757600080fd5b8151614bda614bd582615e01565b615dda565b91508181835260208401935060208101905083856020840282011115614bff57600080fd5b60005b83811015614c2b5781614c158882614c56565b8452506020928301929190910190600101614c02565b5050505092915050565b8035610f9881615eef565b8051610f9881615eef565b8035610f9881615ef8565b8051610f9881615ef8565b8035610f9881615f01565b8051610f9881615f01565b8035610f9881615f0a565b8051610f9881615f0a565b8051610f9881615f13565b600060208284031215614caa57600080fd5b60006147c28484614b5e565b600060208284031215614cc857600080fd5b60006147c28484614b69565b60008060408385031215614ce757600080fd5b6000614cf38585614b5e565b9250506020614d0485828601614b5e565b9150509250929050565b600080600060608486031215614d2357600080fd5b6000614d2f8686614b5e565b9350506020614d4086828701614b5e565b9250506040614d5186828701614c4b565b9150509250925092565b60008060408385031215614d6e57600080fd5b6000614d7a8585614b5e565b9250506020614d0485828601614c35565b60008060408385031215614d9e57600080fd5b6000614daa8585614b5e565b9250506020614d0485828601614c4b565b60008060208385031215614dce57600080fd5b823567ffffffffffffffff811115614de557600080fd5b614df185828601614b74565b92509250509250929050565b60008060408385031215614e1057600080fd5b825167ffffffffffffffff811115614e2757600080fd5b614e3385828601614bb6565b9250506020614d0485828601614c40565b600060208284031215614e5657600080fd5b60006147c28484614c40565b600060208284031215614e7457600080fd5b60006147c28484614c4b565b600060208284031215614e9257600080fd5b60006147c28484614c56565b600080600060608486031215614eb357600080fd5b6000614d2f8686614c4b565b60008060408385031215614ed257600080fd5b6000614d7a8585614c4b565b600060208284031215614ef057600080fd5b60006147c28484614c61565b600060208284031215614f0e57600080fd5b60006147c28484614c6c565b600060208284031215614f2c57600080fd5b60006147c28484614c77565b600060208284031215614f4a57600080fd5b60006147c28484614c82565b60008060408385031215614f6957600080fd5b6000614e338585614c56565b60008060008060808587031215614f8b57600080fd5b6000614f978787614c56565b9450506020614fa887828801614c56565b9350506040614fb987828801614c40565b9250506060614fca87828801614c40565b91505092959194509250565b600080600060608486031215614feb57600080fd5b6000614ff78686614c56565b935050602061500886828701614c56565b9250506040614d5186828701614c56565b600080600080600060a0868803121561503157600080fd5b600061503d8888614c8d565b955050602061504e88828901614c56565b945050604061505f88828901614c56565b935050606061507088828901614c56565b925050608061508188828901614c8d565b9150509295509295909350565b600061509a8383615205565b505060200190565b600061509a838361521f565b6150b781615e35565b82525050565b6150b76150c982615e35565b615eba565b60006150da8385615e2c565b93506001600160fb1b038311156150f057600080fd5b602083029250615101838584615e82565b50500190565b600061511282615e28565b61511c8185615e2c565b935061512783615e22565b8060005b8381101561515557815161513f888261508e565b975061514a83615e22565b92505060010161512b565b509495945050505050565b600061516b82615e28565b6151758185615e2c565b935061518083615e22565b8060005b8381101561515557815161519888826150a2565b97506151a383615e22565b925050600101615184565b60006151b982615e28565b6151c38185615e2c565b93506151ce83615e22565b8060005b838110156151555781516151e6888261508e565b97506151f183615e22565b9250506001016151d2565b6150b781615e40565b6150b781610c72565b6150b761521a82610c72565b610c72565b6150b781615e45565b6150b781615e77565b600061523c82615e28565b6152468185615e2c565b9350615256818560208601615e8e565b61525f81615ecb565b9093019392505050565b6000615276601e83615e2c565b7f4973737565723a206f6e65206d696e746572206d757374206265203078300000815260200192915050565b60006152af603583615e2c565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000615306601d83615e2c565b7f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000815260200192915050565b600061533f601c83615e2c565b7f4973737565723a2063616e6e6f74206275726e20302073796e74687300000000815260200192915050565b6000615378601b83615e2c565b7f4973737565723a2077726f6e672073686f727420616464726573730000000000815260200192915050565b60006153b1601b83615e2c565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006153ea603f83615e2c565b7f4973737565723a204f6e6c79207468652053796e746852656465656d6572206381527f6f6e74726163742063616e20706572666f726d207468697320616374696f6e00602082015260400192915050565b74436f6c6c61746572616c53686f72744c656761637960581b9052565b6000615466601283615e2c565b714e6f206465627420746f20666f726769766560701b815260200192915050565b6000615494601083615e2c565b6f416d6f756e7420746f6f206c6172676560801b815260200192915050565b60006154c0601e83615e2c565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006154f9601a83615e2c565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000615532601183610705565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061555f603b83615e2c565b7f4973737565723a204f6e6c79207468652073796e74686574697820636f6e747281527f6163742063616e20706572666f726d207468697320616374696f6e0000000000602082015260400192915050565b60006155be601083615e2c565b6f135d5cdd08189948199959481c1bdbdb60821b815260200192915050565b60006155ea601e83615e2c565b7f412073796e7468206f7220534e58207261746520697320696e76616c69640000815260200192915050565b6000615623601483615e2c565b7314de5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b815260200192915050565b6000615653602a83615e2c565b7f43616e6e6f742072656d6f76652073796e746820746f2072656465656d20776981526974686f7574207261746560b01b602082015260400192915050565b600061569f601883615e2c565b7f4e6f74206f70656e20666f72206c69717569646174696f6e0000000000000000815260200192915050565b60006156d8602f83615e2c565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b6000615735601783615e2c565b7f4973737565723a20696e76616c69642061646472657373000000000000000000815260200192915050565b600061576e601c83615e2c565b7f53796e7468206164647265737320616c72656164792065786973747300000000815260200192915050565b60006157a7602183615e2c565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b60006157ea601383615e2c565b72086c2dcdcdee840e4cadadeecca40e6f2dce8d606b1b815260200192915050565b6000615819601d83615e2c565b7f4973737565723a2063616e6e6f7420697373756520302073796e746873000000815260200192915050565b6000615852601983610705565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061588b600c83615e2c565b6b53796e74682065786973747360a01b815260200192915050565b60006158b3601b83615e2c565b7f4973737565723a2073796e746820646f65736e27742065786973740000000000815260200192915050565b60006158ec601e83615e2c565b7f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000815260200192915050565b6000615925602883615e2c565b7f53616665436173743a2076616c756520646f65736e27742066697420696e2061815267371034b73a191a9b60c11b602082015260400192915050565b600061596f601c83615e2c565b7f4973737565723a206f6e6c792074727573746564206d696e7465727300000000815260200192915050565b6150b781615e50565b60006159b0828561520e565b6020820191506159c082846150bd565b5060140192915050565b60006159d582615525565b91506159e1828461520e565b50602001919050565b60006159d582615845565b60208101610f9882846150ae565b60408101615a1182856150ae565b61307a60208301846150ae565b60408101615a2c82856150ae565b61307a60208301846151fc565b60408101615a4782856150ae565b61307a6020830184615205565b60808101615a6282876150ae565b615a6f6020830186615205565b615a7c6040830185615205565b615a896060830184615205565b95945050505050565b60408082528101615aa48185876150ce565b90508181036020830152615a8981846151ae565b6020808252810161307a8184615107565b6020808252810161307a8184615160565b60208101610f9882846151fc565b60208101610f988284615205565b60408101615a118285615205565b60408101615a478285615205565b60608101615b208286615205565b615b2d6020830185615205565b6147c26040830184615205565b60408101615b488285615205565b61307a6020830184615228565b60408101615b638285615205565b81810360208301526147c28184615231565b60608101615b838285615205565b615b906020830184615205565b61307a6040830161571c565b60208101610f98828461521f565b60408101615a47828561521f565b6020808252810161307a8184615231565b60208082528101610f9881615269565b60208082528101610f98816152a2565b60208082528101610f98816152f9565b60208082528101610f9881615332565b60208082528101610f988161536b565b60208082528101610f98816153a4565b60208082528101610f98816153dd565b602081016107058261543c565b60208082528101610f9881615459565b60208082528101610f9881615487565b60208082528101610f98816154b3565b60208082528101610f98816154ec565b60208082528101610f9881615552565b60208082528101610f98816155b1565b60208082528101610f98816155dd565b60208082528101610f9881615616565b60208082528101610f9881615646565b60208082528101610f9881615692565b60208082528101610f98816156cb565b60208082528101610f9881615728565b60208082528101610f9881615761565b60208082528101610f988161579a565b60208082528101610f98816157dd565b60208082528101610f988161580c565b60208082528101610f988161587e565b60208082528101610f98816158a6565b60208082528101610f98816158df565b60208082528101610f9881615918565b60208082528101610f9881615962565b60208101610f98828461599b565b60408101615a2c8285615205565b60608101615dc08286615205565b615dcd6020830185615205565b6147c260408301846151fc565b60405181810167ffffffffffffffff81118282101715615df957600080fd5b604052919050565b600067ffffffffffffffff821115615e1857600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b6000610f9882615e5c565b151590565b6000610f9882615e35565b6001600160801b031690565b6001600160a01b031690565b69ffffffffffffffffffff1690565b6000610f9882610c72565b82818337506000910152565b60005b83811015615ea9578181015183820152602001615e91565b838111156146095750506000910152565b6000610f98826000610f9882615ed5565b601f01601f191690565b60601b90565b615ee481615e35565b81146110f957600080fd5b615ee481615e40565b615ee481610c72565b615ee481615e45565b615ee481615e50565b615ee481615e6856fe74c62d09fbc50aefae0794a9a068f786a692826fbdfe63828ec23a875865823fa365627a7a723158202a1a39542f91009d594d9c11ad41ac819edbb0753b0f6943f3d8a583aa1b9cf86c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "SynthAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "SynthRemoved",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CIRCUIT_BREAKER_SUSPENSION_REASON",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract ISynth",
							"name": "synth",
							"type": "address"
						}
					],
					"name": "addSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract ISynth[]",
							"name": "synthsToAdd",
							"type": "address[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allNetworksDebtInfo",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "sharesSupply",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isStale",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "anySynthOrSNXRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableCurrencyKeys",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableSynthCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "availableSynths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "deprecatedSynthProxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "balance",
							"type": "uint256"
						}
					],
					"name": "burnForRedemption",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "burnSynthsToTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "burnForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "burnSynthsToTargetOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSynthsWithoutDebt",
					"outputs": [
						{
							"internalType": "bool",
							"name": "rateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "canBurnSynths",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "collateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatioAndAnyRatesInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "debtBalanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtBalance",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "getSynths",
					"outputs": [
						{
							"internalType": "contract ISynth[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "issueMaxSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "issueMaxSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "issueForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynthsOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSynthsWithoutDebt",
					"outputs": [
						{
							"internalType": "bool",
							"name": "rateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastDebtRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "lastIssueEvent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "isSelfLiquidation",
							"type": "bool"
						}
					],
					"name": "liquidateAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRedeemed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amountToLiquidate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "maxIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minimumStakeTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "remainingIssuableSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyIssued",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalSystemDebt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeSynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "removeSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint128",
							"name": "periodId",
							"type": "uint128"
						}
					],
					"name": "setCurrentPeriodId",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "setLastDebtRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "contract ISynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "synthsByAddress",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "excludeOtherCollateral",
							"type": "bool"
						}
					],
					"name": "totalIssuedSynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalIssued",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "balance",
							"type": "uint256"
						}
					],
					"name": "transferableSynthetixAndAnyRateIsInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "short",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "upgradeCollateralShort",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x9820f36cf8ee40e9cfb286cae173e716e009ebe5594e921afac85a40f103c71b",
				"urls": [
					"bzz-raw://f54ee91ba95260372d2c872fd7c90b04eeb5c4f028398c4fa35256712372a83f",
					"dweb:/ipfs/QmdHauQk47hJ7MzScCYr9mBMxkyjo9AUP9hnEvFzKjUDbx"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Issuer.sol": "Issuer"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Issuer.sol": {
						"keccak256": "0x9820f36cf8ee40e9cfb286cae173e716e009ebe5594e921afac85a40f103c71b",
						"urls": [
							"bzz-raw://f54ee91ba95260372d2c872fd7c90b04eeb5c4f028398c4fa35256712372a83f",
							"dweb:/ipfs/QmdHauQk47hJ7MzScCYr9mBMxkyjo9AUP9hnEvFzKjUDbx"
						]
					}
				},
				"version": 1
			}
		},
		"OwnerRelayOnOptimism": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620015fd380380620015fd8339810160408190526200003491620000f5565b600080546001600160a01b0319166001600160a01b0385811691909117909155829082908216620000825760405162461bcd60e51b81526004016200007990620001d1565b60405180910390fd5b60008111620000a55760405162461bcd60e51b81526004016200007990620001bf565b600280546001600160a01b0319166001600160a01b03939093169290921790915542016004555062000226915050565b8051620000e28162000201565b92915050565b8051620000e2816200021b565b6000806000606084860312156200010b57600080fd5b6000620001198686620000d5565b93505060206200012c86828701620000d5565b92505060406200013f86828701620000e8565b9150509250925092565b600062000158601483620001e3565b7f4475726174696f6e2063616e6e6f742062652030000000000000000000000000815260200192915050565b600062000193601e83620001e3565b7f54656d70206f776e657220616464726573732063616e6e6f7420626520300000815260200192915050565b60208082528101620000e28162000149565b60208082528101620000e28162000184565b90815260200190565b60006001600160a01b038216620000e2565b90565b6200020c81620001ec565b81146200021857600080fd5b50565b6200020c81620001fe565b6113c780620002366000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806379ba50971161008c578063a3578eed11610066578063a3578eed1461017e578063c3c79e5d14610186578063e3a7ef8f14610199578063f42a7bd2146101ac576100cf565b806379ba50971461014c578063899ffef41461015457806399bc0aea14610169576100cf565b806304f3bcec146100d45780631627540c146100f25780632af64bd314610107578063508d2ed71461011c57806353a47bb71461012f5780637418536014610144575b600080fd5b6100dc6101bf565b6040516100e991906111df565b60405180910390f35b610105610100366004610b7b565b6101ce565b005b61010f61022c565b6040516100e99190611195565b61010561012a366004610bbf565b610342565b6101376103ca565b6040516100e99190611100565b6101056103d9565b61010561052e565b61015c6105f4565b6040516100e99190611184565b610171610677565b6040516100e991906111a3565b61013761067d565b610105610194366004610bbf565b61068c565b6101056101a7366004610c85565b610707565b6101056101ba366004610c15565b610739565b6000546001600160a01b031681565b6101d661084d565b600380546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610221908390611100565b60405180910390a150565b600060606102386105f4565b905060005b815181101561033857600082828151811061025457fe5b60209081029190910181015160008181526001909252604080832054925490516321f8a72160e01b81529193506001600160a01b039283169216906321f8a721906102a39085906004016111a3565b60206040518083038186803b1580156102bb57600080fd5b505afa1580156102cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102f39190810190610ba1565b6001600160a01b031614158061031e57506000818152600160205260409020546001600160a01b0316155b1561032f576000935050505061033f565b5060010161023d565b5060019150505b90565b61034a61084d565b61038a8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061089a92505050565b7f5ee8f50848ed6666c1e2a13d826f32b3f50f8780c1adb816e395a3c1c959a77c8383836040516103bd93929190611129565b60405180910390a1505050565b6003546001600160a01b031681565b60606103e36105f4565b905060005b815181101561052a5760008282815181106103ff57fe5b6020026020010151905060008060009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161044091906110f5565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161046c9291906111bf565b60206040518083038186803b15801561048457600080fd5b505afa158015610498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104bc9190810190610ba1565b6000838152600160205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061051890849084906111b1565b60405180910390a150506001016103e8565b5050565b60045442106105585760405162461bcd60e51b815260040161054f90611252565b60405180910390fd5b6003546001600160a01b031633146105825760405162461bcd60e51b815260040161054f906111fe565b6002546003546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926105c5926001600160a01b039182169291169061110e565b60405180910390a160038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60408051600280825260608083018452926020830190803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b8160008151811061063257fe5b60200260200101818152505078626173653a4f776e657252656c61794f6e457468657265756d60381b8160018151811061066857fe5b60200260200101818152505090565b60045481565b6002546001600160a01b031681565b610694610943565b6106d48383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061089a92505050565b7fd189153a8ae167b55d4663dc838d4a9f7d3f6bc9d10c6f19831143bf30b986f58383836040516103bd93929190611129565b61070f61084d565b600454814201106107325760405162461bcd60e51b815260040161054f9061121e565b4201600455565b610741610943565b60005b838110156108095761080185858381811061075b57fe5b90506020020160206107709190810190610b7b565b84848481811061077c57fe5b602002820190508035601e193684900301811261079857600080fd5b9091016020810191503567ffffffffffffffff8111156107b757600080fd5b368190038213156107c757600080fd5b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061089a92505050565b600101610744565b507f5f62824dd3a89eff7c65b2cfecd20827dc0d1f8f84c7c7dca0959fe4dfb45a6c8484848460405161083f9493929190611153565b60405180910390a150505050565b600454421061086e5760405162461bcd60e51b815260040161054f90611252565b6002546001600160a01b031633146108985760405162461bcd60e51b815260040161054f90611262565b565b60006060836001600160a01b0316836040516108b691906110c2565b6000604051808303816000865af19150503d80600081146108f3576040519150601f19603f3d011682016040523d82523d6000602084013e6108f8565b606091505b5091509150818160405160200161090f919061122e565b6040516020818303038152906040529061093c5760405162461bcd60e51b815260040161054f91906111ed565b5050505050565b600061094d610a22565b9050336001600160a01b038216146109775760405162461bcd60e51b815260040161054f90611272565b61097f610a42565b6001600160a01b0316816001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c157600080fd5b505afa1580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109f99190810190610ba1565b6001600160a01b031614610a1f5760405162461bcd60e51b815260040161054f9061120e565b50565b6000610a3d6c32bc3a1d26b2b9b9b2b733b2b960991b610a65565b905090565b6000610a3d78626173653a4f776e657252656c61794f6e457468657265756d60381b5b60008181526001602090815260408083205490516001600160a01b039091169182151591610a95918691016110d5565b60405160208183030381529060405290610ac25760405162461bcd60e51b815260040161054f91906111ed565b5092915050565b8035610ad481611367565b92915050565b8051610ad481611367565b60008083601f840112610af757600080fd5b50813567ffffffffffffffff811115610b0f57600080fd5b602083019150836020820283011115610b2757600080fd5b9250929050565b60008083601f840112610b4057600080fd5b50813567ffffffffffffffff811115610b5857600080fd5b602083019150836001820283011115610b2757600080fd5b8035610ad48161137b565b600060208284031215610b8d57600080fd5b6000610b998484610ac9565b949350505050565b600060208284031215610bb357600080fd5b6000610b998484610ada565b600080600060408486031215610bd457600080fd5b6000610be08686610ac9565b935050602084013567ffffffffffffffff811115610bfd57600080fd5b610c0986828701610b2e565b92509250509250925092565b60008060008060408587031215610c2b57600080fd5b843567ffffffffffffffff811115610c4257600080fd5b610c4e87828801610ae5565b9450945050602085013567ffffffffffffffff811115610c6d57600080fd5b610c7987828801610ae5565b95989497509550505050565b600060208284031215610c9757600080fd5b6000610b998484610b70565b6000610caf8383610cd0565b505060200190565b6000610caf8383610dfd565b6000610b99848484610e17565b610cd9816112fa565b82525050565b6000610ceb838561128c565b9350610cf68261033f565b8060005b85811015610d2c57610d0c828461129a565b610d168882610ca3565b9750610d2183611282565b925050600101610cfa565b509495945050505050565b6000610d4282611288565b610d4c818561128c565b9350610d5783611282565b8060005b83811015610d2c578151610d6f8882610cb7565b9750610d7a83611282565b925050600101610d5b565b6000610d91838561128c565b935083602084028501610da38461033f565b8060005b87811015610de7578484038952610dbe82846112a9565b610dc9868284610cc3565b9550610dd484611282565b60209b909b019a93505050600101610da7565b5091979650505050505050565b610cd981611305565b610cd98161033f565b610cd9610e128261033f565b61033f565b6000610e23838561128c565b9350610e30838584611321565b610e398361135d565b9093019392505050565b6000610e4e82611288565b610e58818561128c565b9350610e6881856020860161132d565b610e398161135d565b6000610e7c82611288565b610e868185611295565b9350610e9681856020860161132d565b9290920192915050565b610cd981611316565b6000610eb660358361128c565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000610f0d60208361128c565b7f4c312073656e646572206973206e6f7420746865206f776e65722072656c6179815260200192915050565b6000610f4660338361128c565b7f4e6577206578706972792074696d65206d75737420626520736f6f6e6572207481527268616e2069742063757272656e746c7920697360681b602082015260400192915050565b6000610f9b601183611295565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000610fc860138361128c565b723c21b430b4b71031b0b636103330b4b632b21d60691b815260200192915050565b6000610ff7601983611295565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061103060118361128c565b7013dddb995c9cda1a5c08195e1c1a5c9959607a1b815260200192915050565b600061105d601d8361128c565b7f4f6e6c792065786563757461626c652062792074656d70206f776e6572000000815260200192915050565b6000611096601b8361128c565b7f53656e646572206973206e6f7420746865206d657373656e6765720000000000815260200192915050565b60006110ce8284610e71565b9392505050565b60006110e082610f8e565b91506110ec8284610e06565b50602001919050565b60006110e082610fea565b60208101610ad48284610cd0565b6040810161111c8285610cd0565b6110ce6020830184610cd0565b604081016111378286610cd0565b818103602083015261114a818486610e17565b95945050505050565b60408082528101611165818688610cdf565b9050818103602083015261117a818486610d85565b9695505050505050565b602080825281016110ce8184610d37565b60208101610ad48284610df4565b60208101610ad48284610dfd565b6040810161111c8285610dfd565b604081016111cd8285610dfd565b8181036020830152610b998184610e43565b60208101610ad48284610ea0565b602080825281016110ce8184610e43565b60208082528101610ad481610ea9565b60208082528101610ad481610f00565b60208082528101610ad481610f39565b6040808252810161123e81610fbb565b905081810360208301526110ce8184610e43565b60208082528101610ad481611023565b60208082528101610ad481611050565b60208082528101610ad481611089565b60200190565b5190565b90815260200190565b919050565b60006110ce6020840184610ac9565b6000808335601e19368590030181126112c157600080fd5b83810160208101935035915067ffffffffffffffff8211156112e257600080fd5b368290038413156112f257600080fd5b509250929050565b6000610ad48261130a565b151590565b6001600160a01b031690565b6000610ad4826112fa565b82818337506000910152565b60005b83811015611348578181015183820152602001611330565b83811115611357576000848401525b50505050565b601f01601f191690565b611370816112fa565b8114610a1f57600080fd5b6113708161033f56fea365627a7a7231582041497a549a290d6c796871dfbee0723ad019573e11b4c9c266d6f642598a51a56c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_temporaryOwner",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_ownershipDuration",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "DirectRelay",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address[]",
							"name": "targets",
							"type": "address[]"
						},
						{
							"indexed": false,
							"internalType": "bytes[]",
							"name": "payloads",
							"type": "bytes[]"
						}
					],
					"name": "RelayBatchFinalized",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "RelayFinalized",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "directRelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "expiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"internalType": "bytes",
							"name": "payload",
							"type": "bytes"
						}
					],
					"name": "finalizeRelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "targets",
							"type": "address[]"
						},
						{
							"internalType": "bytes[]",
							"name": "payloads",
							"type": "bytes[]"
						}
					],
					"name": "finalizeRelayBatch",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_duration",
							"type": "uint256"
						}
					],
					"name": "setNewExpiryTime",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "temporaryOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xcbf35931a8a63393fb545169c8cb2be9b1bdee327053ee54e0482f84caa52479",
				"urls": [
					"bzz-raw://b34db87dac1ad694379cccb4688c2ff3ba560a35fb4e59273d23f95046d90134",
					"dweb:/ipfs/QmVYGJCiQv38E5RWspn4igsHtsw5JfGoqCuPZ4WDYrbQk7"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OwnerRelayOnOptimism.sol": "OwnerRelayOnOptimism"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OwnerRelayOnOptimism.sol": {
						"keccak256": "0xcbf35931a8a63393fb545169c8cb2be9b1bdee327053ee54e0482f84caa52479",
						"urls": [
							"bzz-raw://b34db87dac1ad694379cccb4688c2ff3ba560a35fb4e59273d23f95046d90134",
							"dweb:/ipfs/QmVYGJCiQv38E5RWspn4igsHtsw5JfGoqCuPZ4WDYrbQk7"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralEth": {
			"bytecode": "6080604052600d805460ff191660011790553480156200001e57600080fd5b506040516200476938038062004769833981016040819052620000419162000150565b8585858585858380876001600160a01b0381166200007c5760405162461bcd60e51b8152600401620000739062000261565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c99184906200023b565b60405180910390a150600280546001600160a01b039283166001600160a01b0319918216179091556006805498909216971696909617909555600492909255600a55600b5550506001600e5550620002e295505050505050565b80516200013081620002b2565b92915050565b80516200013081620002cc565b80516200013081620002d7565b60008060008060008060c087890312156200016a57600080fd5b600062000178898962000123565b96505060206200018b89828a0162000143565b95505060406200019e89828a0162000123565b9450506060620001b189828a0162000136565b9350506080620001c489828a0162000136565b92505060a0620001d789828a0162000136565b9150509295509295509295565b620001ef81620002a5565b82525050565b620001ef816200027c565b60006200020f60198362000273565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200024b8285620001e4565b6200025a6020830184620001f5565b9392505050565b60208082528101620001308162000200565b90815260200190565b6000620001308262000299565b90565b600062000130826200027c565b6001600160a01b031690565b600062000130826200028c565b620002bd816200027c565b8114620002c957600080fd5b50565b620002bd8162000289565b620002bd816200028c565b61447780620002f26000396000f3fe60806040526004361061020f5760003560e01c806372e18b6a11610118578063925ead11116100a0578063ba2de9bc1161006f578063ba2de9bc146105b0578063d2b8035a146105c5578063de81eda9146105e5578063e1ec3c6814610605578063f3f437031461063a5761020f565b8063925ead1114610546578063a76cdfa51461055b578063aa2d8ce31461057b578063b562a1ab1461059b5761020f565b8063846321a4116100e7578063846321a4146104af578063899ffef4146104cf5780638cd2e0c7146104f15780638da5cb5b1461051157806390abb4d9146105265761020f565b806372e18b6a14610445578063741853601461046557806379ba50971461047a5780637e1323551461048f5761020f565b8063379607f51161019b578063441a3e701161016a578063441a3e70146103bb57806347e7ef24146103db578063481c6a75146103ee57806353a47bb7146104035780635eb2ad01146104255761020f565b8063379607f51461034657806338245377146103665780634065b81b1461038657806341c738011461039b5761020f565b80631627540c116101e25780631627540c146102af57806323d60e2e146102cf5780632af64bd3146102ef57806330edd96114610311578063361e2086146103315761020f565b806304f3bcec1461021457806306c19e3f1461023f5780630710285c1461025f5780630aebeb4e14610281575b600080fd5b34801561022057600080fd5b5061022961065a565b6040516102369190614009565b60405180910390f35b61025261024d3660046136c0565b610669565b6040516102369190613f97565b34801561026b57600080fd5b5061027f61027a36600461355b565b61067f565b005b34801561028d57600080fd5b506102a161029c366004613684565b6106c5565b604051610236929190613fb3565b3480156102bb57600080fd5b5061027f6102ca3660046134e5565b61070e565b3480156102db57600080fd5b5061027f6102ea3660046135a8565b61076c565b3480156102fb57600080fd5b5061030461083b565b6040516102369190613f89565b34801561031d57600080fd5b5061025261032c366004613684565b610953565b34801561033d57600080fd5b50610252610971565b34801561035257600080fd5b5061027f610361366004613684565b610977565b34801561037257600080fd5b50610252610381366004613684565b610a4c565b34801561039257600080fd5b50610304610a5e565b3480156103a757600080fd5b506102526103b6366004613684565b610a67565b3480156103c757600080fd5b506102a16103d63660046136c0565b610b7f565b6102a16103e9366004613521565b610bca565b3480156103fa57600080fd5b50610229610be3565b34801561040f57600080fd5b50610418610bf2565b6040516102369190613f26565b34801561043157600080fd5b5061027f610440366004613521565b610c01565b34801561045157600080fd5b506103046104603660046135a8565b610c37565b34801561047157600080fd5b5061027f610cfb565b34801561048657600080fd5b5061027f610e4d565b34801561049b57600080fd5b506102526104aa3660046136c0565b610ee9565b3480156104bb57600080fd5b5061027f6104ca366004613684565b610f2e565b3480156104db57600080fd5b506104e4610f6b565b6040516102369190613f78565b3480156104fd57600080fd5b506102a161050c36600461355b565b6110fb565b34801561051d57600080fd5b50610418611116565b34801561053257600080fd5b5061027f610541366004613618565b611125565b34801561055257600080fd5b50610252611171565b34801561056757600080fd5b5061027f610576366004613684565b611177565b34801561058757600080fd5b50610252610596366004613684565b6111b4565b3480156105a757600080fd5b50610252611278565b3480156105bc57600080fd5b5061025261127e565b3480156105d157600080fd5b506102a16105e03660046136c0565b611284565b3480156105f157600080fd5b50610418610600366004613684565b611291565b34801561061157600080fd5b50610625610620366004613684565b6112ac565b604051610236999897969594939291906141ee565b34801561064657600080fd5b506102526106553660046134e5565b611306565b6002546001600160a01b031681565b60006106783484846000611318565b9392505050565b600061068c8484846119c0565b336000908152600f60205260409020549091506106af908263ffffffff611d2716565b336000908152600f602052604090205550505050565b6000806106d23384611d4c565b336000908152600f602052604090205491935091506106f7908263ffffffff611d2716565b336000908152600f60205260409020559092909150565b610716611e42565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610761908390613f26565b60405180910390a150565b610774611e42565b82811461079c5760405162461bcd60e51b815260040161079390614048565b60405180910390fd5b60005b8381101561082c5760008585838181106107b557fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909101819055925082916008915086868681811061080957fe5b60209081029290920135835250810191909152604001600020555060010161079f565b50610835610cfb565b50505050565b60006060610847610f6b565b905060005b815181101561094957600082828151811061086357fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a721906108b4908590600401613f97565b60206040518083038186803b1580156108cc57600080fd5b505afa1580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109049190810190613503565b6001600160a01b031614158061092f57506000818152600360205260409020546001600160a01b0316155b156109405760009350505050610950565b5060010161084c565b5060019150505b90565b6007818154811061096057fe5b600091825260209091200154905081565b600c5481565b600e805460010190819055336000908152600f60205260409020546109a2908363ffffffff611e6e16565b336000818152600f602052604080822093909355915184906109c390613f1b565b60006040518083038185875af1925050503d8060008114610a00576040519150601f19603f3d011682016040523d82523d6000602084013e610a05565b606091505b5050905080610a265760405162461bcd60e51b815260040161079390614058565b50600e548114610a485760405162461bcd60e51b815260040161079390614168565b5050565b60086020526000908152604090205481565b600d5460ff1681565b6000610a71613407565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152610afc611e96565b6001600160a01b031663fbfeca4082600a546004546040518463ffffffff1660e01b8152600401610b2f939291906141a5565b60206040518083038186803b158015610b4757600080fd5b505afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067891908101906136a2565b600080610b8c8484611eb7565b336000908152600f60205260409020549193509150610bb1908463ffffffff611d2716565b336000908152600f602052604090205590939092509050565b600080610bd8848434611f5c565b909590945092505050565b6006546001600160a01b031681565b6001546001600160a01b031681565b610c09611e42565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6007546000908414610c4b57506000610cf3565b60005b84811015610ced576000868683818110610c6457fe5b9050602002013590508060078381548110610c7b57fe5b906000526020600020015414610c9657600092505050610cf3565b60078281548110610ca357fe5b906000526020600020015460086000878786818110610cbe57fe5b9050602002013581526020019081526020016000205414610ce457600092505050610cf3565b50600101610c4e565b50600190505b949350505050565b6060610d05610f6b565b905060005b8151811015610a48576000828281518110610d2157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d639190613f10565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d8f929190613fc1565b60206040518083038186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ddf9190810190613503565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610e3b9084908490613fa5565b60405180910390a15050600101610d0a565b6001546001600160a01b03163314610e775760405162461bcd60e51b815260040161079390614038565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610eba926001600160a01b0391821692911690613f4f565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610ef3611e96565b6001600160a01b0316638a7399758484600a546004546040518563ffffffff1660e01b8152600401610b2f94939291906142da565b92915050565b610f36611e42565b600b8190556040517fd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d90610761908390613f97565b606080610f7661202d565b60408051600680825260e08201909252919250606091906020820160c08038833901905050905066119959541bdbdb60ca1b81600081518110610fb557fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110610fdf57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160028151811061100557fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061102e57fe5b6020026020010181815250506814de5b9d1a1cd554d160ba1b8160048151811061105457fe5b6020026020010181815250506d10dbdb1b185d195c985b155d1a5b60921b8160058151811061107f57fe5b6020026020010181815250506060611097838361207e565b90506110f38160078054806020026020016040519081016040528092919081815260200182805480156110e957602002820191906000526020600020905b8154815260200190600101908083116110d5575b505050505061207e565b935050505090565b60008061110a8533868661213a565b90969095509350505050565b6000546001600160a01b031681565b61112d611e42565b600d805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916107619160ff90911690613f89565b600a5481565b61117f611e42565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c90610761908390613f97565b60006111be613407565b506000828152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e0820152600890910154610100820152611249611e96565b6001600160a01b031663e99f9647826004546040518363ffffffff1660e01b8152600401610b2f929190614188565b60045481565b600b5481565b600080610bd884846122e9565b6009602052600090815260409020546001600160a01b031681565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460089097015495976001600160a01b0390951696939592949360ff9092169290919089565b600f6020526000908152604090205481565b600061132261272b565b61132a6127cd565b600d5460ff1661134c5760405162461bcd60e51b815260040161079390614118565b6000838152600860205260409020546113775760405162461bcd60e51b815260040161079390614068565b61137f612821565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b81526004016113aa9190613f97565b60206040518083038186803b1580156113c257600080fd5b505afa1580156113d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113fa9190810190613636565b156114175760405162461bcd60e51b8152600401610793906140f8565b600b548510156114395760405162461bcd60e51b815260040161079390614148565b6006546040516302d35b2d60e61b815260009182916001600160a01b039091169063b4d6cb40906114709089908990600401613fb3565b604080518083038186803b15801561148757600080fd5b505afa15801561149b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114bf9190810190613654565b915091508180156114ce575080155b6114ea5760405162461bcd60e51b8152600401610793906140d8565b6114f48786610ee9565b8611156115135760405162461bcd60e51b815260040161079390614138565b600061152a600c548861283c90919063ffffffff16565b9050600061153e888363ffffffff611e6e16565b9050600660009054906101000a90046001600160a01b03166001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561159057600080fd5b505af11580156115a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115c891908101906136a2565b60408051610120810182528281523360208083019182528284018e8152606084018d8152608085018f81528d151560a08701908152600060c0880181815260e08901828152426101008b019081528c84526005988990529a9092209851895596516001890180546001600160a01b0319166001600160a01b03909216919091179055935160028801559151600387015551600486015551918401805460ff191692151592909217909155905160068301555160078201559051600882015590955061169290612851565b61169c8288612943565b851561188f576116aa612b2f565b6001600160a01b031663867904b4336116c1612821565b6001600160a01b031663654a60ac8b86631cd554d160e21b6040518463ffffffff1660e01b81526004016116f793929190613fe1565b60206040518083038186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061174791908101906136a2565b6040518363ffffffff1660e01b8152600401611764929190613f34565b600060405180830381600087803b15801561177e57600080fd5b505af1158015611792573d6000803e3d6000fd5b505060065460405163e31f27c160e01b81526001600160a01b03909116925063e31f27c191506117c8908a908c90600401613fb3565b600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b5050506000888152600960205260409020546001600160a01b031615905061188a576000878152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906118579033908c90600401613f34565b600060405180830381600087803b15801561187157600080fd5b505af1158015611885573d6000803e3d6000fd5b505050505b61196b565b6000878152600860205260409020546118a790612b46565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016118d4929190613f34565b600060405180830381600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b50506006546040516375ca5def60e11b81526001600160a01b03909116925063eb94bbde9150611938908a908c90600401613fb3565b600060405180830381600087803b15801561195257600080fd5b505af1158015611966573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a868a8c8b876040516119ac9594939291906142f5565b60405180910390a250505050949350505050565b60006119ca61272b565b6119d26127cd565b600082116119f25760405162461bcd60e51b815260040161079390614178565b60006119fe8486612b51565b9050611a0f33826003015485612ba5565b600a54611a1a611e96565b6001600160a01b031663e99f9647836004546040518363ffffffff1660e01b8152600401611a499291906141d0565b60206040518083038186803b158015611a6157600080fd5b505afa158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a9991908101906136a2565b10611ab65760405162461bcd60e51b815260040161079390614158565b6000611ac0611e96565b6001600160a01b031663fbfeca4083600a546004546040518463ffffffff1660e01b8152600401611af3939291906141df565b60206040518083038186803b158015611b0b57600080fd5b505afa158015611b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b4391908101906136a2565b90506000848210611b545784611b56565b815b90506000611b7584600601548560040154611d2790919063ffffffff16565b9050808210611b9657611b89883386612c5d565b9550610678945050505050565b611ba533856003015484612ba5565b611baf8483612cce565b611bb7611e96565b6001600160a01b0316633c4aa0f38560030154846004546040518463ffffffff1660e01b8152600401611bec93929190613fe1565b60206040518083038186803b158015611c0457600080fd5b505afa158015611c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c3c91908101906136a2565b6002850154909550611c54908663ffffffff611e6e16565b60028501556003840154600090815260086020526040902054611c7690612b46565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b8152600401611ca3929190613f34565b600060405180830381600087803b158015611cbd57600080fd5b505af1158015611cd1573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c588338589604051611d149493929190614274565b60405180910390a2505050509392505050565b6000828201838110156106785760405162461bcd60e51b815260040161079390614078565b600080611d5761272b565b611d5f6127cd565b6000611d6b8486612b51565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e08201526008820154610100820152909150611de790612ebd565b611df2858683612f0a565b60405191945092506001600160a01b038616907fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f90611e32908790613f97565b60405180910390a2509250929050565b6000546001600160a01b03163314611e6c5760405162461bcd60e51b8152600401610793906140b8565b565b600082821115611e905760405162461bcd60e51b815260040161079390614098565b50900390565b6000611eb26d10dbdb1b185d195c985b155d1a5b60921b613170565b905090565b600080611ec261272b565b611eca6127cd565b6000611ed68533612b51565b6002810154909150611eee908563ffffffff611e6e16565b6002820155611efc816131cd565b336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330386868460020154604051611f3d93929190613fe1565b60405180910390a28060040154816002015492509250505b9250929050565b600080611f6761272b565b611f6f6127cd565b60008311611f8f5760405162461bcd60e51b815260040161079390614128565b60008481526005602052604090206007810154611fab90613206565b611fb481612851565b6002810154611fc9908563ffffffff611d2716565b600282018190556040516001600160a01b038816917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c9161200e918991899190613fe1565b60405180910390a2806004015481600201549250925050935093915050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061206f57fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156120ae578160200160208202803883390190505b50905060005b83518110156120f0578381815181106120c957fe5b60200260200101518282815181106120dd57fe5b60209081029190910101526001016120b4565b5060005b82518110156121335782818151811061210957fe5b602002602001015182828651018151811061212057fe5b60209081029190910101526001016120f4565b5092915050565b60008061214561272b565b61214d6127cd565b6000848152600560208181526040928390208351610120810185528154815260018201546001600160a01b03169281019290925260028101549382019390935260038301546060820152600483015460808201529082015460ff16151560a0820152600682015460c0820152600782015460e082015260088201546101008201526121d790612ebd565b6121e686826003015486612ba5565b6121ef81612851565b6121f98185612cce565b600381015460009081526008602052604090205461221690612b46565b6001600160a01b0316639dc29fac87866040518363ffffffff1660e01b8152600401612243929190613f6a565b600060405180830381600087803b15801561225d57600080fd5b505af1158015612271573d6000803e3d6000fd5b50505050428160080181905550856001600160a01b0316876001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f878785600401546040516122c993929190613fe1565b60405180910390a380600401548160020154925092505094509492505050565b6000806122f461272b565b6122fc6127cd565b60006123088533612b51565b60408051610120810182528254815260018301546001600160a01b031660208201526002830154918101919091526003820154606082015260048201546080820152600582015460ff16151560a0820152600682015460c0820152600782015460e0820152600882015461010082015290915061238490612ebd565b6004810154612399908563ffffffff611d2716565b60048201556123a7816131cd565b60006123be600c548661283c90919063ffffffff16565b905060006123d2868363ffffffff611e6e16565b600584015490915060ff16156125df57600654600384015460405163e31f27c160e01b81526001600160a01b039092169163e31f27c191612417918a90600401613fb3565b600060405180830381600087803b15801561243157600080fd5b505af1158015612445573d6000803e3d6000fd5b50505050612451612b2f565b6001600160a01b031663867904b433612468612821565b6001600160a01b031663654a60ac876003015486631cd554d160e21b6040518463ffffffff1660e01b81526004016124a293929190613fe1565b60206040518083038186803b1580156124ba57600080fd5b505afa1580156124ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124f291908101906136a2565b6040518363ffffffff1660e01b815260040161250f929190613f34565b600060405180830381600087803b15801561252957600080fd5b505af115801561253d573d6000803e3d6000fd5b5050505060038301546000908152600960205260409020546001600160a01b0316156125da5760038301546000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906125a79033908a90600401613f34565b600060405180830381600087803b1580156125c157600080fd5b505af11580156125d5573d6000803e3d6000fd5b505050505b6126c3565b60065460038401546040516375ca5def60e11b81526001600160a01b039092169163eb94bbde91612614918a90600401613fb3565b600060405180830381600087803b15801561262e57600080fd5b505af1158015612642573d6000803e3d6000fd5b50505060038401546000908152600860205260409020546126639150612b46565b6001600160a01b031663867904b433836040518363ffffffff1660e01b8152600401612690929190613f34565b600060405180830381600087803b1580156126aa57600080fd5b505af11580156126be573d6000803e3d6000fd5b505050505b6126d1828460030154612943565b42600884015560405133907f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf3583106549061270b908a908a90613fb3565b60405180910390a282600401548360020154945094505050509250929050565b612733612821565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b81526004016127609190613f97565b60206040518083038186803b15801561277857600080fd5b505afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127b09190810190613636565b15611e6c5760405162461bcd60e51b8152600401610793906140f8565b6127d5613223565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561280d57600080fd5b505afa158015610835573d6000803e3d6000fd5b6000611eb26c45786368616e6765526174657360981b613170565b60006106788383670de0b6b3a764000061323d565b600654600782015460038301546005840154604051634002a33360e11b815260009485946001600160a01b03909116936380054666936128999360ff909116906004016142b2565b6040805180830381600087803b1580156128b257600080fd5b505af11580156128c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128ea91908101906136df565b9150915060008360070154600014612916576004840154612911908463ffffffff61327916565b612919565b60005b6006850154909150612931908263ffffffff611d2716565b60068501555060079092019190915550565b8115610a4857631cd554d160e21b81146129e85761295f612821565b6001600160a01b031663654a60ac8284631cd554d160e21b6040518463ffffffff1660e01b815260040161299593929190613fe1565b60206040518083038186803b1580156129ad57600080fd5b505afa1580156129c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129e591908101906136a2565b91505b6129f0612b2f565b6001600160a01b031663867904b4612a066132a3565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015612a3e57600080fd5b505afa158015612a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a769190810190613503565b846040518363ffffffff1660e01b8152600401612a94929190613f6a565b600060405180830381600087803b158015612aae57600080fd5b505af1158015612ac2573d6000803e3d6000fd5b50505050612ace6132a3565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b8152600401612af99190613f97565b600060405180830381600087803b158015612b1357600080fd5b505af1158015612b27573d6000803e3d6000fd5b505050505050565b6000611eb26814de5b9d1a1cd554d160ba1b613170565b6000610f2882613170565b60008281526005602052604090206007810154612b6d90613206565b60018101546001600160a01b03838116911614612b9c5760405162461bcd60e51b815260040161079390614108565b610f2881612851565b6000828152600860205260409020548190612bbf90612b46565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401612bea9190613f26565b60206040518083038186803b158015612c0257600080fd5b505afa158015612c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c3a91908101906136a2565b1015612c585760405162461bcd60e51b8152600401610793906140a8565b505050565b600080612c6b858585612f0a565b8092508193505050836001600160a01b0316856001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb85600001548585604051612cbe93929190613fe1565b60405180910390a3935093915050565b60008111612cee5760405162461bcd60e51b815260040161079390614178565b600682015415612d5057600082600601548211612d0b5781612d11565b82600601545b6006840154909150612d29908263ffffffff611e6e16565b6006840155612d3e828263ffffffff611e6e16565b9150612d4e818460030154612943565b505b8015610a48576004820154612d6b908263ffffffff611e6e16565b6004830155600582015460ff1615612e88576006546003830154604051635246f2b960e01b81526001600160a01b0390921691635246f2b991612db2918590600401613fb3565b600060405180830381600087803b158015612dcc57600080fd5b505af1158015612de0573d6000803e3d6000fd5b5050505060038201546000908152600960205260409020546001600160a01b031615612e8357600382015460009081526009602052604090819020546001840154915163f3fef3a360e01b81526001600160a01b039182169263f3fef3a392612e50929116908590600401613f34565b600060405180830381600087803b158015612e6a57600080fd5b505af1158015612e7e573d6000803e3d6000fd5b505050505b610a48565b600654600383015460405163e50a31b360e01b81526001600160a01b039092169163e50a31b391612af9918590600401613fb3565b612eca8160e00151613206565b42612ee9612ed7306132b8565b6101008401519063ffffffff611d2716565b1115612f075760405162461bcd60e51b8152600401610793906140e8565b50565b6000806000612f2a84600601548560040154611d2790919063ffffffff16565b90508360040154925083600201549150612f4985856003015483612ba5565b6003840154600090815260086020526040902054612f6690612b46565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b8152600401612f93929190613f6a565b600060405180830381600087803b158015612fad57600080fd5b505af1158015612fc1573d6000803e3d6000fd5b50505050600584015460ff16156130df576006546003850154600480870154604051635246f2b960e01b81526001600160a01b0390941693635246f2b99361300c9390929101613fb3565b600060405180830381600087803b15801561302657600080fd5b505af115801561303a573d6000803e3d6000fd5b5050505060038401546000908152600960205260409020546001600160a01b0316156130da5760038401546000908152600960205260409081902054600480870154925163f3fef3a360e01b81526001600160a01b039092169263f3fef3a3926130a7928b929101613f6a565b600060405180830381600087803b1580156130c157600080fd5b505af11580156130d5573d6000803e3d6000fd5b505050505b61314c565b600654600385015460048087015460405163e50a31b360e01b81526001600160a01b039094169363e50a31b3936131199390929101613fb3565b600060405180830381600087803b15801561313357600080fd5b505af1158015613147573d6000803e3d6000fd5b505050505b61315e84600601548560030154612943565b6131678461338b565b50935093915050565b60008181526003602090815260408083205490516001600160a01b0390911691821515916131a091869101613ef0565b604051602081830303815290604052906121335760405162461bcd60e51b81526004016107939190614017565b60048101546131db57612f07565b600a5481546131e9906111b4565b11612f075760405162461bcd60e51b815260040161079390614028565b80612f075760405162461bcd60e51b815260040161079390614088565b6000611eb26b53797374656d53746174757360a01b613170565b600080600a8304613254868663ffffffff6133b016565b8161325b57fe5b0490506005600a82061061326d57600a015b600a9004949350505050565b6000670de0b6b3a7640000613294848463ffffffff6133b016565b8161329b57fe5b049392505050565b6000611eb266119959541bdbdb60ca1b613170565b60006132c26133ea565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f696e746572616374696f6e44656c617960801b85604051602001613308929190613eca565b604051602081830303815290604052805190602001206040518363ffffffff1660e01b815260040161333b929190613fb3565b60206040518083038186803b15801561335357600080fd5b505afa158015613367573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f2891908101906136a2565b6000600482018190556002820181905560068201819055600782015542600890910155565b6000826133bf57506000610f28565b828202828482816133cc57fe5b04146106785760405162461bcd60e51b8152600401610793906140c8565b6000611eb26e466c657869626c6553746f7261676560881b613170565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035610f288161440e565b8051610f288161440e565b60008083601f84011261348957600080fd5b50813567ffffffffffffffff8111156134a157600080fd5b602083019150836020820283011115611f5557600080fd5b8035610f2881614422565b8051610f2881614422565b8035610f288161442b565b8051610f288161442b565b6000602082840312156134f757600080fd5b6000610cf38484613461565b60006020828403121561351557600080fd5b6000610cf3848461346c565b6000806040838503121561353457600080fd5b60006135408585613461565b9250506020613551858286016134cf565b9150509250929050565b60008060006060848603121561357057600080fd5b600061357c8686613461565b935050602061358d868287016134cf565b925050604061359e868287016134cf565b9150509250925092565b600080600080604085870312156135be57600080fd5b843567ffffffffffffffff8111156135d557600080fd5b6135e187828801613477565b9450945050602085013567ffffffffffffffff81111561360057600080fd5b61360c87828801613477565b95989497509550505050565b60006020828403121561362a57600080fd5b6000610cf384846134b9565b60006020828403121561364857600080fd5b6000610cf384846134c4565b6000806040838503121561366757600080fd5b600061367385856134c4565b9250506020613551858286016134c4565b60006020828403121561369657600080fd5b6000610cf384846134cf565b6000602082840312156136b457600080fd5b6000610cf384846134da565b600080604083850312156136d357600080fd5b600061354085856134cf565b600080604083850312156136f257600080fd5b60006136fe85856134da565b9250506020613551858286016134da565b600061371b83836137ae565b505060200190565b61372c8161437b565b82525050565b61372c8161436b565b61372c6137478261436b565b6143ed565b600061375782614347565b613761818561434b565b935061376c83614341565b8060005b8381101561379a578151613784888261370f565b975061378f83614341565b925050600101613770565b509495945050505050565b61372c81614376565b61372c81610950565b61372c6137c382610950565b610950565b61372c81614382565b60006137dc82614347565b6137e6818561434b565b93506137f681856020860161438d565b6137ff816143fe565b9093019392505050565b6000613816600e8361434b565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b600061384060358361434b565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061389760158361434b565b74082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b815260200192915050565b60006138c8600f8361434b565b6e151c985b9cd9995c8819985a5b1959608a1b815260200192915050565b60006138f360148361434b565b734e6f7420616c6c6f77656420746f20697373756560601b815260200192915050565b6000613923601b8361434b565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061395c600e8361434b565b6d131bd85b881a5cc818db1bdcd95960921b815260200192915050565b6000613986601e8361434b565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006139bf601183614354565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006139ec60128361434b565b714e6f7420656e6f7567682062616c616e636560701b815260200192915050565b6000613a1a602f8361434b565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613a6b60218361434b565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613aae601a8361434b565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b6000613ae760138361434b565b72149958d95b9d1b1e481a5b9d195c9858dd1959606a1b815260200192915050565b6000613b16601983614354565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613b4f600c8361434b565b6b496e76616c6964207261746560a01b815260200192915050565b6000613b7760108361434b565b6f26bab9ba103132903137b93937bbb2b960811b815260200192915050565b6000610f28600083614354565b6000613bb0600d8361434b565b6c13dc195b88191a5cd8589b1959609a1b815260200192915050565b6000613bd960178361434b565b7f4465706f736974206d7573742062652061626f76652030000000000000000000815260200192915050565b6000613c1260178361434b565b7f457863656564206d617820626f72726f7720706f776572000000000000000000815260200192915050565b6000613c4b60158361434b565b74139bdd08195b9bdd59da0818dbdb1b185d195c985b605a1b815260200192915050565b6000613c7c60168361434b565b7543726174696f2061626f7665206c697120726174696f60501b815260200192915050565b6000613cae601f8361434b565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b6000613ce760178361434b565b7f5061796d656e74206d7573742062652061626f76652030000000000000000000815260200192915050565b8051610120830190613d2584826137ae565b506020820151613d386020850182613732565b506040820151613d4b60408501826137ae565b506060820151613d5e60608501826137ae565b506080820151613d7160808501826137ae565b5060a0820151613d8460a08501826137a5565b5060c0820151613d9760c08501826137ae565b5060e0820151613daa60e08501826137ae565b506101008201516108356101008501826137ae565b8054610120830190613dd0816143df565b613dda85826137ae565b50506001820154613dea816143b9565b613df76020860182613732565b50506002820154613e07816143df565b613e1460408601826137ae565b50506003820154613e24816143df565b613e3160608601826137ae565b50506004820154613e41816143df565b613e4e60808601826137ae565b50506005820154613e5e816143cc565b613e6b60a08601826137a5565b50506006820154613e7b816143df565b613e8860c08601826137ae565b50506007820154613e98816143df565b613ea560e08601826137ae565b50506008820154613eb5816143df565b613ec36101008601826137ae565b5050505050565b6000613ed682856137b7565b602082019150613ee6828461373b565b5060140192915050565b6000613efb826139b2565b9150613f0782846137b7565b50602001919050565b6000613efb82613b09565b6000610f2882613b96565b60208101610f288284613732565b60408101613f428285613723565b61067860208301846137ae565b60408101613f5d8285613732565b6106786020830184613732565b60408101613f428285613732565b60208082528101610678818461374c565b60208101610f2882846137a5565b60208101610f2882846137ae565b60408101613f5d82856137ae565b60408101613f4282856137ae565b60408101613fcf82856137ae565b8181036020830152610cf381846137d1565b60608101613fef82866137ae565b613ffc60208301856137ae565b610cf360408301846137ae565b60208101610f2882846137c8565b6020808252810161067881846137d1565b60208082528101610f2881613809565b60208082528101610f2881613833565b60208082528101610f288161388a565b60208082528101610f28816138bb565b60208082528101610f28816138e6565b60208082528101610f2881613916565b60208082528101610f288161394f565b60208082528101610f2881613979565b60208082528101610f28816139df565b60208082528101610f2881613a0d565b60208082528101610f2881613a5e565b60208082528101610f2881613aa1565b60208082528101610f2881613ada565b60208082528101610f2881613b42565b60208082528101610f2881613b6a565b60208082528101610f2881613ba3565b60208082528101610f2881613bcc565b60208082528101610f2881613c05565b60208082528101610f2881613c3e565b60208082528101610f2881613c6f565b60208082528101610f2881613ca1565b60208082528101610f2881613cda565b61014081016141978285613d13565b6106786101208301846137ae565b61016081016141b48286613d13565b6141c26101208301856137ae565b610cf36101408301846137ae565b61014081016141978285613dbf565b61016081016141b48286613dbf565b61012081016141fd828c6137ae565b61420a602083018b613732565b614217604083018a6137ae565b61422460608301896137ae565b61423160808301886137ae565b61423e60a08301876137a5565b61424b60c08301866137ae565b61425860e08301856137ae565b6142666101008301846137ae565b9a9950505050505050505050565b6080810161428282876137ae565b61428f6020830186613723565b61429c60408301856137ae565b6142a960608301846137ae565b95945050505050565b606081016142c082866137ae565b6142cd60208301856137ae565b610cf360408301846137a5565b608081016142e882876137ae565b61428f60208301866137ae565b60a0810161430382886137ae565b61431060208301876137ae565b61431d60408301866137ae565b61432a60608301856137ae565b61433760808301846137ae565b9695505050505050565b60200190565b5190565b90815260200190565b919050565b6001600160a01b031690565b60ff1690565b6000610f2882614359565b151590565b6000610f28825b6000610f288261436b565b60005b838110156143a8578181015183820152602001614390565b838111156108355750506000910152565b6000610f286143c783610950565b614359565b6000610f286143da83610950565b614365565b6000610f286137c383610950565b6000610f28826000610f2882614408565b601f01601f191690565b60601b90565b6144178161436b565b8114612f0757600080fd5b61441781614376565b6144178161095056fea365627a7a723158207ea733850eab679e1a0115a60d2318d891ec530c9063b5a96fa092a6360815b46c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract ICollateralManager",
							"name": "_manager",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_collateralKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canOpenLoans",
							"type": "bool"
						}
					],
					"name": "CanOpenLoansUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountDeposited",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByRepayment",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issuanceFee",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanDrawnDown",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "repayer",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfter",
							"type": "uint256"
						}
					],
					"name": "LoanRepaymentMade",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCollateral",
							"type": "uint256"
						}
					],
					"name": "MinCollateralUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "rewardsContract",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "synth",
							"type": "bytes32"
						}
					],
					"name": "addRewardsContracts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addSynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_synthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_synthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areSynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "canOpenLoans",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "claim",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "close",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "collateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "draw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "liquidate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "liqAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "loans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address payable",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "short",
							"type": "bool"
						},
						{
							"internalType": "uint256",
							"name": "accruedInterest",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "interestIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastInteraction",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "manager",
					"outputs": [
						{
							"internalType": "contract ICollateralManager",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCratio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "open",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "pendingWithdrawals",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_canOpenLoans",
							"type": "bool"
						}
					],
					"name": "setCanOpenLoans",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"name": "setMinCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortingRewards",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "synths",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "principal",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xd83c3667bcacd4d33cf0fc649cee03d85e7d3914abb7ce6c9898e6ee1d66da81",
				"urls": [
					"bzz-raw://77bd631dcee01051f611ea2927feb37c87f5532ce90537b2dc9b8952b85c3576",
					"dweb:/ipfs/QmWHiciYDoG7sNnyA7kUzeSmQy4EVV8ktrDNVHDuQhq7tx"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralEth.sol": "CollateralEth"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralEth.sol": {
						"keccak256": "0xd83c3667bcacd4d33cf0fc649cee03d85e7d3914abb7ce6c9898e6ee1d66da81",
						"urls": [
							"bzz-raw://77bd631dcee01051f611ea2927feb37c87f5532ce90537b2dc9b8952b85c3576",
							"dweb:/ipfs/QmWHiciYDoG7sNnyA7kUzeSmQy4EVV8ktrDNVHDuQhq7tx"
						]
					}
				},
				"version": 1
			}
		},
		"StakingRewards": {
			"bytecode": "60806040526000600755600060085562093a8060095534801561002157600080fd5b506040516118453803806118458339818101604052608081101561004457600080fd5b5080516020820151604083015160609093015191929091836001600160a01b0381166100b7576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15060016003556000546001600160a01b0316610166576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600580546001600160a01b0393841661010002610100600160a81b0319909116179055600680549183166001600160a01b03199283161790556002805493909216921691909117905550611686806101bf6000396000f3fe608060405234801561001057600080fd5b50600436106101e45760003560e01c806372f702f31161010f578063a694fc3a116100a2578063d1af0c7d11610071578063d1af0c7d14610448578063df136d6514610450578063e9fad8ee14610458578063ebe2b12b14610460576101e4565b8063a694fc3a146103fe578063c8f33c911461041b578063cc1a378f14610423578063cd3daf9d14610440576101e4565b80638980f11f116100de5780638980f11f1461039c5780638b876347146103c85780638da5cb5b146103ee57806391b4ded9146103f6576101e4565b806372f702f31461037c57806379ba5097146103845780637b0a47ee1461038c57806380faa57d14610394576101e4565b80632e1a7d4d116101875780633fc6df6e116101565780633fc6df6e1461030e57806353a47bb7146103325780635c975abb1461033a57806370a0823114610356576101e4565b80632e1a7d4d146102c4578063386a9525146102e15780633c6b16ab146102e95780633d18b91214610306576101e4565b806316c38b3c116101c357806316c38b3c1461026f57806318160ddd1461028e57806319762143146102965780631c1f78eb146102bc576101e4565b80628cc262146101e95780630700037d146102215780631627540c14610247575b600080fd5b61020f600480360360208110156101ff57600080fd5b50356001600160a01b0316610468565b60408051918252519081900360200190f35b61020f6004803603602081101561023757600080fd5b50356001600160a01b03166104fe565b61026d6004803603602081101561025d57600080fd5b50356001600160a01b0316610510565b005b61026d6004803603602081101561028557600080fd5b5035151561056c565b61020f6105e6565b61026d600480360360208110156102ac57600080fd5b50356001600160a01b03166105ed565b61020f610617565b61026d600480360360208110156102da57600080fd5b5035610635565b61020f6107d7565b61026d600480360360208110156102ff57600080fd5b50356107dd565b61026d610a33565b610316610b71565b604080516001600160a01b039092168252519081900360200190f35b610316610b80565b610342610b8f565b604080519115158252519081900360200190f35b61020f6004803603602081101561036c57600080fd5b50356001600160a01b0316610b98565b610316610bb3565b61026d610bc2565b61020f610c7e565b61020f610c84565b61026d600480360360408110156103b257600080fd5b506001600160a01b038135169060200135610c9c565b61020f600480360360208110156103de57600080fd5b50356001600160a01b0316610d59565b610316610d6b565b61020f610d7a565b61026d6004803603602081101561041457600080fd5b5035610d80565b61020f610f5e565b61026d6004803603602081101561043957600080fd5b5035610f64565b61020f610fe7565b610316611041565b61020f611055565b61026d61105b565b61020f61107e565b6001600160a01b0381166000908152600d6020908152604080832054600c9092528220546104f891906104ec90670de0b6b3a7640000906104e0906104bb906104af610fe7565b9063ffffffff61108416565b6001600160a01b0388166000908152600f60205260409020549063ffffffff6110e116565b9063ffffffff61114116565b9063ffffffff6111ab16565b92915050565b600d6020526000908152604090205481565b610518611205565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610574611205565b60055460ff161515811515141561058a576105e3565b6005805460ff1916821515179081905560ff16156105a757426004555b6005546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b600e545b90565b6105f5611205565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006106306009546008546110e190919063ffffffff16565b905090565b600380546001019081905533610649610fe7565b600b55610654610c84565b600a556001600160a01b0381161561069b5761066f81610468565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b600083116106e4576040805162461bcd60e51b8152602060048201526011602482015270043616e6e6f74207769746864726177203607c1b604482015290519081900360640190fd5b600e546106f7908463ffffffff61108416565b600e55336000908152600f602052604090205461071a908463ffffffff61108416565b336000818152600f6020526040902091909155600654610746916001600160a01b03909116908561124e565b60408051848152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25060035481146107d3576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b60095481565b6002546001600160a01b031633146108265760405162461bcd60e51b815260040180806020018281038252602a8152602001806115dd602a913960400191505060405180910390fd5b6000610830610fe7565b600b5561083b610c84565b600a556001600160a01b038116156108825761085681610468565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b60075442106108a75760095461089f90839063ffffffff61114116565b6008556108f6565b6007546000906108bd904263ffffffff61108416565b905060006108d6600854836110e190919063ffffffff16565b6009549091506108f0906104e0868463ffffffff6111ab16565b60085550505b600554604080516370a0823160e01b8152306004820152905160009261010090046001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561094657600080fd5b505afa15801561095a573d6000803e3d6000fd5b505050506040513d602081101561097057600080fd5b505160095490915061098990829063ffffffff61114116565b60085411156109df576040805162461bcd60e51b815260206004820152601860248201527f50726f76696465642072657761726420746f6f20686967680000000000000000604482015290519081900360640190fd5b42600a8190556009546109f8919063ffffffff6111ab16565b6007556040805184815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a1505050565b600380546001019081905533610a47610fe7565b600b55610a52610c84565b600a556001600160a01b03811615610a9957610a6d81610468565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b336000908152600d60205260409020548015610b1957336000818152600d6020526040812055600554610ae2916101009091046001600160a01b0316908363ffffffff61124e16565b60408051828152905133917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a25b505060035481146105e3576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002546001600160a01b031681565b6001546001600160a01b031681565b60055460ff1681565b6001600160a01b03166000908152600f602052604090205490565b6006546001600160a01b031681565b6001546001600160a01b03163314610c0b5760405162461bcd60e51b815260040180806020018281038252603581526020018061151c6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60085481565b60006007544210610c9757600754610630565b504290565b610ca4611205565b6006546001600160a01b0383811691161415610cf15760405162461bcd60e51b81526004018080602001828103825260218152602001806116316021913960400191505060405180910390fd5b600054610d11906001600160a01b0384811691168363ffffffff61124e16565b604080516001600160a01b03841681526020810183905281517f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28929181900390910190a15050565b600c6020526000908152604090205481565b6000546001600160a01b031681565b60045481565b600380546001019081905560055460ff1615610dcd5760405162461bcd60e51b815260040180806020018281038252603c8152602001806115a1603c913960400191505060405180910390fd5b33610dd6610fe7565b600b55610de1610c84565b600a556001600160a01b03811615610e2857610dfc81610468565b6001600160a01b0382166000908152600d6020908152604080832093909355600b54600c909152919020555b60008311610e6e576040805162461bcd60e51b815260206004820152600e60248201526d043616e6e6f74207374616b6520360941b604482015290519081900360640190fd5b600e54610e81908463ffffffff6111ab16565b600e55336000908152600f6020526040902054610ea4908463ffffffff6111ab16565b336000818152600f6020526040902091909155600654610ed1916001600160a01b039091169030866112a5565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a25060035481146107d3576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600a5481565b610f6c611205565b6007544211610fac5760405162461bcd60e51b81526004018080602001828103825260588152602001806114c46058913960600191505060405180910390fd5b60098190556040805182815290517ffb46ca5a5e06d4540d6387b930a7c978bce0db5f449ec6b3f5d07c6e1d44f2d39181900360200190a150565b6000600e5460001415610ffd5750600b546105ea565b610630611032600e546104e0670de0b6b3a7640000611026600854611026600a546104af610c84565b9063ffffffff6110e116565b600b549063ffffffff6111ab16565b60055461010090046001600160a01b031681565b600b5481565b336000908152600f602052604090205461107490610635565b61107c610a33565b565b60075481565b6000828211156110db576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826110f0575060006104f8565b828202828482816110fd57fe5b041461113a5760405162461bcd60e51b81526004018080602001828103825260218152602001806115806021913960400191505060405180910390fd5b9392505050565b6000808211611197576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816111a257fe5b04949350505050565b60008282018381101561113a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b0316331461107c5760405162461bcd60e51b815260040180806020018281038252602f815260200180611551602f913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526112a0908490611305565b505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526112ff908590611305565b50505050565b611317826001600160a01b03166114bd565b611368576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106113a65780518252601f199092019160209182019101611387565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611408576040519150601f19603f3d011682016040523d82523d6000602084013e61140d565b606091505b509150915081611464576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156112ff5780806020019051602081101561148057600080fd5b50516112ff5760405162461bcd60e51b815260040180806020018281038252602a815260200180611607602a913960400191505060405180910390fd5b3b15159056fe50726576696f7573207265776172647320706572696f64206d75737420626520636f6d706c657465206265666f7265206368616e67696e6720746865206475726174696f6e20666f7220746865206e657720706572696f64596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e74726163742069732070617573656443616c6c6572206973206e6f742052657761726473446973747269627574696f6e20636f6e74726163745361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656443616e6e6f7420776974686472617720746865207374616b696e6720746f6b656ea265627a7a7231582005c1c4d787ed4117d99706d539a422c50d928e74cd456ccfd64dcca42841eb8964736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_rewardsDistribution",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_rewardsToken",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_stakingToken",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "token",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Recovered",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "RewardAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "RewardPaid",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "RewardsDurationUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Staked",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Withdrawn",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "earned",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "exit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "getReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getRewardForDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastTimeRewardApplicable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastUpdateTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "notifyRewardAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "periodFinish",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "tokenAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "tokenAmount",
							"type": "uint256"
						}
					],
					"name": "recoverERC20",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardPerToken",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardPerTokenStored",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "rewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardsDistribution",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardsDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardsToken",
					"outputs": [
						{
							"internalType": "contract IERC20",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_rewardsDistribution",
							"type": "address"
						}
					],
					"name": "setRewardsDistribution",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_rewardsDuration",
							"type": "uint256"
						}
					],
					"name": "setRewardsDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "stake",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "stakingToken",
					"outputs": [
						{
							"internalType": "contract IERC20",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "userRewardPerTokenPaid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x9841ea1c48ac32392a4bfd0ed581d0950963aa09e866407736fc8b2adb6a25dd",
				"urls": [
					"bzz-raw://5140b93a58005ca48177234e633b53d8d1634d8a9d03672ca5e7bafa760c8342",
					"dweb:/ipfs/QmTsD5urBFpTFz8i5AqNsX3U4Tw5BHRiq4eyjBEiiKkBL1"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"StakingRewards.sol": "StakingRewards"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"StakingRewards.sol": {
						"keccak256": "0x9841ea1c48ac32392a4bfd0ed581d0950963aa09e866407736fc8b2adb6a25dd",
						"urls": [
							"bzz-raw://5140b93a58005ca48177234e633b53d8d1634d8a9d03672ca5e7bafa760c8342",
							"dweb:/ipfs/QmTsD5urBFpTFz8i5AqNsX3U4Tw5BHRiq4eyjBEiiKkBL1"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettingsLib": {
			"bytecode": "61227c610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106103a35760003560e01c806392dabaf2116101f3578063cff3fbb211610119578063f02d9a5b116100b7578063fbfd964611610086578063fbfd964614610b21578063fcaee852146103c2578063fd194a35146103c2578063fe250a5514610b68576103a3565b8063f02d9a5b14610aca578063f1076b2514610b09578063f344da6714610b11578063fb1b4c7e14610b19576103a3565b8063d9158b03116100f3578063d9158b0314610a44578063da91c7b81461087a578063e6abf7cc14610a83578063e78e6bb914610ac2576103a3565b8063cff3fbb21461075c578063d4aebcef146103c2578063d62ae3991461094d576103a3565b8063add0989d11610191578063c264b8f311610160578063c264b8f314610754578063c35b995c146109ac578063c404a0de146109ef578063c58c9ae414610a3c576103a3565b8063add0989d1461095d578063af8bc66014610965578063b2ea705414610754578063b3ebdca41461096d576103a3565b80639f91787d116101cd5780639f91787d14610945578063a4ce5b7114610955578063a6c46110146103c2578063aad237391461094d576103a3565b806392dabaf21461090657806394286a1e1461094557806398be8e3f1461094d576103a3565b80636a5b3043116102d85780637c1d99d6116102765780638134ddb7116102455780638134ddb7146108c1578063834f26de146103c257806383c2ab4d146103c25780638ab5a4a214610754576103a3565b80637c1d99d6146108315780637ce2cc7f146108725780637e1ba6a41461087a5780637eb294141461075c576103a3565b80636db97ffa116102b25780636db97ffa146103c257806372c6c341146107da57806375d0c0dc146107e25780637c14e56b146107ea576103a3565b80636a5b30431461075c5780636c5a9809146105ef5780636d4851f11461079b576103a3565b8063446ca4fd116103455780635d3045ab1161031f5780635d3045ab146106895780635f7ad871146106ce57806363daca0914610715578063657c6dc714610754576103a3565b8063446ca4fd146105ef57806353c0bf1c14610634578063580a975c14610681576103a3565b806311d78c0c1161038157806311d78c0c1461044257806319305b3c1461048d5780631a5bb1f7146104cc57806333ddab68146105b0576103a3565b8063085f95cd146103a85780630e7bf1c5146103c257806310ada72014610403575b600080fd5b6103b0610ba7565b60408051918252519081900360200190f35b8180156103ce57600080fd5b50610401600480360360608110156103e557600080fd5b506001600160a01b038135169060208101359060400135610bb3565b005b81801561040f57600080fd5b506103b06004803603606081101561042657600080fd5b506001600160a01b038135169060208101359060400135610c36565b81801561044e57600080fd5b50610401600480360360a081101561046557600080fd5b506001600160a01b038135169060208101359060408101359060608101359060800135610d9c565b81801561049957600080fd5b50610401600480360360608110156104b057600080fd5b506001600160a01b038135169060208101359060400135610f53565b8180156104d857600080fd5b50610401600480360360808110156104ef57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561051f57600080fd5b82018360208201111561053157600080fd5b8035906020019184602083028401116401000000008311171561055357600080fd5b91939092909160208101903564010000000081111561057157600080fd5b82018360208201111561058357600080fd5b803590602001918460208302840111640100000000831117156105a557600080fd5b509092509050610f99565b8180156105bc57600080fd5b50610401600480360360608110156105d357600080fd5b506001600160a01b038135169060208101359060400135611144565b8180156105fb57600080fd5b506104016004803603608081101561061257600080fd5b506001600160a01b0381351690602081013590604081013590606001356111c6565b81801561064057600080fd5b50610401600480360360a081101561065757600080fd5b506001600160a01b038135811691602081013591604082013516906060810135906080013561126e565b6103b0611430565b81801561069557600080fd5b50610401600480360360808110156106ac57600080fd5b506001600160a01b038135169060208101359060408101359060600135611437565b8180156106da57600080fd5b50610401600480360360808110156106f157600080fd5b506001600160a01b03813581169160208101359160408201359160600135166114bf565b81801561072157600080fd5b506104016004803603606081101561073857600080fd5b506001600160a01b0381351690602081013590604001356115a7565b6103b0611657565b81801561076857600080fd5b506104016004803603606081101561077f57600080fd5b506001600160a01b038135169060208101359060400135611663565b8180156107a757600080fd5b50610401600480360360608110156107be57600080fd5b506001600160a01b0381351690602081013590604001356116aa565b6103b06116f1565b6103b0611706565b8180156107f657600080fd5b506104016004803603608081101561080d57600080fd5b506001600160a01b038135169060208101359060408101359060600135151561171b565b81801561083d57600080fd5b506104016004803603606081101561085457600080fd5b506001600160a01b03813516906020810135906040013515156117a6565b6103b061180d565b81801561088657600080fd5b506104016004803603608081101561089d57600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611814565b8180156108cd57600080fd5b50610401600480360360808110156108e457600080fd5b506001600160a01b0381351690602081013590604081013590606001356118b1565b81801561091257600080fd5b506104016004803603606081101561092957600080fd5b506001600160a01b03813516906020810135906040013561190e565b6103b061196b565b6103b0611970565b6103b0611977565b6103b0611983565b6103b0611989565b81801561097957600080fd5b506104016004803603606081101561099057600080fd5b506001600160a01b03813516906020810135906040013561198e565b8180156109b857600080fd5b50610401600480360360608110156109cf57600080fd5b506001600160a01b03813581169160208101359160409091013516611a11565b8180156109fb57600080fd5b50610401600480360360a0811015610a1257600080fd5b506001600160a01b0381358116916020810135916040820135169060608101359060800135611ad5565b6103b0611bdb565b818015610a5057600080fd5b5061040160048036036060811015610a6757600080fd5b506001600160a01b038135169060208101359060400135611be2565b818015610a8f57600080fd5b5061040160048036036060811015610aa657600080fd5b506001600160a01b038135169060208101359060400135611c3a565b6103b0611ce9565b818015610ad657600080fd5b5061040160048036036060811015610aed57600080fd5b506001600160a01b038135169060208101359060400135611cf4565b6103b0611d5b565b6103b0611d62565b6103b0611d69565b818015610b2d57600080fd5b5061040160048036036080811015610b4457600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611d75565b818015610b7457600080fd5b5061040160048036036060811015610b8b57600080fd5b506001600160a01b038135169060208101359060400135611e2a565b670c7d713b49da000081565b60408051631d5b277f60e01b81526d53797374656d53657474696e677360901b6004820152602481018490526044810183905290516001600160a01b03851691631d5b277f91606480830192600092919082900301818387803b158015610c1957600080fd5b505af1158015610c2d573d6000803e3d6000fd5b50505050505050565b60006032821115610c83576040805162461bcd60e51b81526020600482015260126024820152710a8d0e4cae6d0ded8c840e8dede40d0d2ced60731b604482015290519081900360640190fd5b610d146064610d0873__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610ccf57600080fd5b505af4158015610ce3573d6000803e3d6000fd5b505050506040513d6020811015610cf957600080fd5b5051859063ffffffff611e8716565b9063ffffffff611ee916565b9050836001600160a01b0316631d5b277f6d53797374656d53657474696e677360901b85846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610d7d57600080fd5b505af1158015610d91573d6000803e3d6000fd5b505050509392505050565b610e34610e1f8373__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610de757600080fd5b505af4158015610dfb573d6000803e3d6000fd5b505050506040513d6020811015610e1157600080fd5b50519063ffffffff611f5316565b670de0b6b3a76400009063ffffffff611fad16565b831115610e725760405162461bcd60e51b81526004018080602001828103825260388152602001806120386038913960400191505060405180910390fd5b6000610e8c82671bc16d674ec8000063ffffffff611fcb16565b905080841015610ecd5760405162461bcd60e51b81526004018080602001828103825260288152602001806121946028913960400191505060405180910390fd5b60408051631d5b277f60e01b81526d53797374656d53657474696e677360901b6004820152602481018790526044810186905290516001600160a01b03881691631d5b277f91606480830192600092919082900301818387803b158015610f3357600080fd5b505af1158015610f47573d6000803e3d6000fd5b50505050505050505050565b6001600160c01b03811115610bb35760405162461bcd60e51b81526004018080602001828103825260288152602001806120916028913960400191505060405180910390fd5b828114610fed576040805162461bcd60e51b815260206004820152601860248201527f4172726179206c656e6774687320646f6e74206d617463680000000000000000604482015290519081900360640190fd5b60005b83811015610c2d5767016345785d8a000083838381811061100d57fe5b905060200201351115611067576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b866001600160a01b0316631d5b277f6d53797374656d53657474696e677360901b8888888681811061109557fe5b905060200201356040516020018083815260200182815260200192505050604051602081830303815290604052805190602001208686868181106110d557fe5b905060200201356040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561112057600080fd5b505af1158015611134573d6000803e3d6000fd5b505060019092019150610ff09050565b603c8110156111845760405162461bcd60e51b81526004018080602001828103825260268152602001806121146026913960400191505060405180910390fd5b62015180811115610bb35760405162461bcd60e51b81526004018080602001828103825260278152602001806121bc6027913960400191505060405180910390fd5b6040805160208082018690528183018590528251808303840181526060830180855281519190920120631d5b277f60e01b9091526d53797374656d53657474696e677360901b6064830152608482015260a4810183905290516001600160a01b03861691631d5b277f9160c480830192600092919082900301818387803b15801561125057600080fd5b505af1158015611264573d6000803e3d6000fd5b5050505050505050565b670de0b6b3a76400008213156112cb576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4d494e545f4645455f52415445604482015290519081900360640190fd5b670de0b6b3a763ffff198212156113135760405162461bcd60e51b81526004018080602001828103825260218152602001806120706021913960400191505060405180910390fd5b60008212156113745780826000031315611374576040805162461bcd60e51b815260206004820152601a60248201527f2d72617465203e20777261707065724275726e46656552617465000000000000604482015290519081900360640190fd5b6040805160208082018790526bffffffffffffffffffffffff19606087901b168284015282516034818403018152605483018085528151919092012063d71a9b0160e01b9091526d53797374656d53657474696e677360901b605883015260788201526098810184905290516001600160a01b0387169163d71a9b019160b880830192600092919082900301818387803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050505050505050565b62093a8081565b80156111c657603c81101561147d5760405162461bcd60e51b815260040180806020018281038252603a8152602001806120da603a913960400191505060405180910390fd5b620151808111156111c65760405162461bcd60e51b815260040180806020018281038252603b81526020018061220d603b913960400191505060405180910390fd5b6001600160a01b03811661151a576040805162461bcd60e51b815260206004820152601e60248201527f41746f6d6963206571756976616c656e74206973203020616464726573730000604482015290519081900360640190fd5b60408051602080820186905281830185905282518083038401815260608301808552815191909201206309b9412f60e31b9091526d53797374656d53657474696e677360901b606483015260848201526001600160a01b0383811660a4830152915191861691634dca09789160c48082019260009290919082900301818387803b15801561125057600080fd5b620151808110156115ff576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203c204d494e5f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b624f1a00811115610bb3576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203e204d41585f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b670de0b6b3a764000081565b670c7d713b49da0000811115610bb35760405162461bcd60e51b8152600401808060200182810382526021815260200180611ff66021913960400191505060405180910390fd5b670de0b6b3a7640000811115610bb35760405162461bcd60e51b815260040180806020018281038252603381526020018061213a6033913960400191505060405180910390fd5b6d53797374656d53657474696e677360901b81565b6d53797374656d53657474696e677360901b90565b6040805160208082018690528183018590528251808303840181526060830180855281519190920120630fca29bf60e21b9091526d53797374656d53657474696e677360901b6064830152608482015282151560a482015290516001600160a01b03861691633f28a6fc9160c480830192600092919082900301818387803b15801561125057600080fd5b60408051630fca29bf60e21b81526d53797374656d53657474696e677360901b600482015260248101849052821515604482015290516001600160a01b03851691633f28a6fc91606480830192600092919082900301818387803b158015610c1957600080fd5b622dc6c081565b6040805160208082018690526bffffffffffffffffffffffff19606086901b1682840152825160348184030181526054830180855281519190920120631d5b277f60e01b9091526d53797374656d53657474696e677360901b605883015260788201526098810183905290516001600160a01b03861691631d5b277f9160b880830192600092919082900301818387803b15801561125057600080fd5b67016345785d8a00008111156111c6576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b670de0b6b3a7640000811115610bb3576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4255524e5f4645455f52415445604482015290519081900360640190fd5b603c81565b6201518081565b671bc16d674ec8000081565b61012c81565b603281565b6203f4808111156119d05760405162461bcd60e51b815260040180806020018281038252602781526020018061216d6027913960400191505060405180910390fd5b61012c811015610bb35760405162461bcd60e51b815260040180806020018281038252602a8152602001806121e3602a913960400191505060405180910390fd5b6001600160a01b038116611a6c576040805162461bcd60e51b815260206004820152601b60248201527f56616c69642061646472657373206d75737420626520676976656e0000000000604482015290519081900360640190fd5b604080516309b9412f60e31b81526d53797374656d53657474696e677360901b6004820152602481018490526001600160a01b038381166044830152915191851691634dca09789160648082019260009290919082900301818387803b158015610c1957600080fd5b670de0b6b3a7640000821315611b32576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4255524e5f4645455f52415445604482015290519081900360640190fd5b670de0b6b3a763ffff19821215611b7a5760405162461bcd60e51b81526004018080602001828103825260218152602001806120176021913960400191505060405180910390fd5b60008212156113745780826000031315611374576040805162461bcd60e51b815260206004820152601a60248201527f2d72617465203e20777261707065724d696e7446656552617465000000000000604482015290519081900360640190fd5b62b71b0081565b62093a80811115610bb3576040805162461bcd60e51b815260206004820181905260248201527f7374616b652074696d6520657863656564206d6178696d756d2031207765656b604482015290519081900360640190fd5b80611c8c576040805162461bcd60e51b815260206004820152601b60248201527f4d61782064796e616d6963206665652063616e6e6f7420626520300000000000604482015290519081900360640190fd5b67016345785d8a0000811115610bb3576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b6001600160c01b0381565b622dc6c08110158015611d0a575062b71b008111155b610bb3576040805162461bcd60e51b815260206004820152601d60248201527f4f7574206f662072616e67652078446f6d61696e206761734c696d6974000000604482015290519081900360640190fd5b6203f48081565b624f1a0081565b67016345785d8a000081565b73__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611db957600080fd5b505af4158015611dcd573d6000803e3d6000fd5b505050506040513d6020811015611de357600080fd5b5051610e1002811115611814576040805162461bcd60e51b815260206004820152600a60248201526926b0bc1018903437bab960b11b604482015290519081900360640190fd5b670de0b6b3a7640000811115610bb3576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4d494e545f4645455f52415445604482015290519081900360640190fd5b600082611e9657506000611ee3565b82820282848281611ea357fe5b0414611ee05760405162461bcd60e51b81526004018080602001828103825260218152602001806120b96021913960400191505060405180910390fd5b90505b92915050565b6000808211611f3f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611f4a57fe5b04949350505050565b600082820183811015611ee0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611ee082610d0885670de0b6b3a764000063ffffffff611e8716565b6000670de0b6b3a7640000611fe6848463ffffffff611e8716565b81611fed57fe5b04939250505056fe70656e616c7479203e204d41585f4c49515549444154494f4e5f50454e414c545972617465203c202d4d41585f575241505045525f4255524e5f4645455f524154456c69717569646174696f6e526174696f203e204d41585f4c49515549444154494f4e5f524154494f202f202831202b2070656e616c74792972617465203c202d4d41585f575241505045525f4d494e545f4645455f5241544541746f6d6963206d617820766f6c756d6520657863656564206d6178696d756d2075696e74313932536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7741746f6d696320766f6c6174696c69747920636f6e73696465726174696f6e2077696e646f7720756e646572206d696e696d756d2031206d696e41746f6d696320747761702077696e646f7720756e646572206d696e696d756d2031206d696e4e65772069737375616e636520726174696f2063616e6e6f7420657863656564204d41585f49535355414e43455f524154494f4d757374206265206c657373207468616e204d41585f4c49515549444154494f4e5f44454c41596c69717569646174696f6e526174696f203c204d494e5f4c49515549444154494f4e5f524154494f41746f6d696320747761702077696e646f7720657863656564206d6178696d756d2031206461794d7573742062652067726561746572207468616e204d494e5f4c49515549444154494f4e5f44454c415941746f6d696320766f6c6174696c69747920636f6e73696465726174696f6e2077696e646f7720657863656564206d6178696d756d203120646179a265627a7a72315820cd8363b75bb13ef0742464a072a3de5915154d92220f428192cdca5e26a0706264736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ATOMIC_TWAP_WINDOW",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ATOMIC_VOLATILITY_CONSIDERATION_WINDOW",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ATOMIC_VOLUME_PER_BLOCK",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_CROSS_DOMAIN_GAS_LIMIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_EXCHANGE_FEE_RATE",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_FEE_PERIOD_DURATION",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ISSUANCE_RATIO",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_DELAY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_PENALTY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_RATIO",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_MINIMUM_STAKE_TIME",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_TARGET_THRESHOLD",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_WRAPPER_BURN_FEE_RATE",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_WRAPPER_MINT_FEE_RATE",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_ATOMIC_TWAP_WINDOW",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_ATOMIC_VOLATILITY_CONSIDERATION_WINDOW",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_CROSS_DOMAIN_GAS_LIMIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_FEE_PERIOD_DURATION",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_LIQUIDATION_DELAY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "RATIO_FROM_TARGET_BUFFER",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SETTINGS_CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "contractName",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xc4e328478f9c625bb34c4f019040afd62b9dfb8f03882727e39888d3173f09a9",
				"urls": [
					"bzz-raw://9b67af2b53422c1e714c9b0d692091b106859c2fac8086e0138f0097404cc9b8",
					"dweb:/ipfs/Qme6KcWY48toJuoEKLHh8SJuKNcJPYHp5jfxXaYsELUTXc"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SystemSettingsLib.sol": "SystemSettingsLib"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SystemSettingsLib.sol": {
						"keccak256": "0xc4e328478f9c625bb34c4f019040afd62b9dfb8f03882727e39888d3173f09a9",
						"urls": [
							"bzz-raw://9b67af2b53422c1e714c9b0d692091b106859c2fac8086e0138f0097404cc9b8",
							"dweb:/ipfs/Qme6KcWY48toJuoEKLHh8SJuKNcJPYHp5jfxXaYsELUTXc"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeRates": {
			"bytecode": "608060405234801561001057600080fd5b506040516133513803806133518339818101604052604081101561003357600080fd5b5080516020909101518080836001600160a01b03811661009a576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b031990921691909117905550505061322b806101266000396000f3fe608060405234801561001057600080fd5b50600436106102915760003560e01c8063614d08f811610160578063899ffef4116100d8578063c8e5bbd51161008c578063d89ee86111610071578063d89ee86114610929578063ed762450146109eb578063fdadbc7e14610aad57610291565b8063c8e5bbd51461083d578063ce8480ea1461090c57610291565b8063ac82f608116100bd578063ac82f6081461077d578063b295ad341461079a578063c2c8a676146107cd57610291565b8063899ffef41461076d5780638da5cb5b1461077557610291565b8063741853601161012f5780637a018a1e116101145780637a018a1e1461070a5780638295016a146107275780638661cc7b1461075057610291565b806374185360146106fa57806379ba50971461070257610291565b8063614d08f814610659578063654a60ac146106615780636ce66c801461068a5780637103353e146106dd57610291565b80632528f0fe1161020e5780633f0e084f116101c25780634c36b837116101a75780634c36b8371461062c5780634f72def61461063457806353a47bb71461065157610291565b80633f0e084f146105bd5780634308a94f146105f657610291565b80632af64bd3116101f35780632af64bd31461057b5780632bed9e0c1461058357806338aa1b99146105a057610291565b80632528f0fe1461052b5780632678df961461054857610291565b80630a7d36d1116102655780630ee4951b1161024a5780630ee4951b146104ad578063109e46a2146104c75780631627540c146104f657610291565b80630a7d36d1146104075780630c71cd231461047757610291565b80629919c01461029657806304f3bcec146102c7578063055286e0146102f857806305a046e514610347575b600080fd5b6102b3600480360360208110156102ac57600080fd5b5035610ad0565b604080519115158252519081900360200190f35b6102cf610aeb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103216004803603606081101561030e57600080fd5b5080359060208101359060400135610b07565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6103b76004803603602081101561035d57600080fd5b81019060208101813564010000000081111561037857600080fd5b82018360208201111561038a57600080fd5b803590602001918460208302840111640100000000831117156103ac57600080fd5b509092509050610b1e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103f35781810151838201526020016103db565b505050509050019250505060405180910390f35b6102b36004803603602081101561041d57600080fd5b81019060208101813564010000000081111561043857600080fd5b82018360208201111561044a57600080fd5b8035906020019184602083028401116401000000008311171561046c57600080fd5b509092509050610ba0565b6104946004803603602081101561048d57600080fd5b5035610c53565b6040805192835290151560208301528051918290030190f35b6104b5610d19565b60408051918252519081900360200190f35b6104b5600480360360808110156104dd57600080fd5b5080359060208101359060408101359060600135610d29565b6105296004803603602081101561050c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d6c565b005b6102b36004803603602081101561054157600080fd5b5035610ded565b6103b76004803603602081101561055e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e0d565b6102b3610ece565b6105296004803603602081101561059957600080fd5b5035611018565b6102b3600480360360208110156105b657600080fd5b503561117e565b610529600480360360408110156105d357600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff1661118c565b6106136004803603602081101561060c57600080fd5b5035611470565b6040805192835260208301919091528051918290030190f35b6102cf6114bc565b6104b56004803603602081101561064a57600080fd5b50356114c6565b6102cf6114e4565b6104b5611500565b6104b56004803603606081101561067757600080fd5b5080359060208101359060400135611524565b6106bf600480360360a08110156106a057600080fd5b508035906020810135906040810135906060810135906080013561153c565b60408051938452602084019290925282820152519081900360600190f35b6102cf600480360360208110156106f357600080fd5b50356115a1565b6105296115c9565b6105296117dc565b6104b56004803603602081101561072057600080fd5b50356118f1565b6106bf6004803603606081101561073d57600080fd5b50803590602081013590604001356118fc565b6102b36004803603602081101561076657600080fd5b503561191c565b6103b7611926565b6102cf611985565b6104b56004803603602081101561079357600080fd5b50356119a1565b6107b7600480360360208110156107b057600080fd5b50356119d0565b6040805160ff9092168252519081900360200190f35b6103b7600480360360208110156107e357600080fd5b8101906020810181356401000000008111156107fe57600080fd5b82018360208201111561081057600080fd5b8035906020019184602083028401116401000000008311171561083257600080fd5b5090925090506119e5565b6108ad6004803603602081101561085357600080fd5b81019060208101813564010000000081111561086e57600080fd5b82018360208201111561088057600080fd5b803590602001918460208302840111640100000000831117156108a257600080fd5b509092509050611a5d565b604051808060200183151515158152602001828103825284818151815260200191508051906020019060200280838360005b838110156108f75781810151838201526020016108df565b50505050905001935050505060405180910390f35b6104b56004803603602081101561092257600080fd5b5035611bd1565b6102b36004803603604081101561093f57600080fd5b81019060208101813564010000000081111561095a57600080fd5b82018360208201111561096c57600080fd5b8035906020019184602083028401116401000000008311171561098e57600080fd5b9193909290916020810190356401000000008111156109ac57600080fd5b8201836020820111156109be57600080fd5b803590602001918460208302840111640100000000831117156109e057600080fd5b509092509050611bdc565b610a1460048036036060811015610a0157600080fd5b5080359060208101359060400135611cfd565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610a58578181015183820152602001610a40565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a97578181015183820152602001610a7f565b5050505090500194505050505060405180910390f35b61061360048036036040811015610ac357600080fd5b5080359060200135611df9565b6000610ae382610ade611e12565b611ee5565b90505b919050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080610b15611f30565b93509350935093565b60608083839050604051908082528060200260200182016040528015610b4e578160200160208202803883390190505b50905060005b83811015610b9657610b77858583818110610b6b57fe5b90506020020135611f97565b828281518110610b8357fe5b6020908102919091010152600101610b54565b5090505b92915050565b600080610bab611e12565b90506060610beb858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611fb392505050565b905060005b84811015610c4757818181518110610c0457fe5b602002602001015180610c2e5750610c2e868683818110610c2157fe5b9050602002013584611ee5565b15610c3f5760019350505050610b9a565b600101610bf0565b50600095945050505050565b600080610c5e6130bb565b610c6784612263565b90507f7355534400000000000000000000000000000000000000000000000000000000841415610cba57517affffffffffffffffffffffffffffffffffffffffffffffffffffff16915060009050610d14565b8051610cd8610cc7611e12565b836020015164ffffffffff16612518565b80610cef5750610cef85610cea612533565b6125d5565b7affffffffffffffffffffffffffffffffffffffffffffffffffffff90911693509150505b915091565b6000610d23611e12565b90505b90565b600083815b610d3b878360010161270d565b915050801580610d4c575083850181115b15610d5957509050610d64565b600190910190610d2e565b949350505050565b610d7461296b565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000610dfb82610ade611e12565b80610ae35750610ae382610cea612533565b600654604080518281526020808402820101909152606091600091908015610e3f578160200160208202803883390190505b50915060005b600654811015610ec757600060068281548110610e5e57fe5b6000918252602080832090910154808352600490915260409091205490915073ffffffffffffffffffffffffffffffffffffffff9081169086161415610ebe5780848480600101955081518110610eb157fe5b6020026020010181815250505b50600101610e45565b5050919050565b60006060610eda611926565b905060005b815181101561100f576000828281518110610ef657fe5b6020908102919091018101516000818152600383526040908190205460025482517f21f8a72100000000000000000000000000000000000000000000000000000000815260048101859052925193955073ffffffffffffffffffffffffffffffffffffffff918216949116926321f8a721926024808201939291829003018186803b158015610f8457600080fd5b505afa158015610f98573d6000803e3d6000fd5b505050506040513d6020811015610fae57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141580610ff5575060008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff16155b156110065760009350505050610d26565b50600101610edf565b50600191505090565b61102061296b565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16806110b157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4e6f2061676772656761746f722065786973747320666f72206b657900000000604482015290519081900360640190fd5b600082815260046020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556005909152812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556111208360066129dd565b90508015611179576040805184815273ffffffffffffffffffffffffffffffffffffffff8416602082015281517fec70e890fc7db7de4059b114c9093a1f41283d18ffcfbcac45566feea4d4f777929181900390910190a15b505050565b6000610ae382610cea612533565b61119461296b565b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e157600080fd5b505afa1580156111f5573d6000803e3d6000fd5b505050506040513d602081101561120b57600080fd5b5051101561127a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f476976656e2041676772656761746f7220697320696e76616c69640000000000604482015290519081900360640190fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156112c257600080fd5b505afa1580156112d6573d6000803e3d6000fd5b505050506040513d60208110156112ec57600080fd5b50519050601260ff8216111561134d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806131c56032913960400191505060405180910390fd5b60008481526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166113ac57600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018490555b600084815260046020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155600583529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff861617905580518781529182019290925281517f0bcae573430f69c5361e5d76534d3f61d2d803958778680cd74be9dc6299bc63929181900390910190a150505050565b60008061147b6130bb565b61148484612263565b80516020909101517affffffffffffffffffffffffffffffffffffffffffffffffffffff909116935064ffffffffff16915050915091565b6000610d23612533565b600681815481106114d357fe5b600091825260209091200154905081565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b7f45786368616e676552617465730000000000000000000000000000000000000081565b6000611531848484612abd565b509095945050505050565b600080600061154b888661270d565b50915087861415611560575085915080611596565b61156a868561270d565b50905080156115965761159381611587898563ffffffff612b0f16565b9063ffffffff612b2416565b92505b955095509592505050565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60606115d3611926565b905060005b81518110156117d85760008282815181106115ef57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a200000000000000081860152603980820185905282518083039091018152605982018084527fdacb2d01000000000000000000000000000000000000000000000000000000009052605d8201858152607d83019384528151609d840152815195975060009673ffffffffffffffffffffffffffffffffffffffff9095169563dacb2d01958995939492939260bd0191908501908083838c5b838110156116cb5781810151838201526020016116b3565b50505050905090810190601f1680156116f85780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561171657600080fd5b505afa15801561172a573d6000803e3d6000fd5b505050506040513d602081101561174057600080fd5b505160008381526003602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016115d8565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff16331461184c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806131106035913960400191505060405180910390fd5b6000546001546040805173ffffffffffffffffffffffffffffffffffffffff938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b6000610ae382612b39565b600080600061190c868686612abd565b9250925092505b93509350939050565b6000610ae6611f30565b604080516001808252818301909252606091602080830190803883390190505090507f466c657869626c6553746f7261676500000000000000000000000000000000008160008151811061197657fe5b60200260200101818152505090565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60006119ac82612263565b517affffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b60056020526000908152604090205460ff1681565b60608083839050604051908082528060200260200182016040528015611a15578160200160208202803883390190505b50905060005b83811015610b9657611a3e858583818110611a3257fe5b905060200201356119a1565b828281518110611a4a57fe5b6020908102919091010152600101611a1b565b6060600083839050604051908082528060200260200182016040528015611a8e578160200160208202803883390190505b5091506000611a9b611e12565b90506060611adb868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611fb392505050565b905060005b85811015611bc757611af06130bb565b611b0b888884818110611aff57fe5b90506020020135612263565b905080600001517affffffffffffffffffffffffffffffffffffffffffffffffffffff16868381518110611b3b57fe5b60200260200101818152505084158015611b8757507f7355534400000000000000000000000000000000000000000000000000000000888884818110611b7d57fe5b9050602002013514155b15611bbe57828281518110611b9857fe5b602002602001015180611bbb5750611bbb84826020015164ffffffffff16612518565b94505b50600101611ae0565b5050509250929050565b6000610ae382611f97565b6000818414611c36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806131956030913960400191505060405180910390fd5b6000611c40611e12565b90506060611c80878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611fb392505050565b905060005b86811015611cef57818181518110611c9957fe5b602002602001015180611cd65750611cd6888883818110611cb657fe5b90506020020135878784818110611cc957fe5b9050602002013585612c11565b15611ce75760019350505050610d64565b600101611c85565b506000979650505050505050565b60608083604051908082528060200260200182016040528015611d2a578160200160208202803883390190505b50915083604051908082528060200260200182016040528015611d57578160200160208202803883390190505b50905060008311611d7057611d6b85612b39565b611d72565b825b925060005b84811015611def57611d89868561270d565b848381518110611d9557fe5b60200260200101848481518110611da857fe5b60209081029190910101919091525283611dc25750611df1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90930192600101611d77565b505b935093915050565b600080611e06848461270d565b915091505b9250929050565b6000611e1c612c65565b73ffffffffffffffffffffffffffffffffffffffff166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f726174655374616c65506572696f6400000000000000000000000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611eb457600080fd5b505afa158015611ec8573d6000803e3d6000fd5b505050506040513d6020811015611ede57600080fd5b5051905090565b60007f7355534400000000000000000000000000000000000000000000000000000000831415611f1757506000610b9a565b611f2982611f2485611f97565b612518565b9392505050565b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000604482015290519081900360640190fd5b6000611fa282612263565b6020015164ffffffffff1692915050565b60606000611fbf612533565b905073ffffffffffffffffffffffffffffffffffffffff81161561222e576060835160405190808252806020026020018201604052801561200a578160200160208202803883390190505b50905060005b8451811015612099576004600086838151811061202957fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811061206c57fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612010565b506040517f7d723cac00000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835173ffffffffffffffffffffffffffffffffffffffff861693637d723cac93869392839260440191808601910280838360005b8381101561211c578181015183820152602001612104565b505050509050019250505060006040518083038186803b15801561213f57600080fd5b505afa158015612153573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561219a57600080fd5b81019080805160405193929190846401000000008211156121ba57600080fd5b9083019060208201858111156121cf57600080fd5b82518660208202830111640100000000821117156121ec57600080fd5b82525081516020918201928201910280838360005b83811015612219578181015183820152602001612201565b5050505090500160405250505092505061225d565b8251604051908082528060200260200182016040528015612259578160200160208202803883390190505b5091505b50919050565b61226b6130bb565b7f735553440000000000000000000000000000000000000000000000000000000082141561233c57604051806040016040528073__$81fd87b331096e90074cc3e2c16d5bc3ee$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156122e257600080fd5b505af41580156122f6573d6000803e3d6000fd5b505050506040513d602081101561230c57600080fd5b50517affffffffffffffffffffffffffffffffffffffffffffffffffffff16815260006020909101529050610ae6565b60008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16801561225d5760408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ffeaf968c0000000000000000000000000000000000000000000000000000000017815291518151919260009260609273ffffffffffffffffffffffffffffffffffffffff87169286928291908083835b6020831061242757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016123ea565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114612487576040519150601f19603f3d011682016040523d82523d6000602084013e61248c565b606091505b5091509150811561250f576000808280602001905160a08110156124af57600080fd5b506020810151606090910151604080518082019091529193509150806124d58a85612c90565b7affffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020018264ffffffffff168152509650505050505050610ae6565b50505050919050565b60004261252b838563ffffffff612d5316565b109392505050565b600061253d612c65565b73ffffffffffffffffffffffffffffffffffffffff16639ee5955a7f53797374656d53657474696e67730000000000000000000000000000000000007f61676772656761746f725761726e696e67466c616773000000000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611eb457600080fd5b60007f735553440000000000000000000000000000000000000000000000000000000083141561260757506000610b9a565b60008381526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1680158061264d575073ffffffffffffffffffffffffffffffffffffffff8316155b1561265c576000915050610b9a565b8273ffffffffffffffffffffffffffffffffffffffff1663357e47fe826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156126d957600080fd5b505afa1580156126ed573d6000803e3d6000fd5b505050506040513d602081101561270357600080fd5b5051949350505050565b6000807f73555344000000000000000000000000000000000000000000000000000000008414156127b35773__$81fd87b331096e90074cc3e2c16d5bc3ee$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561277c57600080fd5b505af4158015612790573d6000803e3d6000fd5b505050506040513d60208110156127a657600080fd5b5051915060009050611e0b565b60008481526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1680156129635760408051602480820187905282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9a6fc8f50000000000000000000000000000000000000000000000000000000017815291518151919260009260609273ffffffffffffffffffffffffffffffffffffffff87169286928291908083835b602083106128ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612870565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811461290d576040519150601f19603f3d011682016040523d82523d6000602084013e612912565b606091505b5091509150811561295f576000808280602001905160a081101561293557600080fd5b50602081015160609091015190925090506129508a83612c90565b97509550611e0b945050505050565b5050505b509250929050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146129db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613145602f913960400191505060405180910390fd5b565b6000805b8254811015612ab357838382815481106129f757fe5b90600052602060002001541415612aab57828181548110612a1457fe5b6000918252602082200155825483907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908110612a4f57fe5b9060005260206000200154838281548110612a6657fe5b6000918252602090912001558254612aa0847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83016130d2565b506001915050610b9a565b6001016129e1565b5060009392505050565b6000806000612acb866119a1565b915083861415612adf575083915080611913565b612ae8846119a1565b9050801561191357612b0481611587878563ffffffff612b0f16565b925093509350939050565b6000611f298383670de0b6b3a7640000612dc7565b6000611f298383670de0b6b3a7640000612e04565b60007f7355534400000000000000000000000000000000000000000000000000000000821415612b6b57506000610ae6565b60008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16801561225d578073ffffffffffffffffffffffffffffffffffffffff1663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b158015612bdc57600080fd5b505afa158015612bf0573d6000803e3d6000fd5b505050506040513d6020811015612c0657600080fd5b50519150610ae69050565b60007f7355534400000000000000000000000000000000000000000000000000000000841415612c4357506000611f29565b6000612c4f858561270d565b915050612c5c8382612518565b95945050505050565b6000610d237f466c657869626c6553746f726167650000000000000000000000000000000000612e36565b600080821215612d0157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4e656761746976652072617465206e6f7420737570706f727465640000000000604482015290519081900360640190fd5b60008381526005602052604090205460ff161561225d57600083815260056020526040812054612d369060129060ff16612f4d565b600a0a9050612d4b838263ffffffff612fc416565b915050610b9a565b600082820183811015611f2957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600a8304612dde868663ffffffff612fc416565b81612de557fe5b0490506005600a825b0610612df857600a015b600a9004949350505050565b600080612e2a84612e1e87600a870263ffffffff612fc416565b9063ffffffff61303716565b90506005600a82612dee565b60008181526003602090815260408083205481517f4d697373696e6720616464726573733a2000000000000000000000000000000093810193909352603180840186905282518085039091018152605190930190915273ffffffffffffffffffffffffffffffffffffffff169081612f46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f0b578181015183820152602001612ef3565b50505050905090810190601f168015612f385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b600082821115612fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082612fd357506000610b9a565b82820282848281612fe057fe5b0414611f29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131746021913960400191505060405180910390fd5b60008082116130a757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816130b257fe5b04949350505050565b604080518082019091526000808252602082015290565b81548183558181111561117957600083815260209020611179918101908301610d2691905b8082111561310b57600081556001016130f7565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726f756e64496473206d757374206265207468652073616d65206c656e6774682061732063757272656e63794b65797341676772656761746f7220646563696d616c732073686f756c64206265206c6f776572206f7220657175616c20746f203138a265627a7a72315820781581c6bb89e4facfbe6e791a99ad9fa45b5d8f16687698bd66498989a9164864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "AggregatorAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "AggregatorRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "aggregatorAddress",
							"type": "address"
						}
					],
					"name": "addAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "aggregatorKeys",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "aggregatorWarningFlags",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "aggregators",
					"outputs": [
						{
							"internalType": "contract AggregatorV2V3Interface",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "anyRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "roundIds",
							"type": "uint256[]"
						}
					],
					"name": "anyRateIsInvalidAtRound",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "currenciesUsingAggregator",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencies",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "currencyKeyDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "effectiveAtomicValueAndRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "effectiveValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "effectiveValueAndRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "sourceRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "destinationRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "effectiveValueAndRatesAtRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "sourceRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "destinationRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getCurrentRoundId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "startingRoundId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startingTimestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timediff",
							"type": "uint256"
						}
					],
					"name": "getLastRoundIdBeforeElapsedSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "lastRateUpdateTimes",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "lastRateUpdateTimesForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateAndInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "roundId",
							"type": "uint256"
						}
					],
					"name": "rateAndTimestampAtRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateAndUpdatedTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateForCurrency",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsFlagged",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsStale",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rateStalePeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "ratesAndInvalidForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "rates",
							"type": "uint256[]"
						},
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "numRounds",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundId",
							"type": "uint256"
						}
					],
					"name": "ratesAndUpdatedTimeForCurrencyLastNRounds",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "rates",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "times",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "ratesForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "synthTooVolatileForAtomicExchange",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xe499b2236b3e8dea8e94cb5f4274f6fa77bc6e50afde8a0906eddb2a5818a792",
				"urls": [
					"bzz-raw://b7eea5f3aa3a0843ab4deb62a8bcd64633f18c9a867e5ea1de8e9d77cbb58c6c",
					"dweb:/ipfs/QmRxUsXvR1mtBETAFuEvfLvCEG8C5dEqnrMdjYnrgtKXwa"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeRates.sol": "ExchangeRates"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 20000
					},
					"remappings": []
				},
				"sources": {
					"ExchangeRates.sol": {
						"keccak256": "0xe499b2236b3e8dea8e94cb5f4274f6fa77bc6e50afde8a0906eddb2a5818a792",
						"urls": [
							"bzz-raw://b7eea5f3aa3a0843ab4deb62a8bcd64633f18c9a867e5ea1de8e9d77cbb58c6c",
							"dweb:/ipfs/QmRxUsXvR1mtBETAFuEvfLvCEG8C5dEqnrMdjYnrgtKXwa"
						]
					}
				},
				"version": 1
			}
		},
		"SynthetixDebtShare": {
			"bytecode": "6080604052600a805460ff60881b191690553480156200001e57600080fd5b506040516200247238038062002472833981810160405260408110156200004457600080fd5b50805160209091015180826001600160a01b038116620000ab576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260158082527f53796e746865746978204465627420536861726573000000000000000000000060209092019182526200016a91600891620001be565b506040805180820190915260038082526253445360e81b60209092019182526200019791600991620001be565b5050600a8054610100600160881b031960ff19909116601217166101001790555062000263565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020157805160ff191683800117855562000231565b8280016001018555821562000231579182015b828111156200023157825182559160200191906001019062000214565b506200023f92915062000243565b5090565b6200026091905b808211156200023f57600081556001016200024a565b90565b6121ff80620002736000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806379ba509711610125578063a3e0a7d7116100ad578063cbf1304d1161007c578063cbf1304d146106cf578063d186820614610721578063dd62ed3e14610747578063e6d24bbd14610775578063f9cb1da31461079b5761021c565b8063a3e0a7d714610660578063a9059cbb146102c2578063abb6de951461067d578063c2f04b0a146106a35761021c565b80638ced14df116100f45780638ced14df1461053e5780638da5cb5b1461056a5780638f8495181461057257806395d89b4114610634578063988e65951461063c5761021c565b806379ba5097146104aa57806386f25e4d146104b2578063899ffef4146104ba5780638a25acf4146105125761021c565b806325428394116101a8578063392e53cd11610177578063392e53cd1461046457806353a47bb71461046c578063614d08f81461047457806370a082311461047c57806374185360146104a25761021c565b806325428394146103f25780632af64bd314610418578063313ce567146104205780633913d24b1461043e5761021c565b80631627540c116101ef5780631627540c1461032a578063174495dd1461035057806318160ddd146103765780631a378f0d1461039057806323b872dd146103bc5761021c565b806304f3bcec1461022157806306fdde0314610245578063095ea7b3146102c25780631495552814610302575b600080fd5b6102296107c1565b604080516001600160a01b039092168252519081900360200190f35b61024d6107d0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028757818101518382015260200161026f565b50505050905090810190601f1680156102b45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ee600480360360408110156102d857600080fd5b506001600160a01b03813516906020013561085e565b604080519115158252519081900360200190f35b6103286004803603602081101561031857600080fd5b50356001600160a01b0316610897565b005b6103286004803603602081101561034057600080fd5b50356001600160a01b03166108fd565b6103286004803603602081101561036657600080fd5b50356001600160a01b0316610959565b61037e6109b7565b60408051918252519081900360200190f35b610328600480360360408110156103a657600080fd5b506001600160a01b0381351690602001356109db565b6102ee600480360360608110156103d257600080fd5b506001600160a01b03813581169160208101359091169060400135610b61565b6103286004803603602081101561040857600080fd5b50356001600160a01b0316610c61565b6102ee610cbf565b610428610dc9565b6040805160ff9092168252519081900360200190f35b6103286004803603602081101561045457600080fd5b50356001600160a01b0316610dd2565b6102ee610e38565b610229610e48565b61037e610e57565b61037e6004803603602081101561049257600080fd5b50356001600160a01b0316610e70565b610328610ede565b6103286110a6565b610328611162565b6104c261117f565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104fe5781810151838201526020016104e6565b505050509050019250505060405180910390f35b61037e6004803603604081101561052857600080fd5b506001600160a01b0381351690602001356111c7565b61037e6004803603604081101561055457600080fd5b506001600160a01b0381351690602001356112e6565b61022961132c565b6103286004803603604081101561058857600080fd5b8101906020810181356401000000008111156105a357600080fd5b8201836020820111156105b557600080fd5b803590602001918460208302840111640100000000831117156105d757600080fd5b9193909290916020810190356401000000008111156105f557600080fd5b82018360208201111561060757600080fd5b8035906020019184602083028401116401000000008311171561062957600080fd5b50909250905061133b565b61024d611643565b61064461169e565b604080516001600160801b039092168252519081900360200190f35b61037e6004803603602081101561067657600080fd5b50356116b2565b6103286004803603602081101561069357600080fd5b50356001600160801b03166116c4565b610328600480360360408110156106b957600080fd5b506001600160a01b0381351690602001356117fb565b6106fb600480360360408110156106e557600080fd5b506001600160a01b03813516906020013561197d565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b6102ee6004803603602081101561073757600080fd5b50356001600160a01b03166119bd565b61037e6004803603604081101561075d57600080fd5b506001600160a01b03813581169160200135166119d2565b61037e6004803603602081101561078b57600080fd5b50356001600160a01b0316611a04565b6102ee600480360360208110156107b157600080fd5b50356001600160a01b0316611a23565b6002546001600160a01b031681565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108565780601f1061082b57610100808354040283529160200191610856565b820191906000526020600020905b81548152906001019060200180831161083957829003601f168201915b505050505081565b600060405162461bcd60e51b815260040180806020018281038252602181526020018061215c6021913960400191505060405180910390fd5b61089f611a38565b6001600160a01b038116600081815260046020908152604091829020805460ff19166001908117909155825190815291517f6e713465f03f44982be319e75ac01e2170374630e7bde28a104881e236fb07e39281900390910190a250565b610905611a38565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610961611a38565b6001600160a01b0381166000818152600560209081526040808320805460ff191690558051928352517f6c26d4e15c21227ab0fca84cab71715b23c6c4137b24cbcaedc517b673a1781f9281900390910190a250565b600a5461010090046001600160801b03166000908152600760205260409020545b90565b6109ed6524b9b9bab2b960d11b611a83565b6001600160a01b0316336001600160a01b031614610a3c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061212f602d913960400191505060405180910390fd5b6001600160a01b038216610a97576040805162461bcd60e51b815260206004820152601d60248201527f45524332303a206275726e2066726f6d207a65726f2061646472657373000000604482015290519081900360640190fd5b610aa18282611b67565b600a5461010090046001600160801b0316600090815260076020526040902054610acb9082611d45565b600a5461010090046001600160801b03166000908152600760209081526040808320939093558251848152925191926001600160a01b0386169260008051602061217d833981519152929181900390910190a36040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b3360009081526004602052604081205460ff16610baf5760405162461bcd60e51b81526004018080602001828103825260318152602001806120a86031913960400191505060405180910390fd5b6001600160a01b038316610c0a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a2073656e6420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610c148483611b67565b610c1e8383611da2565b826001600160a01b0316846001600160a01b031660008051602061217d833981519152846040518082815260200191505060405180910390a35060019392505050565b610c69611a38565b6001600160a01b0381166000818152600460209081526040808320805460ff191690558051928352517f6e713465f03f44982be319e75ac01e2170374630e7bde28a104881e236fb07e39281900390910190a250565b60006060610ccb61117f565b905060005b8151811015610dc0576000828281518110610ce757fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610d4f57600080fd5b505afa158015610d63573d6000803e3d6000fd5b505050506040513d6020811015610d7957600080fd5b50516001600160a01b0316141580610da657506000818152600360205260409020546001600160a01b0316155b15610db757600093505050506109d8565b50600101610cd0565b50600191505090565b600a5460ff1681565b610dda611a38565b6001600160a01b038116600081815260056020908152604091829020805460ff19166001908117909155825190815291517f6c26d4e15c21227ab0fca84cab71715b23c6c4137b24cbcaedc517b673a1781f9281900390910190a250565b600a54600160881b900460ff1681565b6001546001600160a01b031681565b7153796e74686574697844656274536861726560701b81565b6001600160a01b03811660009081526006602052604081205480610e98576000915050610ed9565b6001600160a01b038316600090815260066020526040902080546000198301908110610ec057fe5b6000918252602090912001546001600160801b03169150505b919050565b6060610ee861117f565b905060005b81518110156110a2576000828281518110610f0457fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610fba578181015183820152602001610fa2565b50505050905090810190601f168015610fe75780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561100557600080fd5b505afa158015611019573d6000803e3d6000fd5b505050506040513d602081101561102f57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610eed565b5050565b6001546001600160a01b031633146110ef5760405162461bcd60e51b8152600401808060200182810382526035815260200180611fe36035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b61116a611a38565b600a805460ff60881b1916600160881b179055565b604080516001808252818301909252606091602080830190803883390190505090506524b9b9bab2b960d11b816000815181106111b857fe5b60200260200101818152505090565b6001600160a01b03821660009081526006602052604081205481601e82116111f05760006111f5565b601e82035b905060001982015b818112611299576001600160a01b038616600090815260066020526040902080548691908390811061122b57fe5b600091825260209091200154600160801b90046001600160801b031611611290576001600160a01b038616600090815260066020526040902080548290811061127057fe5b6000918252602090912001546001600160801b031693506112e092505050565b600019016111fd565b600081126112d85760405162461bcd60e51b815260040180806020018281038252602f815260200180612018602f913960400191505060405180910390fd5b600093505050505b92915050565b6000806112f384846111c7565b9050806113045760009150506112e0565b60008381526007602052604090205461132490829063ffffffff611e9416565b949350505050565b6000546001600160a01b031681565b611343611a38565b600a54600160881b900460ff161561138c5760405162461bcd60e51b81526004018080602001828103825260358152602001806120fa6035913960400191505060405180910390fd5b600a5461010090046001600160801b0316600090815260076020526040812054905b8481101561161c5760006113dc8787848181106113c757fe5b905060200201356001600160a01b0316610e70565b90508484838181106113ea57fe5b905060200201358110156114ff5760008186868581811061140757fe5b9050602002013503905061143688888581811061142057fe5b905060200201356001600160a01b031682611da2565b611446848263ffffffff611ec516565b935087878481811061145457fe5b905060200201356001600160a01b03166001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a28787848181106114b057fe5b905060200201356001600160a01b03166001600160a01b031660006001600160a01b031660008051602061217d833981519152836040518082815260200191505060405180910390a350611613565b84848381811061150b57fe5b9050602002013581111561161357600085858481811061152757fe5b905060200201358203905061155788888581811061154157fe5b905060200201356001600160a01b031682611b67565b611567848263ffffffff611d4516565b935087878481811061157557fe5b905060200201356001600160a01b03166001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a260008888858181106115d357fe5b905060200201356001600160a01b03166001600160a01b031660008051602061217d833981519152836040518082815260200191505060405180910390a3505b506001016113ae565b50600a5461010090046001600160801b031660009081526007602052604090205550505050565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108565780601f1061082b57610100808354040283529160200191610856565b600a5461010090046001600160801b031681565b60076020526000908152604090205481565b3360009081526005602052604090205460ff168061170457506116ef6524b9b9bab2b960d11b611a83565b6001600160a01b0316336001600160a01b0316145b61173f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061219d602e913960400191505060405180910390fd5b600a546001600160801b036101009091048116908216116117a7576040805162461bcd60e51b815260206004820152601e60248201527f706572696f64206964206d75737420616c7761797320696e6372656173650000604482015290519081900360640190fd5b600a8054610100908190046001600160801b03908116600090815260076020526040808220549590921680825291902093909355815470ffffffffffffffffffffffffffffffff0019169202919091179055565b61180d6524b9b9bab2b960d11b611a83565b6001600160a01b0316336001600160a01b03161461185c5760405162461bcd60e51b815260040180806020018281038252602d81526020018061212f602d913960400191505060405180910390fd5b6001600160a01b0382166118b7576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6118c18282611da2565b600a5461010090046001600160801b03166000908152600760205260409020546118eb9082611ec5565b600a5461010090046001600160801b0316600090815260076020908152604080832093909355825184815292516001600160a01b0386169360008051602061217d83398151915292908290030190a36040805182815290516001600160a01b038416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a25050565b6006602052816000526040600020818154811061199657fe5b6000918252602090912001546001600160801b038082169350600160801b90910416905082565b60046020526000908152604090205460ff1681565b6001600160a01b03811660009081526004602052604081205460ff16156119fc57506000196112e0565b5060006112e0565b600a546000906112e090839061010090046001600160801b03166112e6565b60056020526000908152604090205460ff1681565b6000546001600160a01b03163314611a815760405162461bcd60e51b815260040180806020018281038252602f815260200180612079602f913960400191505060405180910390fd5b565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611b605760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611b25578181015183820152602001611b0d565b50505050905090810190601f168015611b525780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b6001600160a01b03821660009081526006602052604090205480611bbc5760405162461bcd60e51b81526004018080602001828103825260328152602001806120476032913960400191505060405180910390fd5b6001600160a01b03831660009081526006602052604081208054611c0b9185916000198601908110611bea57fe5b6000918252602090912001546001600160801b03169063ffffffff611d4516565b600a546001600160a01b038616600090815260066020526040902080549293506101009091046001600160801b0316916000198501908110611c4957fe5b600091825260209091200154600160801b90046001600160801b031614611cea576001600160a01b038416600090815260066020908152604080832081518083019092526001600160801b038086168352600a546101009004811683850190815282546001810184559286529390942091519101805492518416600160801b029184166001600160801b031990931692909217909216919091179055611d3f565b6001600160a01b038416600090815260066020526040902080548291906000198501908110611d1557fe5b600091825260209091200180546001600160801b0319166001600160801b03929092169190911790555b50505050565b600082821115611d9c576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03821660009081526006602052604090205480611e40576001600160a01b038316600090815260066020908152604080832081518083019092526001600160801b038087168352600a546101009004811683850190815282546001810184559286529390942091519101805492518416600160801b029184166001600160801b031990931692909217909216919091179055611e8f565b6001600160a01b03831660009081526006602052604081208054611c0b9185916000198601908110611e6e57fe5b6000918252602090912001546001600160801b03169063ffffffff611ec516565b505050565b6000611ebe82611eb285670de0b6b3a764000063ffffffff611f1f16565b9063ffffffff611f7816565b9392505050565b600082820183811015611ebe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082611f2e575060006112e0565b82820282848281611f3b57fe5b0414611ebe5760405162461bcd60e51b81526004018080602001828103825260218152602001806120d96021913960400191505060405180910390fd5b6000808211611fce576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611fd957fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697053796e7468657469784465627453686172653a206e6f7420666f756e6420696e20726563656e7420686973746f727953796e7468657469784465627453686172653a206163636f756e7420686173206e6f20736861726520746f206465647563744f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e53796e7468657469784465627453686172653a206f6e6c792062726f6b6572732063616e207472616e7366657246726f6d536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753796e746865746978446562743a206f6e6c792063616c6c61626c65207768696c65207374696c6c20696e697469616c697a696e6753796e7468657469784465627453686172653a206f6e6c79206973737565722063616e206d696e742f6275726e646562742073686172657320617265206e6f74207472616e736665727261626c65ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef53796e7468657469784465627453686172653a206e6f7420617574686f72697a656420746f20736e617073686f74a265627a7a72315820e11b43536dd21a59bb3dcb49ad27bfd66750e25ebf7094c5f21da77098b7418064736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Burn",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authorizedBroker",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "authorized",
							"type": "bool"
						}
					],
					"name": "ChangeAuthorizedBroker",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authorizedToSnapshot",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "authorized",
							"type": "bool"
						}
					],
					"name": "ChangeAuthorizedToSnapshot",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Mint",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						}
					],
					"name": "addAuthorizedBroker",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						}
					],
					"name": "addAuthorizedToSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "authorizedBrokers",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "authorizedToSnapshot",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						}
					],
					"name": "balanceOfOnPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "balances",
					"outputs": [
						{
							"internalType": "uint128",
							"name": "amount",
							"type": "uint128"
						},
						{
							"internalType": "uint128",
							"name": "periodId",
							"type": "uint128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnShare",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentPeriodId",
					"outputs": [
						{
							"internalType": "uint128",
							"name": "",
							"type": "uint128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "finishSetup",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "amounts",
							"type": "uint256[]"
						}
					],
					"name": "importAddresses",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isInitialized",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "mintShare",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						}
					],
					"name": "removeAuthorizedBroker",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "target",
							"type": "address"
						}
					],
					"name": "removeAuthorizedToSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "sharePercent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						}
					],
					"name": "sharePercentOnPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint128",
							"name": "id",
							"type": "uint128"
						}
					],
					"name": "takeSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "totalSupplyOnPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x403192bc309d6eee98ddbfaeed166b50c2665df94167c6970e785a65b71dd0e3",
				"urls": [
					"bzz-raw://d2970733a0d6aa60f3586add135bc3b3027a85a7b7b78aa13302b759da9e2a01",
					"dweb:/ipfs/QmXDdJw9UmFP23ERqEzgYGAJtBtmnkbVVu2Guj67dRkK81"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SynthetixDebtShare.sol": "SynthetixDebtShare"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SynthetixDebtShare.sol": {
						"keccak256": "0x403192bc309d6eee98ddbfaeed166b50c2665df94167c6970e785a65b71dd0e3",
						"urls": [
							"bzz-raw://d2970733a0d6aa60f3586add135bc3b3027a85a7b7b78aa13302b759da9e2a01",
							"dweb:/ipfs/QmXDdJw9UmFP23ERqEzgYGAJtBtmnkbVVu2Guj67dRkK81"
						]
					}
				},
				"version": 1
			}
		},
		"SignedSafeDecimalMath": {
			"bytecode": "61012d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060655760003560e01c8063313ce56714606a578063864029e7146086578063907af6c014609e5780639d8e21771460a4578063d5e5e6e61460aa578063def4419d1460b0575b600080fd5b607060b6565b6040805160ff9092168252519081900360200190f35b608c60bb565b60408051918252519081900360200190f35b608c60cb565b608c60d7565b608c60e3565b607060f3565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156fea265627a7a7231582002d10680a162a038b37ac2fc2674f016de20e4afe149e671085264fae2a1a3f164736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "PRECISE_UNIT",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "UNIT",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "highPrecisionDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "preciseUnit",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "unit",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x0ddaacba077350bf0186ddf53ac5128dfc1de2b4a7e845ab15be49e78f96b5c9",
				"urls": [
					"bzz-raw://b3d390a2e050bb973002380fa2a51a122551b609862d0f29147fa18decc825ce",
					"dweb:/ipfs/QmXn396HhaabfdtctpgxKs5VHpPE6mJmRVJyXAS8tPtMEX"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SignedSafeDecimalMath.sol": "SignedSafeDecimalMath"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SignedSafeDecimalMath.sol": {
						"keccak256": "0x0ddaacba077350bf0186ddf53ac5128dfc1de2b4a7e845ab15be49e78f96b5c9",
						"urls": [
							"bzz-raw://b3d390a2e050bb973002380fa2a51a122551b609862d0f29147fa18decc825ce",
							"dweb:/ipfs/QmXn396HhaabfdtctpgxKs5VHpPE6mJmRVJyXAS8tPtMEX"
						]
					}
				},
				"version": 1
			}
		},
		"OneNetAggregatorIssuedSynths": {
			"bytecode": "608060405234801561001057600080fd5b506040516107c73803806107c78339818101604052602081101561003357600080fd5b5051803380610089576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b0392909216919091179055506106b5806101126000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063b5ab58dc11610066578063b5ab58dc14610218578063b633620c14610235578063ec5c889d14610252578063feaf968c1461025a576100ea565b80638da5cb5b1461018b5780639a6fc8f514610193578063b00a84c9146101fb576100ea565b806353a47bb7116100c857806353a47bb714610159578063614d08f814610161578063668a0f021461017b57806379ba509714610183576100ea565b806304f3bcec146100ef5780631627540c14610113578063313ce5671461013b575b600080fd5b6100f7610262565b604080516001600160a01b039092168252519081900360200190f35b6101396004803603602081101561012957600080fd5b50356001600160a01b0316610271565b005b6101436102cd565b6040805160ff9092168252519081900360200190f35b6100f76102d2565b6101696102e1565b60408051918252519081900360200190f35b610169610305565b61013961030a565b6100f76103c6565b6101bc600480360360208110156101a957600080fd5b503569ffffffffffffffffffff166103d5565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b6101396004803603602081101561021157600080fd5b5035610533565b6101696004803603602081101561022e57600080fd5b5035610576565b6101696004803603602081101561024b57600080fd5b503561058c565b6101696105a2565b6101bc6105a8565b6002546001600160a01b031681565b6102796105d1565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600090565b6001546001600160a01b031681565b7f4f6e654e657441676772656761746f7249737375656453796e7468730000000081565b600190565b6001546001600160a01b031633146103535760405162461bcd60e51b815260040180806020018281038252603581526020018061061d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546040805163dacb2d0160e01b81526524b9b9bab2b960d11b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b60648201529051600092839283928392839283926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b505160408051637b1001b760e01b8152631cd554d160e21b60048201526001602482015290516001600160a01b0390921691637b1001b791604480820192602092909190829003018186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d602081101561050c57600080fd5b505160035490915042901561052057506003545b6001989197509550859450879350915050565b61053b6105d1565b60038190556040805182815290517f0c353e7b16d02337ff57a02fe5b0a5506fa6f85187948be32d182e393b99a8f29181900360200190a150565b6000610581826103d5565b509195945050505050565b6000610597826103d5565b509095945050505050565b60035481565b60008060008060006105c06105bb610305565b6103d5565b945094509450945094509091929394565b6000546001600160a01b0316331461061a5760405162461bcd60e51b815260040180806020018281038252602f815260200180610652602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820a8352dd68973310a46b067473c21594fbc025d3483917d5536fa040291d56b6e64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "SetOverrideTimestamp",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_roundId",
							"type": "uint256"
						}
					],
					"name": "getAnswer",
					"outputs": [
						{
							"internalType": "int256",
							"name": "answer",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"name": "getRoundData",
					"outputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						},
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_roundId",
							"type": "uint256"
						}
					],
					"name": "getTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "latestRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "latestRoundData",
					"outputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						},
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "overrideTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "setOverrideTimestamp",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x0ede3bc15d24f2a3af48de0cec7077cd6572345a3fd313e22319e676eeb57526",
				"urls": [
					"bzz-raw://321ca48e8408efd0de1a3fe7c2f23e82ac6253e1e358aef10504cf2739af1e1a",
					"dweb:/ipfs/QmPDBHp4iKUvw76znEsFj4yLiJE4rVymfQrQetqkbgaRiK"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OneNetAggregatorIssuedSynths.sol": "OneNetAggregatorIssuedSynths"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OneNetAggregatorIssuedSynths.sol": {
						"keccak256": "0x0ede3bc15d24f2a3af48de0cec7077cd6572345a3fd313e22319e676eeb57526",
						"urls": [
							"bzz-raw://321ca48e8408efd0de1a3fe7c2f23e82ac6253e1e358aef10504cf2739af1e1a",
							"dweb:/ipfs/QmPDBHp4iKUvw76znEsFj4yLiJE4rVymfQrQetqkbgaRiK"
						]
					}
				},
				"version": 1
			}
		},
		"OneNetAggregatorDebtRatio": {
			"bytecode": "608060405234801561001057600080fd5b50604051610a7d380380610a7d8339818101604052602081101561003357600080fd5b5051803380610089576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b03929092169190911790555061096b806101126000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da5cb5b1161008c578063b5ab58dc11610066578063b5ab58dc14610218578063b633620c14610235578063ec5c889d14610252578063feaf968c1461025a576100ea565b80638da5cb5b1461018b5780639a6fc8f514610193578063b00a84c9146101fb576100ea565b806353a47bb7116100c857806353a47bb714610159578063614d08f814610161578063668a0f021461017b57806379ba509714610183576100ea565b806304f3bcec146100ef5780631627540c14610113578063313ce5671461013b575b600080fd5b6100f7610262565b604080516001600160a01b039092168252519081900360200190f35b6101396004803603602081101561012957600080fd5b50356001600160a01b0316610271565b005b6101436102cd565b6040805160ff9092168252519081900360200190f35b6100f76102d2565b6101696102e1565b60408051918252519081900360200190f35b610169610305565b61013961030a565b6100f76103c6565b6101bc600480360360208110156101a957600080fd5b503569ffffffffffffffffffff166103d5565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b6101396004803603602081101561021157600080fd5b503561068a565b6101696004803603602081101561022e57600080fd5b50356106cd565b6101696004803603602081101561024b57600080fd5b50356106e3565b6101696106f9565b6101bc6106ff565b6002546001600160a01b031681565b610279610728565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600090565b6001546001600160a01b031681565b7f4f6e654e657441676772656761746f7244656274526174696f0000000000000081565b600190565b6001546001600160a01b031633146103535760405162461bcd60e51b81526004018080602001828103825260358152602001806108b26035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546040805163dacb2d0160e01b81526524b9b9bab2b960d11b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b60648201529051600092839283928392839283926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d602081101561048a57600080fd5b505160408051637b1001b760e01b8152631cd554d160e21b60048201526001602482015290516001600160a01b0390921691637b1001b791604480820192602092909190829003018186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d602081101561050c57600080fd5b50516002546040805163dacb2d0160e01b81527153796e74686574697844656274536861726560701b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b606482015290519293506000926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561059e57600080fd5b505afa1580156105b2573d6000803e3d6000fd5b505050506040513d60208110156105c857600080fd5b5051604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561060c57600080fd5b505afa158015610620573d6000803e3d6000fd5b505050506040513d602081101561063657600080fd5b50519050600081156106605761065b8261064f85610773565b9063ffffffff61078f16565b610663565b60005b60035490915042901561067557506003545b60019a91995097508796508995509350505050565b610692610728565b60038190556040805182815290517f0c353e7b16d02337ff57a02fe5b0a5506fa6f85187948be32d182e393b99a8f29181900360200190a150565b60006106d8826103d5565b509195945050505050565b60006106ee826103d5565b509095945050505050565b60035481565b6000806000806000610717610712610305565b6103d5565b945094509450945094509091929394565b6000546001600160a01b031633146107715760405162461bcd60e51b815260040180806020018281038252602f8152602001806108e7602f913960400191505060405180910390fd5b565b600061078982633b9aca0063ffffffff6107ab16565b92915050565b60006107a48383670de0b6b3a7640000610804565b9392505050565b6000826107ba57506000610789565b828202828482816107c757fe5b04146107a45760405162461bcd60e51b81526004018080602001828103825260218152602001806109166021913960400191505060405180910390fd5b60008061082a8461081e87600a870263ffffffff6107ab16565b9063ffffffff61084716565b90506005600a82061061083b57600a015b600a9004949350505050565b600080821161089d576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816108a857fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582009e49f7debea502e08c3eb3be2d65a2024aceab8ea78b8785278a3ca603582cd64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "SetOverrideTimestamp",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_roundId",
							"type": "uint256"
						}
					],
					"name": "getAnswer",
					"outputs": [
						{
							"internalType": "int256",
							"name": "answer",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"name": "getRoundData",
					"outputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						},
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_roundId",
							"type": "uint256"
						}
					],
					"name": "getTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "latestRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "latestRoundData",
					"outputs": [
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						},
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint80",
							"name": "",
							"type": "uint80"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "overrideTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "setOverrideTimestamp",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xb64547811fca7c66e90856ac0f175ca0e3dcc2033ec15985fbb854ff275e796c",
				"urls": [
					"bzz-raw://27c3111da5cb739550e024dd051aeb5ad4bcb57dcff396a29041ffa312228703",
					"dweb:/ipfs/QmP6J5yQFEq9N7JZ9659n2BbEPFmGZhZp2kLN512Azar9v"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"OneNetAggregatorDebtRatio.sol": "OneNetAggregatorDebtRatio"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"OneNetAggregatorDebtRatio.sol": {
						"keccak256": "0xb64547811fca7c66e90856ac0f175ca0e3dcc2033ec15985fbb854ff275e796c",
						"urls": [
							"bzz-raw://27c3111da5cb739550e024dd051aeb5ad4bcb57dcff396a29041ffa312228703",
							"dweb:/ipfs/QmP6J5yQFEq9N7JZ9659n2BbEPFmGZhZp2kLN512Azar9v"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeCircuitBreaker": {
			"bytecode": "608060405234801561001057600080fd5b506040516116d23803806116d28339818101604052604081101561003357600080fd5b5080516020909101518080836001600160a01b03811661009a576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050506115ac806101266000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063614d08f8116100a25780637dd1a57a116100715780637dd1a57a14610253578063899ffef4146102705780638da5cb5b146102c8578063a47af19e146102d0578063cb1ec317146103065761010b565b8063614d08f814610218578063741853601461022057806378cb51cb1461022857806379ba50971461024b5761010b565b8063372a395a116100de578063372a395a146101e65780633fa70f45146102005780634ffcd9df1461020857806353a47bb7146102105761010b565b806304f3bcec146101105780631627540c1461013457806324286df01461015c5780632af64bd3146101ca575b600080fd5b610118610323565b604080516001600160a01b039092168252519081900360200190f35b61015a6004803603602081101561014a57600080fd5b50356001600160a01b0316610332565b005b61015a6004803603602081101561017257600080fd5b810190602081018135600160201b81111561018c57600080fd5b82018360208201111561019e57600080fd5b803590602001918460208302840111600160201b831117156101bf57600080fd5b50909250905061038e565b6101d2610623565b604080519115158252519081900360200190f35b6101ee61072e565b60408051918252519081900360200190f35b6101ee61073d565b610118610742565b61011861075d565b6101ee61076c565b61015a610789565b6101d26004803603604081101561023e57600080fd5b5080359060200135610951565b61015a610966565b6101ee6004803603602081101561026957600080fd5b5035610a22565b610278610a34565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102b457818101518382015260200161029c565b505050509050019250505060405180910390f35b610118610aec565b6102ed600480360360208110156102e657600080fd5b5035610afb565b6040805192835290151560208301528051918290030190f35b6102ed6004803603602081101561031c57600080fd5b5035610d75565b6002546001600160a01b031681565b61033a610e1a565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610396610e1a565b606060006103a2610742565b6001600160a01b031663c8e5bbd585856040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f820116905080830192505050935050505060006040518083038186803b15801561041457600080fd5b505afa158015610428573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561045157600080fd5b8101908080516040519392919084600160201b82111561047057600080fd5b90830190602082018581111561048557600080fd5b82518660208202830111600160201b821117156104a157600080fd5b82525081516020918201928201910280838360005b838110156104ce5781810151838201526020016104b6565b50505050919091016040525060200151929450919250508115905061053a576040805162461bcd60e51b815260206004820181905260248201527f526174657320666f7220676976656e2073796e746873206e6f742076616c6964604482015290519081900360640190fd5b60005b8381101561061c577f04ee51667f8fd5f98b8803e7cd0a206fb508b0c37545e7f8055f0de051d8ad4385858381811061057257fe5b905060200201356004600088888681811061058957fe5b905060200201358152602001908152602001600020548584815181106105ab57fe5b602002602001015160405180848152602001838152602001828152602001935050505060405180910390a18281815181106105e257fe5b6020026020010151600460008787858181106105fa57fe5b602090810292909201358352508101919091526040016000205560010161053d565b5050505050565b6000606061062f610a34565b905060005b815181101561072457600082828151811061064b57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156106b357600080fd5b505afa1580156106c7573d6000803e3d6000fd5b505050506040513d60208110156106dd57600080fd5b50516001600160a01b031614158061070a57506000818152600360205260409020546001600160a01b0316155b1561071b576000935050505061072b565b50600101610634565b5060019150505b90565b6000610738610e65565b905090565b604181565b60006107386c45786368616e6765526174657360981b610f1c565b6001546001600160a01b031681565b7522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b81565b6060610793610a34565b905060005b815181101561094d5760008282815181106107af57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561086557818101518382015260200161084d565b50505050905090810190601f1680156108925780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156108b057600080fd5b505afa1580156108c4573d6000803e3d6000fd5b505050506040513d60208110156108da57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610798565b5050565b600061095d8383611000565b90505b92915050565b6001546001600160a01b031633146109af5760405162461bcd60e51b81526004018080602001828103825260358152602001806114f36035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60009081526004602052604090205490565b606080610a3f61105f565b60408051600380825260808201909252919250606091906020820183803883390190505090506b53797374656d53746174757360a01b81600081518110610a8257fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110610aac57fe5b6020026020010181815250506524b9b9bab2b960d11b81600281518110610acf57fe5b602002602001018181525050610ae582826110b0565b9250505090565b6000546001600160a01b031681565b600080610b06611165565b6001600160a01b031663c0eee4436040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3e57600080fd5b505afa158015610b52573d6000803e3d6000fd5b505050506040513d6020811015610b6857600080fd5b505115610b7457610d60565b600080610b7f610742565b6001600160a01b0316630c71cd23866040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015610bc157600080fd5b505afa158015610bd5573d6000803e3d6000fd5b505050506040513d6040811015610beb57600080fd5b50805160209091015190925090508080610c0a5750610c0a858361117f565b15610d4b576000610c196113d4565b6001600160a01b03166332608039876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c5c57600080fd5b505afa158015610c70573d6000803e3d6000fd5b505050506040513d6020811015610c8657600080fd5b50516001600160a01b03161415610cd4576040805162461bcd60e51b815260206004820152600d60248201526c09cde40e6eac6d040e6f2dce8d609b1b604482015290519081900360640190fd5b610cdc611165565b6001600160a01b031663abc0bb6e8660416040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015610d2a57600080fd5b505af1158015610d3e573d6000803e3d6000fd5b5050505060019250610d5d565b60008581526004602052604090208290555b50505b60009283526004602052604090922054929050565b600080600080610d83610742565b6001600160a01b0316630c71cd23866040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015610dc557600080fd5b505afa158015610dd9573d6000803e3d6000fd5b505050506040513d6040811015610def57600080fd5b5080516020909101519092509050818180610e0f5750610e0f868461117f565b935093505050915091565b6000546001600160a01b03163314610e635760405162461bcd60e51b815260040180806020018281038252602f815260200180611528602f913960400191505060405180910390fd5b565b6000610e6f6113e8565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610eeb57600080fd5b505afa158015610eff573d6000803e3d6000fd5b505050506040513d6020811015610f1557600080fd5b5051905090565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081610ff95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610fbe578181015183820152602001610fa6565b50505050905090810190601f168015610feb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b600082158061100d575081155b1561101a57506001610960565b60008383111561103b57611034838563ffffffff61140516565b905061104e565b61104b848463ffffffff61140516565b90505b611056610e65565b11159392505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106110a157fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156110e0578160200160208202803883390190505b50905060005b8351811015611122578381815181106110fb57fe5b602002602001015182828151811061110f57fe5b60209081029190910101526001016110e6565b5060005b8251811015610ff95782818151811061113b57fe5b602002602001015182828651018151811061115257fe5b6020908102919091010152600101611126565b60006107386b53797374656d53746174757360a01b610f1c565b60008161118e57506001610960565b60008381526004602052604090205480156111b5576111ad8184611000565b915050610960565b60606111bf610742565b6001600160a01b031663ed76245086600460006040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060006040518083038186803b15801561121457600080fd5b505afa158015611228573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561125157600080fd5b8101908080516040519392919084600160201b82111561127057600080fd5b90830190602082018581111561128557600080fd5b82518660208202830111600160201b821117156112a157600080fd5b82525081516020918201928201910280838360005b838110156112ce5781810151838201526020016112b6565b5050505090500160405260200180516040519392919084600160201b8211156112f657600080fd5b90830190602082018581111561130b57600080fd5b82518660208202830111600160201b8211171561132757600080fd5b82525081516020918201928201910280838360005b8381101561135457818101518382015260200161133c565b505050509050016040525050505090506000600190505b81518110156113c857600082828151811061138257fe5b60200260200101511180156113af57506113af8282815181106113a157fe5b602002602001015186611000565b156113c05760019350505050610960565b60010161136b565b50600095945050505050565b60006107386524b9b9bab2b960d11b610f1c565b60006107386e466c657869626c6553746f7261676560881b610f1c565b600061095d8261142385670de0b6b3a764000063ffffffff61142f16565b9063ffffffff61148816565b60008261143e57506000610960565b8282028284828161144b57fe5b041461095d5760405162461bcd60e51b81526004018080602001828103825260218152602001806115576021913960400191505060405180910390fd5b60008082116114de576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816114e957fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158209782593f6a4fdb08c095cac3dcd7bebad5cb55611d73615e71041a392b0ad0d664736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "previousRate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRate",
							"type": "uint256"
						}
					],
					"name": "LastRateOverriden",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CIRCUIT_BREAKER_SUSPENSION_REASON",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeRates",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "base",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "comparison",
							"type": "uint256"
						}
					],
					"name": "isDeviationAboveThreshold",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "lastExchangeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "priceDeviationThresholdFactor",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateWithBreakCircuit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "lastValidRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "circuitBroken",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateWithInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resetLastExchangeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x9a69567c37adbbe24df3515316cebbfb4899916d08af38c7738e4cd32c73827d",
				"urls": [
					"bzz-raw://9edb699f3216673201bcf24a5dc4289b3fb5e8614c5c5f2b9f270495005bd7f9",
					"dweb:/ipfs/QmZZvcu5Takmk2PZhQ7w83MTyHAcrbrHF1R2vouZXVJXSL"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeCircuitBreaker.sol": "ExchangeCircuitBreaker"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangeCircuitBreaker.sol": {
						"keccak256": "0x9a69567c37adbbe24df3515316cebbfb4899916d08af38c7738e4cd32c73827d",
						"urls": [
							"bzz-raw://9edb699f3216673201bcf24a5dc4289b3fb5e8614c5c5f2b9f270495005bd7f9",
							"dweb:/ipfs/QmZZvcu5Takmk2PZhQ7w83MTyHAcrbrHF1R2vouZXVJXSL"
						]
					}
				},
				"version": 1
			}
		},
		"FuturesMarketManager": {
			"bytecode": "608060405234801561001057600080fd5b50604051611b43380380611b438339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050611a1f806101246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806379ba5097116100b8578063d289ade21161007c578063d289ade214610379578063da40385d14610396578063e63bfadb14610404578063f04cfcea14610421578063fc7b9c181461048f578063fe11edc9146104b057610136565b806379ba5097146102c7578063899ffef4146102cf5780638da5cb5b146102d7578063a7b5833f146102df578063bfef7bdf1461030b57610136565b8063375a7cba116100ff578063375a7cba1461027b57806353a47bb714610283578063614d08f81461028b5780636f9a0ca61461029357806374185360146102bf57610136565b80628d3aca1461013b57806304f3bcec146101f95780631627540c1461021d57806326e04f9d146102455780632af64bd31461025f575b600080fd5b6101a96004803603602081101561015157600080fd5b810190602081018135600160201b81111561016b57600080fd5b82018360208201111561017d57600080fd5b803590602001918460208302840111600160201b8311171561019e57600080fd5b5090925090506104d3565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101e55781810151838201526020016101cd565b505050509050019250505060405180910390f35b61020161051a565b604080516001600160a01b039092168252519081900360200190f35b6102436004803603602081101561023357600080fd5b50356001600160a01b0316610529565b005b61024d610585565b60408051918252519081900360200190f35b61026761058c565b604080519115158252519081900360200190f35b6101a9610696565b6102016106b4565b61024d6106c3565b61024d600480360360408110156102a957600080fd5b506001600160a01b0381351690602001356106de565b6102436108b1565b610243610a79565b6101a9610b35565b610201610bca565b610243600480360360408110156102f557600080fd5b506001600160a01b038135169060200135610bd9565b6102436004803603602081101561032157600080fd5b810190602081018135600160201b81111561033b57600080fd5b82018360208201111561034d57600080fd5b803590602001918460208302840111600160201b8311171561036e57600080fd5b509092509050610c64565b6102436004803603602081101561038f57600080fd5b5035610ca8565b610243600480360360208110156103ac57600080fd5b810190602081018135600160201b8111156103c657600080fd5b8201836020820111156103d857600080fd5b803590602001918460208302840111600160201b831117156103f957600080fd5b509092509050610de2565b6102016004803603602081101561041a57600080fd5b503561103d565b6102436004803603602081101561043757600080fd5b810190602081018135600160201b81111561045157600080fd5b82018360208201111561046357600080fd5b803590602001918460208302840111600160201b8311171561048457600080fd5b509092509050611058565b6104976110a4565b6040805192835290151560208301528051918290030190f35b6101a9600480360360408110156104c657600080fd5b508035906020013561118c565b60606105118383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506111a092505050565b90505b92915050565b6002546001600160a01b031681565b610531611250565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6004545b90565b60006060610598610b35565b905060005b815181101561068d5760008282815181106105b457fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561061c57600080fd5b505afa158015610630573d6000803e3d6000fd5b505050506040513d602081101561064657600080fd5b50516001600160a01b031614158061067357506000818152600360205260409020546001600160a01b0316155b156106845760009350505050610589565b5060010161059d565b50600191505090565b600480546060916106af9160009063ffffffff61129b16565b905090565b6001546001600160a01b031681565b73233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b81565b60006106e8611371565b60006106f26113d3565b905060006106fe6113ea565b6001600160a01b0316631b16802c86631cd554d160e21b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050606060405180830381600087803b15801561076457600080fd5b505af1158015610778573d6000803e3d6000fd5b505050506040513d606081101561078e57600080fd5b5051905083811561081e57826001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d602081101561081957600080fd5b505190505b84811061082b578461082d565b805b9450826001600160a01b0316639dc29fac87876040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561088f57600080fd5b505af11580156108a3573d6000803e3d6000fd5b509698975050505050505050565b60606108bb610b35565b905060005b8151811015610a755760008282815181106108d757fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561098d578181015183820152602001610975565b50505050905090810190601f1680156109ba5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156109d857600080fd5b505afa1580156109ec573d6000803e3d6000fd5b505050506040513d6020811015610a0257600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016108c0565b5050565b6001546001600160a01b03163314610ac25760405162461bcd60e51b81526004018080602001828103825260358152602001806119876035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b604080516003808252608082019092526060916020820183803883390190505090506814de5b9d1a1cd554d160ba1b81600081518110610b7157fe5b60200260200101818152505066119959541bdbdb60ca1b81600181518110610b9557fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600281518110610bbb57fe5b60200260200101818152505090565b6000546001600160a01b031681565b610be1611371565b610be96113d3565b6001600160a01b031663867904b483836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610c4857600080fd5b505af1158015610c5c573d6000803e3d6000fd5b505050505050565b610c6c611250565b610a7582828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061140192505050565b610cb0611371565b6000610cba611632565b9050610cc46113d3565b6001600160a01b031663867904b4826001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015610d0b57600080fd5b505afa158015610d1f573d6000803e3d6000fd5b505050506040513d6020811015610d3557600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820186905251604480830192600092919082900301818387803b158015610d8457600080fd5b505af1158015610d98573d6000803e3d6000fd5b50505050806001600160a01b03166322bf55ef836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c4857600080fd5b610dea611250565b8060005b81811015611037576000848483818110610e0457fe5b905060200201356001600160a01b03169050610e2a81600461164790919063ffffffff16565b15610e74576040805162461bcd60e51b81526020600482015260156024820152744d61726b657420616c72656164792065786973747360581b604482015290519081900360640190fd5b6000816001600160a01b031663d7103a466040518163ffffffff1660e01b815260040160206040518083038186803b158015610eaf57600080fd5b505afa158015610ec3573d6000803e3d6000fd5b505050506040513d6020811015610ed957600080fd5b50516040805163cdf456e160e01b815290519192506000916001600160a01b0385169163cdf456e1916004808301926020929190829003018186803b158015610f2157600080fd5b505afa158015610f35573d6000803e3d6000fd5b505050506040513d6020811015610f4b57600080fd5b50516000838152600660205260409020549091506001600160a01b031615610fba576040805162461bcd60e51b815260206004820152601d60248201527f4d61726b657420616c72656164792065786973747320666f72206b6579000000604482015290519081900360640190fd5b600082815260066020526040902080546001600160a01b0319166001600160a01b038516179055610fec6004846116b5565b604080516001600160a01b03851681529051839183917f96bfb0243b17c28e58d33656cd16adf56e92fc6bbeedab19c4a1c56f585274d69181900360200190a3505050600101610dee565b50505050565b6006602052600090815260409020546001600160a01b031681565b611060611250565b610a7561109f8383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506111a092505050565b611401565b600454600090819081908190815b8181101561118157600080600460000183815481106110cd57fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b031663e8c634706040518163ffffffff1660e01b8152600401604080518083038186803b15801561112257600080fd5b505afa158015611136573d6000803e3d6000fd5b505050506040513d604081101561114c57600080fd5b508051602090910151909250905061116a868363ffffffff61170716565b955084806111755750805b945050506001016110b2565b509193509150509091565b60606105116004848463ffffffff61129b16565b60606000825190506060816040519080825280602002602001820160405280156111d4578160200160208202803883390190505b50905060005b8281101561124857600660008683815181106111f257fe5b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b031682828151811061122857fe5b6001600160a01b03909216602092830291909101909101526001016111da565b509392505050565b6000546001600160a01b031633146112995760405162461bcd60e51b815260040180806020018281038252602f8152602001806119bc602f913960400191505060405180910390fd5b565b8254606090838301908111156112af575083545b8381116112cc57505060408051600081526020810190915261136a565b6040805185830380825260208082028301019092526060908280156112fb578160200160208202803883390190505b50905060005b8281101561136457876000018782018154811061131a57fe5b9060005260206000200160009054906101000a90046001600160a01b031682828151811061134457fe5b6001600160a01b0390921660209283029190910190910152600101611301565b50925050505b9392505050565b61138260043363ffffffff61164716565b611299576040805162461bcd60e51b815260206004820152601a60248201527f5065726d6974746564206f6e6c7920666f72206d61726b657473000000000000604482015290519081900360640190fd5b60006106af6814de5b9d1a1cd554d160ba1b611761565b60006106af6822bc31b430b733b2b960b91b611761565b805160005b8181101561162d57600083828151811061141c57fe5b6020026020010151905060006001600160a01b0316816001600160a01b0316141561147f576040805162461bcd60e51b815260206004820152600e60248201526d155b9adb9bdddb881b585c9ad95d60921b604482015290519081900360640190fd5b6000816001600160a01b031663d7103a466040518163ffffffff1660e01b815260040160206040518083038186803b1580156114ba57600080fd5b505afa1580156114ce573d6000803e3d6000fd5b505050506040513d60208110156114e457600080fd5b50516040805163cdf456e160e01b815290519192506000916001600160a01b0385169163cdf456e1916004808301926020929190829003018186803b15801561152c57600080fd5b505afa158015611540573d6000803e3d6000fd5b505050506040513d602081101561155657600080fd5b50516000838152600660205260409020549091506001600160a01b03166115b5576040805162461bcd60e51b815260206004820152600e60248201526d155b9adb9bdddb881b585c9ad95d60921b604482015290519081900360640190fd5b600082815260066020526040902080546001600160a01b03191690556115e260048463ffffffff61184516565b604080516001600160a01b03851681529051839183917fce64c0b68d87b6796835a03e01a9e3935b8ed965b01df87766b1e5e35ab44bfd9181900360200190a3505050600101611406565b505050565b60006106af66119959541bdbdb60ca1b611761565b815460009061165857506000610514565b6001600160a01b0382166000908152600184016020526040902054801515806116ad5750826001600160a01b03168460000160008154811061169657fe5b6000918252602090912001546001600160a01b0316145b949350505050565b6116bf8282611647565b610a755781546001600160a01b038216600081815260018086016020908152604083208590559084018655858252902090910180546001600160a01b03191690911790555050565b600082820183811015610511576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b0316908161183e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118035781810151838201526020016117eb565b50505050905090810190601f1680156118305780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b61184f8282611647565b611896576040805162461bcd60e51b815260206004820152601360248201527222b632b6b2b73a103737ba1034b71039b2ba1760691b604482015290519081900360640190fd5b6001600160a01b03811660009081526001830160205260409020548254600019018082146119355760008460000182815481106118cf57fe5b60009182526020909120015485546001600160a01b03909116915081908690859081106118f857fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018601909152604090208290555b835484908061194057fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b039490941681526001949094019092525050604081205556fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820e476bef585fd7c4a1fe07a66aa3f3799220757664ee3fe9cd019e298deaa7ce364736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "market",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "asset",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "MarketAdded",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "market",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "asset",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "MarketRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "marketsToAdd",
							"type": "address[]"
						}
					],
					"name": "addMarkets",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allMarkets",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burnSUSD",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "postReclamationAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issueSUSD",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "marketForKey",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "pageSize",
							"type": "uint256"
						}
					],
					"name": "markets",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						}
					],
					"name": "marketsForKeys",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "numMarkets",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "payFee",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "marketsToRemove",
							"type": "address[]"
						}
					],
					"name": "removeMarkets",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeysToRemove",
							"type": "bytes32[]"
						}
					],
					"name": "removeMarketsByKey",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xfda132bc4811a2112e611fbf50373a9ae1d4effd6a96b4503ace474ac795f2da",
				"urls": [
					"bzz-raw://b51729432c712bfc75ab07199bd25ecb3495aa62130f5889b9d8f85d32ef01bf",
					"dweb:/ipfs/QmeEHF8CompmUCAPdHGCjVG3n6iEmkWsRXWYy9XgYVC8DQ"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FuturesMarketManager.sol": "FuturesMarketManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FuturesMarketManager.sol": {
						"keccak256": "0xfda132bc4811a2112e611fbf50373a9ae1d4effd6a96b4503ace474ac795f2da",
						"urls": [
							"bzz-raw://b51729432c712bfc75ab07199bd25ecb3495aa62130f5889b9d8f85d32ef01bf",
							"dweb:/ipfs/QmeEHF8CompmUCAPdHGCjVG3n6iEmkWsRXWYy9XgYVC8DQ"
						]
					}
				},
				"version": 1
			}
		},
		"FuturesMarketData": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620022e8380380620022e883398101604081905262000034916200006d565b600080546001600160a01b0319166001600160a01b0392909216919091179055620000d6565b80516200006781620000bc565b92915050565b6000602082840312156200008057600080fd5b60006200008e84846200005a565b949350505050565b60006200006782620000b0565b6000620000678262000096565b6001600160a01b031690565b620000c781620000a3565b8114620000d357600080fd5b50565b61220280620000e66000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806383ce90221161006657806383ce902214610136578063985f289e14610149578063a9e0bef71461015c578063c1d1df561461016f578063c3124525146101825761009e565b806302506804146100a35780633c88ee18146100cc5780636a59e495146100e1578063730e0037146100f6578063808bad3414610116575b600080fd5b6100b66100b13660046117e3565b610197565b6040516100c391906120a4565b60405180910390f35b6100d46101ae565b6040516100c3919061201e565b6100e9610239565b6040516100c3919061203d565b610109610104366004611859565b610248565b6040516100c39190612095565b610129610124366004611877565b610259565b6040516100c391906120b3565b6100d461014436600461174e565b610272565b61012961015736600461181f565b6102c3565b6100d461016a36600461174e565b610357565b61010961017d3660046117e3565b610395565b61018a610428565b6040516100c39190612087565b61019f6113ea565b6101a882610622565b92915050565b60606102346101bb61070d565b6001600160a01b031663375a7cba6040518163ffffffff1660e01b815260040160006040518083038186803b1580156101f357600080fd5b505afa158015610207573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261022f9190810190611790565b61078c565b905090565b6000546001600160a01b031681565b610250611436565b6101a882610bee565b610261611499565b61026b8383610fad565b9392505050565b606061026b61027f61070d565b6001600160a01b0316628d3aca85856040518363ffffffff1660e01b81526004016102ab92919061200c565b60006040518083038186803b1580156101f357600080fd5b6102cb611499565b61026b6102d661070d565b6001600160a01b031663e63bfadb856040518263ffffffff1660e01b8152600401610301919061202f565b60206040518083038186803b15801561031957600080fd5b505afa15801561032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103519190810190611728565b83610fad565b606061026b83838080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061078c92505050565b61039d611436565b6101a86103a861070d565b6001600160a01b031663e63bfadb846040518263ffffffff1660e01b81526004016103d3919061202f565b60206040518083038186803b1580156103eb57600080fd5b505afa1580156103ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104239190810190611728565b610bee565b6104306114e6565b600061043a6110b1565b90506040518060800160405280826001600160a01b0316638f20f2ea6040518163ffffffff1660e01b815260040160206040518083038186803b15801561048057600080fd5b505afa158015610494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104b89190810190611801565b8152602001826001600160a01b031663cfe711036040518163ffffffff1660e01b815260040160206040518083038186803b1580156104f657600080fd5b505afa15801561050a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061052e9190810190611801565b8152602001826001600160a01b03166354e67b566040518163ffffffff1660e01b815260040160206040518083038186803b15801561056c57600080fd5b505afa158015610580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105a49190810190611801565b8152602001826001600160a01b031663139955026040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e257600080fd5b505afa1580156105f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061061a9190810190611801565b905291505090565b61062a6113ea565b60008060008060008060008060006106406110b1565b6001600160a01b031663025068048c6040518263ffffffff1660e01b815260040161066b919061202f565b6101206040518083038186803b15801561068457600080fd5b505afa158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106bc9190810190611932565b6040805161012081018252998a5260208a0198909852968801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201529b9a5050505050505050505050565b6000805460405163dacb2d0160e01b81526001600160a01b039091169063dacb2d019061073c9060040161204b565b60206040518083038186803b15801561075457600080fd5b505afa158015610768573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102349190810190611728565b60606000825190506060816040519080825280602002602001820160405280156107d057816020015b6107bd61150e565b8152602001906001900390816107b55790505b50905060005b82811015610be65760008582815181106107ec57fe5b602002602001015190506000816001600160a01b031663d7103a466040518163ffffffff1660e01b815260040160206040518083038186803b15801561083157600080fd5b505afa158015610845573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108699190810190611801565b90506000826001600160a01b031663cdf456e16040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a657600080fd5b505afa1580156108ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108de9190810190611801565b90506108e86113ea565b6108f183610622565b90506000846001600160a01b031663d24378eb6040518163ffffffff1660e01b8152600401604080518083038186803b15801561092d57600080fd5b505afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061096591908101906118b4565b5090506000856001600160a01b031663e8c634706040518163ffffffff1660e01b8152600401604080518083038186803b1580156109a257600080fd5b505afa1580156109b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109da91908101906118b4565b509050604051806101400160405280876001600160a01b031681526020018581526020018681526020018460a001518152602001838152602001876001600160a01b031663eb56105d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4d57600080fd5b505afa158015610a61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a8591908101906118e4565b6001600160801b03168152602001876001600160a01b0316632b58ecef6040518163ffffffff1660e01b815260040160206040518083038186803b158015610acc57600080fd5b505afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b049190810190611896565b600f0b8152602001828152602001876001600160a01b0316633aef4d0b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b4b57600080fd5b505afa158015610b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b839190810190611801565b815260200160405180608001604052808660000151815260200186602001518152602001866040015181526020018660600151815250815250888881518110610bc857fe5b602002602001018190525050505050505080806001019150506107d6565b509392505050565b610bf6611436565b600080836001600160a01b031663d24378eb6040518163ffffffff1660e01b8152600401604080518083038186803b158015610c3157600080fd5b505afa158015610c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c6991908101906118b4565b915091506000846001600160a01b031663e8c634706040518163ffffffff1660e01b8152600401604080518083038186803b158015610ca757600080fd5b505afa158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cdf91908101906118b4565b5090506000856001600160a01b031663cdf456e16040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1d57600080fd5b505afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d559190810190611801565b90506000866001600160a01b031663d7103a466040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9257600080fd5b505afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dca9190810190611801565b9050610dd46113ea565b610ddd82610622565b9050604051806101000160405280896001600160a01b0316815260200184815260200183815260200160405180608001604052808460000151815260200184602001518152602001846040015181526020018460600151815250815260200160405180604001604052808460a0015181526020018460c001518152508152602001610e67836110e0565b815260200160405180608001604052808b6001600160a01b031663eb56105d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ee891908101906118e4565b6001600160801b03168152602001610eff8c611109565b81526020018781526020018b6001600160a01b0316632b58ecef6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f4357600080fd5b505afa158015610f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f7b9190810190611896565b600f0b815250815260200160405180604001604052808981526020018815158152508152509650505050505050919050565b610fb5611499565b604051806101000160405280610fcb858561119e565b8152602001610fda8585611278565b8152602001610fe985856112ff565b8152602001610ff8858561132e565b8152602001611007858561135d565b8152602001611016858561138c565b815260200161102585856113bb565b8152602001846001600160a01b031663b9f4ff55856040518263ffffffff1660e01b81526004016110569190611ffe565b60206040518083038186803b15801561106e57600080fd5b505afa158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110a691908101906117c5565b151590529392505050565b6000805460405163dacb2d0160e01b81526001600160a01b039091169063dacb2d019061073c90600401612069565b6110e8611570565b506040805180820190915260e0820151815261010090910151602082015290565b611111611570565b600080836001600160a01b0316635fc890c26040518163ffffffff1660e01b8152600401604080518083038186803b15801561114c57600080fd5b505afa158015611160573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111849190810190611902565b604080518082019091529182526020820152949350505050565b6111a661158a565b6000806000806000876001600160a01b03166355f57510886040518263ffffffff1660e01b81526004016111da9190611ffe565b60a06040518083038186803b1580156111f257600080fd5b505afa158015611206573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061122a91908101906119f6565b6040805160a08101825267ffffffffffffffff96871681529590941660208601526001600160801b0392831693850193909352166060830152600f0b60808201529550505050505092915050565b600080836001600160a01b031663b895daab846040518263ffffffff1660e01b81526004016112a79190611ffe565b604080518083038186803b1580156112be57600080fd5b505afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112f691908101906118b4565b50949350505050565b600080836001600160a01b031663b111dfac846040518263ffffffff1660e01b81526004016112a79190611ffe565b600080836001600160a01b0316631bf556d0846040518263ffffffff1660e01b81526004016112a79190611ffe565b600080836001600160a01b0316639cfbf4e4846040518263ffffffff1660e01b81526004016112a79190611ffe565b600080836001600160a01b031663785cdeec846040518263ffffffff1660e01b81526004016112a79190611ffe565b600080836001600160a01b031663964db90c846040518263ffffffff1660e01b81526004016112a79190611ffe565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604080516101008101825260008082526020820181905291810191909152606081016114606114e6565b815260200161146d611570565b815260200161147a611570565b81526020016114876115b8565b81526020016114946115e6565b905290565b6040518061010001604052806114ad61158a565b81526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180610140016040528060006001600160a01b0316815260200160008019168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016114946114e6565b604051806040016040528060008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060800160405280600081526020016115d2611570565b815260200160008152602001600081525090565b604080518082019091526000808252602082015290565b80356101a881612172565b80516101a881612172565b60008083601f84011261162557600080fd5b50813567ffffffffffffffff81111561163d57600080fd5b60208301915083602082028301111561165557600080fd5b9250929050565b600082601f83011261166d57600080fd5b815161168061167b826120e9565b6120c2565b915081818352602084019350602081019050838560208402820111156116a557600080fd5b60005b838110156116d157816116bb8882611608565b84525060209283019291909101906001016116a8565b5050505092915050565b80516101a881612189565b80356101a881612192565b80516101a881612192565b80356101a88161219b565b80516101a8816121a4565b80516101a8816121ad565b80516101a8816121b6565b60006020828403121561173a57600080fd5b60006117468484611608565b949350505050565b6000806020838503121561176157600080fd5b823567ffffffffffffffff81111561177857600080fd5b61178485828601611613565b92509250509250929050565b6000602082840312156117a257600080fd5b815167ffffffffffffffff8111156117b957600080fd5b6117468482850161165c565b6000602082840312156117d757600080fd5b600061174684846116db565b6000602082840312156117f557600080fd5b600061174684846116e6565b60006020828403121561181357600080fd5b600061174684846116f1565b6000806040838503121561183257600080fd5b600061183e85856116e6565b925050602061184f858286016115fd565b9150509250929050565b60006020828403121561186b57600080fd5b600061174684846116fc565b6000806040838503121561188a57600080fd5b600061183e85856116fc565b6000602082840312156118a857600080fd5b60006117468484611707565b600080604083850312156118c757600080fd5b60006118d385856116f1565b925050602061184f858286016116db565b6000602082840312156118f657600080fd5b60006117468484611712565b6000806040838503121561191557600080fd5b600061192185856116f1565b925050602061184f858286016116f1565b60008060008060008060008060006101208a8c03121561195157600080fd5b600061195d8c8c6116f1565b995050602061196e8c828d016116f1565b985050604061197f8c828d016116f1565b97505060606119908c828d016116f1565b96505060806119a18c828d016116f1565b95505060a06119b28c828d016116f1565b94505060c06119c38c828d016116f1565b93505060e06119d48c828d016116f1565b9250506101006119e68c828d016116f1565b9150509295985092959850929598565b600080600080600060a08688031215611a0e57600080fd5b6000611a1a888861171d565b9550506020611a2b8882890161171d565b9450506040611a3c88828901611712565b9350506060611a4d88828901611712565b9250506080611a5e88828901611707565b9150509295509295909350565b6000611a778383611d63565b50506101a00190565b611a898161211d565b82525050565b6000611a9b8385612114565b93506001600160fb1b03831115611ab157600080fd5b602083029250611ac2838584612166565b50500190565b6000611ad382612110565b611add8185612114565b9350611ae88361210a565b8060005b83811015611b16578151611b008882611a6b565b9750611b0b8361210a565b925050600101611aec565b509495945050505050565b611a8981612128565b611a898161212d565b611a8981612130565b611a898161213b565b6000611b52602483612114565b7f4d697373696e6720467574757265734d61726b65744d616e61676572204164648152637265737360e01b602082015260400192915050565b73233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b9052565b74467574757265734d61726b657453657474696e677360581b9052565b6000611bd1602583612114565b7f4d697373696e6720467574757265734d61726b657453657474696e6773204164815264647265737360d81b602082015260400192915050565b80516080830190611c1c8482611b2a565b506020820151611c2f6020850182611b2a565b506040820151611c426040850182611b2a565b506060820151611c556060850182611b2a565b50505050565b80516040830190611c6c8482611b2a565b506020820151611c556020850182611b2a565b8051610240830190611c918482611a80565b506020820151611ca46020850182611b2a565b506040820151611cb76040850182611b2a565b506060820151611cca6060850182611c0b565b506080820151611cdd60e0850182611c5b565b5060a0820151611cf1610120850182611c5b565b5060c0820151611d05610160850182611d19565b5060e0820151611c55610200850182611fc8565b805160a0830190611d2a8482611b2a565b506020820151611d3d6020850182611c5b565b506040820151611d506060850182611b2a565b506060820151611c556080850182611b2a565b80516101a0830190611d758482611a80565b506020820151611d886020850182611b2a565b506040820151611d9b6040850182611b2a565b506060820151611dae6060850182611b2a565b506080820151611dc16080850182611b2a565b5060a0820151611dd460a0850182611b2a565b5060c0820151611de760c0850182611b2a565b5060e0820151611dfa60e0850182611b2a565b50610100820151611e0f610100850182611b2a565b50610120820151611c55610120850182611c0b565b8051610120830190611e368482611b2a565b506020820151611e496020850182611b2a565b506040820151611e5c6040850182611b2a565b506060820151611e6f6060850182611b2a565b506080820151611e826080850182611b2a565b5060a0820151611e9560a0850182611b2a565b5060c0820151611ea860c0850182611b2a565b5060e0820151611ebb60e0850182611b2a565b50610100820151611c55610100850182611b2a565b8051610180830190611ee28482611f6b565b506020820151611ef560a0850182611b2a565b506040820151611f0860c0850182611b2a565b506060820151611f1b60e0850182611b2a565b506080820151611f2f610100850182611b2a565b5060a0820151611f43610120850182611b2a565b5060c0820151611f57610140850182611b2a565b5060e0820151611c55610160850182611b21565b805160a0830190611f7c8482611ff5565b506020820151611f8f6020850182611ff5565b506040820151611fa26040850182611fec565b506060820151611fb56060850182611fec565b506080820151611c556080850182611b3c565b80516040830190611fd98482611b2a565b506020820151611c556020850182611b21565b611a8981612141565b611a8981612159565b602081016101a88284611a80565b60208082528101611746818486611a8f565b6020808252810161026b8184611ac8565b602081016101a88284611b2a565b602081016101a88284611b33565b6040810161205882611b8b565b81810360208301526101a881611b45565b6040810161207682611ba7565b81810360208301526101a881611bc4565b608081016101a88284611c0b565b61024081016101a88284611c7f565b61012081016101a88284611e24565b61018081016101a88284611ed0565b60405181810167ffffffffffffffff811182821017156120e157600080fd5b604052919050565b600067ffffffffffffffff82111561210057600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b60006101a88261214d565b151590565b90565b60006101a88261211d565b600f0b90565b6001600160801b031690565b6001600160a01b031690565b67ffffffffffffffff1690565b82818337506000910152565b61217b8161211d565b811461218657600080fd5b50565b61217b81612128565b61217b8161212d565b61217b81612130565b61217b8161213b565b61217b81612141565b61217b8161215956fea365627a7a7231582009a99ceadd53d9c3d9b3b0d28b80cb09fbec6096637c3cdca325afaac976ccac6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "_resolverProxy",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allMarketSummaries",
					"outputs": [
						{
							"components": [
								{
									"internalType": "address",
									"name": "market",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "asset",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "key",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "maxLeverage",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "price",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "marketSize",
									"type": "uint256"
								},
								{
									"internalType": "int256",
									"name": "marketSkew",
									"type": "int256"
								},
								{
									"internalType": "uint256",
									"name": "marketDebt",
									"type": "uint256"
								},
								{
									"internalType": "int256",
									"name": "currentFundingRate",
									"type": "int256"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "takerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "takerFeeNextPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFeeNextPrice",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.FeeRates",
									"name": "feeRates",
									"type": "tuple"
								}
							],
							"internalType": "struct FuturesMarketData.MarketSummary[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "globals",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "minInitialMargin",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "liquidationFeeRatio",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "liquidationBufferRatio",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "minKeeperFee",
									"type": "uint256"
								}
							],
							"internalType": "struct FuturesMarketData.FuturesGlobals",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract IFuturesMarket",
							"name": "market",
							"type": "address"
						}
					],
					"name": "marketDetails",
					"outputs": [
						{
							"components": [
								{
									"internalType": "address",
									"name": "market",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "baseAsset",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "marketKey",
									"type": "bytes32"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "takerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "takerFeeNextPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFeeNextPrice",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.FeeRates",
									"name": "feeRates",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "maxLeverage",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "maxMarketValueUSD",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.MarketLimits",
									"name": "limits",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "maxFundingRate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "skewScaleUSD",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.FundingParameters",
									"name": "fundingParameters",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "marketSize",
											"type": "uint256"
										},
										{
											"components": [
												{
													"internalType": "uint256",
													"name": "long",
													"type": "uint256"
												},
												{
													"internalType": "uint256",
													"name": "short",
													"type": "uint256"
												}
											],
											"internalType": "struct FuturesMarketData.Sides",
											"name": "sides",
											"type": "tuple"
										},
										{
											"internalType": "uint256",
											"name": "marketDebt",
											"type": "uint256"
										},
										{
											"internalType": "int256",
											"name": "marketSkew",
											"type": "int256"
										}
									],
									"internalType": "struct FuturesMarketData.MarketSizeDetails",
									"name": "marketSizeDetails",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "price",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "invalid",
											"type": "bool"
										}
									],
									"internalType": "struct FuturesMarketData.PriceDetails",
									"name": "priceDetails",
									"type": "tuple"
								}
							],
							"internalType": "struct FuturesMarketData.MarketData",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "marketDetailsForKey",
					"outputs": [
						{
							"components": [
								{
									"internalType": "address",
									"name": "market",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "baseAsset",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "marketKey",
									"type": "bytes32"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "takerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "takerFeeNextPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFeeNextPrice",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.FeeRates",
									"name": "feeRates",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "maxLeverage",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "maxMarketValueUSD",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.MarketLimits",
									"name": "limits",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "maxFundingRate",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "skewScaleUSD",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.FundingParameters",
									"name": "fundingParameters",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "marketSize",
											"type": "uint256"
										},
										{
											"components": [
												{
													"internalType": "uint256",
													"name": "long",
													"type": "uint256"
												},
												{
													"internalType": "uint256",
													"name": "short",
													"type": "uint256"
												}
											],
											"internalType": "struct FuturesMarketData.Sides",
											"name": "sides",
											"type": "tuple"
										},
										{
											"internalType": "uint256",
											"name": "marketDebt",
											"type": "uint256"
										},
										{
											"internalType": "int256",
											"name": "marketSkew",
											"type": "int256"
										}
									],
									"internalType": "struct FuturesMarketData.MarketSizeDetails",
									"name": "marketSizeDetails",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "price",
											"type": "uint256"
										},
										{
											"internalType": "bool",
											"name": "invalid",
											"type": "bool"
										}
									],
									"internalType": "struct FuturesMarketData.PriceDetails",
									"name": "priceDetails",
									"type": "tuple"
								}
							],
							"internalType": "struct FuturesMarketData.MarketData",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "markets",
							"type": "address[]"
						}
					],
					"name": "marketSummaries",
					"outputs": [
						{
							"components": [
								{
									"internalType": "address",
									"name": "market",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "asset",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "key",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "maxLeverage",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "price",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "marketSize",
									"type": "uint256"
								},
								{
									"internalType": "int256",
									"name": "marketSkew",
									"type": "int256"
								},
								{
									"internalType": "uint256",
									"name": "marketDebt",
									"type": "uint256"
								},
								{
									"internalType": "int256",
									"name": "currentFundingRate",
									"type": "int256"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "takerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "takerFeeNextPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFeeNextPrice",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.FeeRates",
									"name": "feeRates",
									"type": "tuple"
								}
							],
							"internalType": "struct FuturesMarketData.MarketSummary[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "marketKeys",
							"type": "bytes32[]"
						}
					],
					"name": "marketSummariesForKeys",
					"outputs": [
						{
							"components": [
								{
									"internalType": "address",
									"name": "market",
									"type": "address"
								},
								{
									"internalType": "bytes32",
									"name": "asset",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "key",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "maxLeverage",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "price",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "marketSize",
									"type": "uint256"
								},
								{
									"internalType": "int256",
									"name": "marketSkew",
									"type": "int256"
								},
								{
									"internalType": "uint256",
									"name": "marketDebt",
									"type": "uint256"
								},
								{
									"internalType": "int256",
									"name": "currentFundingRate",
									"type": "int256"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "takerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "takerFeeNextPrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "makerFeeNextPrice",
											"type": "uint256"
										}
									],
									"internalType": "struct FuturesMarketData.FeeRates",
									"name": "feeRates",
									"type": "tuple"
								}
							],
							"internalType": "struct FuturesMarketData.MarketSummary[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						}
					],
					"name": "parameters",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "takerFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "makerFee",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "takerFeeNextPrice",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "makerFeeNextPrice",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "nextPriceConfirmWindow",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "maxLeverage",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "maxMarketValueUSD",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "maxFundingRate",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "skewScaleUSD",
									"type": "uint256"
								}
							],
							"internalType": "struct IFuturesMarketSettings.Parameters",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract IFuturesMarket",
							"name": "market",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "positionDetails",
					"outputs": [
						{
							"components": [
								{
									"components": [
										{
											"internalType": "uint64",
											"name": "id",
											"type": "uint64"
										},
										{
											"internalType": "uint64",
											"name": "lastFundingIndex",
											"type": "uint64"
										},
										{
											"internalType": "uint128",
											"name": "margin",
											"type": "uint128"
										},
										{
											"internalType": "uint128",
											"name": "lastPrice",
											"type": "uint128"
										},
										{
											"internalType": "int128",
											"name": "size",
											"type": "int128"
										}
									],
									"internalType": "struct IFuturesMarketBaseTypes.Position",
									"name": "position",
									"type": "tuple"
								},
								{
									"internalType": "int256",
									"name": "notionalValue",
									"type": "int256"
								},
								{
									"internalType": "int256",
									"name": "profitLoss",
									"type": "int256"
								},
								{
									"internalType": "int256",
									"name": "accruedFunding",
									"type": "int256"
								},
								{
									"internalType": "uint256",
									"name": "remainingMargin",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "accessibleMargin",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "liquidationPrice",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "canLiquidatePosition",
									"type": "bool"
								}
							],
							"internalType": "struct FuturesMarketData.PositionData",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "positionDetailsForMarketKey",
					"outputs": [
						{
							"components": [
								{
									"components": [
										{
											"internalType": "uint64",
											"name": "id",
											"type": "uint64"
										},
										{
											"internalType": "uint64",
											"name": "lastFundingIndex",
											"type": "uint64"
										},
										{
											"internalType": "uint128",
											"name": "margin",
											"type": "uint128"
										},
										{
											"internalType": "uint128",
											"name": "lastPrice",
											"type": "uint128"
										},
										{
											"internalType": "int128",
											"name": "size",
											"type": "int128"
										}
									],
									"internalType": "struct IFuturesMarketBaseTypes.Position",
									"name": "position",
									"type": "tuple"
								},
								{
									"internalType": "int256",
									"name": "notionalValue",
									"type": "int256"
								},
								{
									"internalType": "int256",
									"name": "profitLoss",
									"type": "int256"
								},
								{
									"internalType": "int256",
									"name": "accruedFunding",
									"type": "int256"
								},
								{
									"internalType": "uint256",
									"name": "remainingMargin",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "accessibleMargin",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "liquidationPrice",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "canLiquidatePosition",
									"type": "bool"
								}
							],
							"internalType": "struct FuturesMarketData.PositionData",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverProxy",
					"outputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xaeead6f756774aeb78f20768f84eca5a2f6ab509469c1b117359aae4cf14ff2f",
				"urls": [
					"bzz-raw://9c99d14933fb5d7c50ba0246180790462ad0f6869866b7b5d080c1aa6319b613",
					"dweb:/ipfs/QmSNKQSJevodTRWPzz23vZjL4v6kZDzx4wRZmMqW1f78wa"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FuturesMarketData.sol": "FuturesMarketData"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FuturesMarketData.sol": {
						"keccak256": "0xaeead6f756774aeb78f20768f84eca5a2f6ab509469c1b117359aae4cf14ff2f",
						"urls": [
							"bzz-raw://9c99d14933fb5d7c50ba0246180790462ad0f6869866b7b5d080c1aa6319b613",
							"dweb:/ipfs/QmSNKQSJevodTRWPzz23vZjL4v6kZDzx4wRZmMqW1f78wa"
						]
					}
				},
				"version": 1
			}
		},
		"FuturesMarketSettings": {
			"bytecode": "608060405234801561001057600080fd5b50604051611e8b380380611e8b8339818101604052604081101561003357600080fd5b5080516020909101518080836001600160a01b03811661009a576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b0319909216919091179055505050611d65806101266000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806354e67b56116101255780638f20f2ea116100ad578063aacb3d4d1161007c578063aacb3d4d1461061f578063cdcec2d114610642578063cfe711031461065f578063d4d96e5e14610667578063fb54bfc8146106845761021c565b80638f20f2ea146105ba57806396129d2b146105c2578063a61fd348146105df578063a9ec1416146106025761021c565b806379ba5097116100f457806379ba509714610512578063899ffef41461051a5780638c3556e9146105725780638c6de0d71461058f5780638da5cb5b146105b25761021c565b806354e67b561461048f578063632f54f91461049757806369d41a6f146104b4578063741853601461050a5761021c565b806320edcdb8116101a8578063333ef25311610177578063333ef25314610407578063381bc187146104245780633da61cf81461044757806343b3c0041461046457806353a47bb7146104875761021c565b806320edcdb81461038e5780632af64bd3146103ab5780632b260b70146103c75780633296af23146103ea5761021c565b80630c54a383116101ef5780630c54a383146102fd57806313995502146103205780631627540c146103285780631773b5e71461034e5780631f2b05951461036b5761021c565b8063025068041461022157806304f3bcec146102855780630730bf53146102a95780630b1ccf80146102d8575b600080fd5b61023e6004803603602081101561023757600080fd5b50356106a1565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b61028d61071f565b604080516001600160a01b039092168252519081900360200190f35b6102c6600480360360208110156102bf57600080fd5b503561072e565b60408051918252519081900360200190f35b6102fb600480360360408110156102ee57600080fd5b508035906020013561073f565b005b6102fb6004803603604081101561031357600080fd5b50803590602001356107b9565b6102c6610838565b6102fb6004803603602081101561033e57600080fd5b50356001600160a01b0316610848565b6102c66004803603602081101561036457600080fd5b50356108a4565b6102fb6004803603604081101561038157600080fd5b50803590602001356108af565b6102fb600480360360208110156103a457600080fd5b503561092f565b6103b3610a67565b604080519115158252519081900360200190f35b6102fb600480360360408110156103dd57600080fd5b5080359060200135610b71565b6102fb6004803603602081101561040057600080fd5b5035610bf0565b6102fb6004803603602081101561041d57600080fd5b5035610cd2565b6102fb6004803603604081101561043a57600080fd5b5080359060200135610e06565b6102c66004803603602081101561045d57600080fd5b5035610e7c565b6102fb6004803603604081101561047a57600080fd5b5080359060200135610e87565b61028d610eb3565b6102c6610ec2565b6102c6600480360360208110156104ad57600080fd5b5035610ecc565b6102fb60048036036101408110156104cb57600080fd5b5080359060208101359060408101359060608101359060808101359060a08101359060c08101359060e081013590610100810135906101200135610ed7565b6102fb610f4e565b6102fb611112565b6105226111ce565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561055e578181015183820152602001610546565b505050509050019250505060405180910390f35b6102c66004803603602081101561058857600080fd5b5035611241565b6102fb600480360360408110156105a557600080fd5b508035906020013561124c565b61028d611273565b6102c6611282565b6102c6600480360360208110156105d857600080fd5b503561128c565b6102fb600480360360408110156105f557600080fd5b5080359060200135611297565b6102fb6004803603602081101561061857600080fd5b50356112b8565b6102fb6004803603604081101561063557600080fd5b508035906020013561139a565b6102c66004803603602081101561065857600080fd5b50356113c7565b6102c66113d2565b6102c66004803603602081101561067d57600080fd5b50356113dc565b6102c66004803603602081101561069a57600080fd5b50356113e7565b60008060008060008060008060006106b88a6113f2565b98506106c38a611409565b97506106ce8a611420565b96506106d98a611440565b95506106e48a611460565b94506106ef8a611485565b93506106fa8a61149f565b92506107058a6114bf565b91506107108a6114dc565b90509193959799909294969850565b6002546001600160a01b031681565b600061073982611485565b92915050565b6107476114f7565b670de0b6b3a764000081111561079f576040805162461bcd60e51b81526020600482015260186024820152776d616b6572206665652067726561746572207468616e203160401b604482015290519081900360640190fd5b6107b582676d616b657246656560c01b83611542565b5050565b6107c16114f7565b670de0b6b3a7640000811115610819576040805162461bcd60e51b815260206004820152601860248201527774616b6572206665652067726561746572207468616e203160401b604482015290519081900360640190fd5b6107b5827074616b65724665654e657874507269636560781b83611542565b6000610842611628565b90505b90565b6108506114f7565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600061073982611420565b6108b76114f7565b6000811161090c576040805162461bcd60e51b815260206004820152601760248201527f63616e6e6f742073657420736b6577207363616c652030000000000000000000604482015290519081900360640190fd5b610915826116d2565b6107b5826b1cdad95dd4d8d85b195554d160a21b83611542565b6109376114f7565b80610940611628565b1115610993576040805162461bcd60e51b815260206004820152601c60248201527f6d696e206d617267696e203c206c69717569646174696f6e2066656500000000604482015290519081900360640190fd5b61099b611840565b6001600160a01b0316631d5b277f600080516020611ce283398151915276333aba3ab932b9a6b4b724b734ba34b0b626b0b933b4b760491b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610a1857600080fd5b505af1158015610a2c573d6000803e3d6000fd5b50506040805184815290517ff5958b2492f4eeb807d26adb1e05d927402a2b27ec6b67e98a76def8bf9fbb999350908190036020019150a150565b60006060610a736111ce565b905060005b8151811015610b68576000828281518110610a8f57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610af757600080fd5b505afa158015610b0b573d6000803e3d6000fd5b505050506040513d6020811015610b2157600080fd5b50516001600160a01b0316141580610b4e57506000818152600360205260409020546001600160a01b0316155b15610b5f5760009350505050610845565b50600101610a78565b50600191505090565b610b796114f7565b670de0b6b3a7640000811115610bd1576040805162461bcd60e51b81526020600482015260186024820152776d616b6572206665652067726561746572207468616e203160401b604482015290519081900360640190fd5b6107b582706d616b65724665654e657874507269636560781b83611542565b610bf86114f7565b610c00611840565b6001600160a01b0316631d5b277f600080516020611ce28339815191527f667574757265734c69717569646174696f6e427566666572526174696f000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610c8357600080fd5b505af1158015610c97573d6000803e3d6000fd5b50506040805184815290517f733333f0452c918352a0a3b74e6e95d7682ef3001a6b070df09cc6e6c27a63769350908190036020019150a150565b610cda6114f7565b610ce261185d565b811115610d36576040805162461bcd60e51b815260206004820152601c60248201527f6d696e206d617267696e203c206c69717569646174696f6e2066656500000000604482015290519081900360640190fd5b610d3e611840565b6001600160a01b0316631d5b277f600080516020611ce283398151915272667574757265734d696e4b656570657246656560681b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610db757600080fd5b505af1158015610dcb573d6000803e3d6000fd5b50506040805184815290517f19aa707c9ee917e97ea0ac9146e39c123d4bd88e1f2cd719d32a8a54fe4099029350908190036020019150a150565b610e0e6114f7565b670de0b6b3a7640000811115610e66576040805162461bcd60e51b815260206004820152601860248201527774616b6572206665652067726561746572207468616e203160401b604482015290519081900360640190fd5b6107b5826774616b657246656560c01b83611542565b600061073982611409565b610e8f6114f7565b6107b582756e6578745072696365436f6e6669726d57696e646f7760501b83611542565b6001546001600160a01b031681565b60006108426118da565b6000610739826114dc565b610edf6114f7565b610ee88a6116d2565b610ef28a8a610e06565b610efc8a8961073f565b610f068a886107b9565b610f108a87610b71565b610f1a8a86610e87565b610f248a85611297565b610f2e8a8461124c565b610f388a8361139a565b610f428a826108af565b50505050505050505050565b6060610f586111ce565b905060005b81518110156107b5576000828281518110610f7457fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561102a578181015183820152602001611012565b50505050905090810190601f1680156110575780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561107557600080fd5b505afa158015611089573d6000803e3d6000fd5b505050506040513d602081101561109f57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610f5d565b6001546001600160a01b0316331461115b5760405162461bcd60e51b8152600401808060200182810382526035815260200180611cad6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6060806111d961195d565b604080516001808252818301909252919250606091906020808301908038833901905050905073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b8160008151811061122457fe5b60200260200101818152505061123a82826119ae565b9250505090565b6000610739826113f2565b6112546114f7565b6107b582701b585e13585c9ad95d15985b1d595554d1607a1b83611542565b6000546001600160a01b031681565b600061084261185d565b600061073982611460565b61129f6114f7565b6107b5826a6d61784c6576657261676560a81b83611542565b6112c06114f7565b6112c8611840565b6001600160a01b0316631d5b277f600080516020611ce28339815191527f667574757265734c69717569646174696f6e466565526174696f000000000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561134b57600080fd5b505af115801561135f573d6000803e3d6000fd5b50506040805184815290517fc20b071f9997836faebec2ea68df94cb8cd01c8721f2c0b973443d8316eaa0709350908190036020019150a150565b6113a26114f7565b6113ab826116d2565b6107b5826d6d617846756e64696e675261746560901b83611542565b600061073982611440565b6000610842611a6a565b60006107398261149f565b6000610739826114bf565b6000610739826774616b657246656560c01b611aed565b600061073982676d616b657246656560c01b611aed565b6000610739827074616b65724665654e657874507269636560781b611aed565b600061073982706d616b65724665654e657874507269636560781b611aed565b600061073982756e6578745072696365436f6e6669726d57696e646f7760501b611aed565b6000610739826a6d61784c6576657261676560a81b611aed565b600061073982701b585e13585c9ad95d15985b1d595554d1607a1b611aed565b6000610739826d6d617846756e64696e675261746560901b611aed565b6000610739826b1cdad95dd4d8d85b195554d160a21b611aed565b6000546001600160a01b031633146115405760405162461bcd60e51b815260040180806020018281038252602f815260200180611d02602f913960400191505060405180910390fd5b565b61154a611840565b6040805160208082018790528183018690528251808303840181526060830180855281519190920120631d5b277f60e01b909152600080516020611ce28339815191526064830152608482015260a4810184905290516001600160a01b039290921691631d5b277f9160c48082019260009290919082900301818387803b1580156115d457600080fd5b505af11580156115e8573d6000803e3d6000fd5b50506040805184815290518593508692507fb1e024a1aed9a1f08ef2258cedd5c544e48dcb5befc1ec2aa0ff9ea60997d14f9181900360200190a3505050565b6000611632611840565b6001600160a01b03166323257c2b600080516020611ce283398151915272667574757265734d696e4b656570657246656560681b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116a157600080fd5b505afa1580156116b5573d6000803e3d6000fd5b505050506040513d60208110156116cb57600080fd5b5051905090565b60006116dc611bb1565b6001600160a01b031663e63bfadb836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561171f57600080fd5b505afa158015611733573d6000803e3d6000fd5b505050506040513d602081101561174957600080fd5b50516040805163eb56105d60e01b815290519192506000916001600160a01b0384169163eb56105d916004808301926020929190829003018186803b15801561179157600080fd5b505afa1580156117a5573d6000803e3d6000fd5b505050506040513d60208110156117bb57600080fd5b50516fffffffffffffffffffffffffffffffff1611156107b557806001600160a01b0316634eb985cc6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561181057600080fd5b505af1158015611824573d6000803e3d6000fd5b505050506040513d602081101561183a57600080fd5b50505050565b60006108426e466c657869626c6553746f7261676560881b611bcf565b6000611867611840565b6001600160a01b03166323257c2b600080516020611ce283398151915276333aba3ab932b9a6b4b724b734ba34b0b626b0b933b4b760491b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116a157600080fd5b60006118e4611840565b6001600160a01b03166323257c2b600080516020611ce28339815191527f667574757265734c69717569646174696f6e427566666572526174696f0000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116a157600080fd5b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061199f57fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156119de578160200160208202803883390190505b50905060005b8351811015611a20578381815181106119f957fe5b6020026020010151828281518110611a0d57fe5b60209081029190910101526001016119e4565b5060005b8251811015611a6357828181518110611a3957fe5b6020026020010151828286510181518110611a5057fe5b6020908102919091010152600101611a24565b5092915050565b6000611a74611840565b6001600160a01b03166323257c2b600080516020611ce28339815191527f667574757265734c69717569646174696f6e466565526174696f0000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116a157600080fd5b6000611af7611840565b6001600160a01b03166323257c2b600080516020611ce283398151915285856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b7e57600080fd5b505afa158015611b92573d6000803e3d6000fd5b505050506040513d6020811015611ba857600080fd5b50519392505050565b600061084273233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611a635760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c71578181015183820152602001611c59565b50505050905090810190601f168015611c9e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970467574757265734d61726b657453657474696e677300000000000000000000004f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582099e4d405bb2d933d3ecaaef4362b16433cdecb613a10c2fd5f655307d01ae6ac64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "bps",
							"type": "uint256"
						}
					],
					"name": "LiquidationBufferRatioUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "bps",
							"type": "uint256"
						}
					],
					"name": "LiquidationFeeRatioUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minMargin",
							"type": "uint256"
						}
					],
					"name": "MinInitialMarginUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "sUSD",
							"type": "uint256"
						}
					],
					"name": "MinKeeperFeeUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "parameter",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "ParameterUpdated",
					"type": "event"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationBufferRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationFeeRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "makerFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "makerFeeNextPrice",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "maxFundingRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "maxLeverage",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "maxMarketValueUSD",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minInitialMargin",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minKeeperFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "nextPriceConfirmWindow",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "parameters",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "takerFee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "makerFee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "takerFeeNextPrice",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "makerFeeNextPrice",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "nextPriceConfirmWindow",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "maxLeverage",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "maxMarketValueUSD",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "maxFundingRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "skewScaleUSD",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_ratio",
							"type": "uint256"
						}
					],
					"name": "setLiquidationBufferRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_ratio",
							"type": "uint256"
						}
					],
					"name": "setLiquidationFeeRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_makerFee",
							"type": "uint256"
						}
					],
					"name": "setMakerFee",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_makerFeeNextPrice",
							"type": "uint256"
						}
					],
					"name": "setMakerFeeNextPrice",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_maxFundingRate",
							"type": "uint256"
						}
					],
					"name": "setMaxFundingRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_maxLeverage",
							"type": "uint256"
						}
					],
					"name": "setMaxLeverage",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_maxMarketValueUSD",
							"type": "uint256"
						}
					],
					"name": "setMaxMarketValueUSD",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minMargin",
							"type": "uint256"
						}
					],
					"name": "setMinInitialMargin",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_sUSD",
							"type": "uint256"
						}
					],
					"name": "setMinKeeperFee",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_nextPriceConfirmWindow",
							"type": "uint256"
						}
					],
					"name": "setNextPriceConfirmWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_takerFee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_makerFee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_takerFeeNextPrice",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_makerFeeNextPrice",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_nextPriceConfirmWindow",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_maxLeverage",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_maxMarketValueUSD",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_maxFundingRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_skewScaleUSD",
							"type": "uint256"
						}
					],
					"name": "setParameters",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_skewScaleUSD",
							"type": "uint256"
						}
					],
					"name": "setSkewScaleUSD",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_takerFee",
							"type": "uint256"
						}
					],
					"name": "setTakerFee",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_takerFeeNextPrice",
							"type": "uint256"
						}
					],
					"name": "setTakerFeeNextPrice",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "skewScaleUSD",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "takerFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"name": "takerFeeNextPrice",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x4248126b3882f611087b476b0fdbbf44a1b4cce410039fc9c2a6e803f40548d3",
				"urls": [
					"bzz-raw://2dd97f29865373684414e904f2898dff14ad18d2e62c36810b5a6c58fd7f2757",
					"dweb:/ipfs/QmUY9KtstXvACwAiMB69CTf4UuMzfaCjDTW5eHN4ueKuKj"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FuturesMarketSettings.sol": "FuturesMarketSettings"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FuturesMarketSettings.sol": {
						"keccak256": "0x4248126b3882f611087b476b0fdbbf44a1b4cce410039fc9c2a6e803f40548d3",
						"urls": [
							"bzz-raw://2dd97f29865373684414e904f2898dff14ad18d2e62c36810b5a6c58fd7f2757",
							"dweb:/ipfs/QmUY9KtstXvACwAiMB69CTf4UuMzfaCjDTW5eHN4ueKuKj"
						]
					}
				},
				"version": 1
			}
		},
		"FuturesMarket": {
			"bytecode": "608060405260088054600160801b600160c01b031916600160801b1790553480156200002a57600080fd5b50604051620055e6380380620055e6833981810160405260608110156200005057600080fd5b508051602080830151604093840151600080546001600160a01b0319166001600160a01b038616178155600383905560028281556006805460018181019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9281049290920180549282166010026101000a6001600160801b0302199092169091558651808801909752600d87526c496e76616c696420707269636560981b87860190815291526009909352935192939092909184918491849162000139917f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36916200058e565b5060408051808201909152601d81527f5072696365206f7574206f662061636365707461626c652072616e676500000060208083019182526002600052600990529051620001a9917f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3916200058e565b5060408051808201909152601a81527f506f736974696f6e2063616e206265206c6971756964617465640000000000006020808301918252600360005260099052905162000219917fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e7916200058e565b5060408051808201909152601d81527f506f736974696f6e2063616e6e6f74206265206c6971756964617465640000006020808301918252600460005260099052905162000289917f8dc18c4ccfd75f5c815b63770fa542fd953e8fef7e0e44bbdd4913470ce7e9cb916200058e565b5060408051808201909152601881527f4d6178206d61726b65742073697a65206578636565646564000000000000000060208083019182526005600052600990529051620002f9917f74b05292d1d4b2b48b65261b07099d24244bcb069f138d9a6bfdcf776becac4c916200058e565b5060408051808201909152601581527f4d6178206c6576657261676520657863656564656400000000000000000000006020808301918252600660005260099052905162000369917fbb6daa0c283751197dfdc76590680f9005e97d6f23870deb1164ab60b28b9f5f916200058e565b5060408051808201909152601381527f496e73756666696369656e74206d617267696e0000000000000000000000000060208083019182526007600052600990529051620003d9917fae6299332bcd708cd60e3a8defa55de28078a50a4cf2b3de3a546253240ff9e1916200058e565b5060408051808201909152601d81527f4e6f74207065726d6974746564206279207468697320616464726573730000006020808301918252600860005260099052905162000449917fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a916200058e565b5060408051808201909152601981527f43616e6e6f74207375626d697420656d707479206f726465720000000000000060208083019182526009600081905290529051620004b9917f87e8a52529e8ece4ef759037313542a6429ff494a9fab9027fb79db90124eba6916200058e565b5060408051808201909152601081526f2737903837b9b4ba34b7b71037b832b760811b6020808301918252600a6000526009905290516200051c917f502e20e4e219e0c509d693958f17384c185f07a810a5d31c46c2be981e979c25916200058e565b50604080518082019091526012815271507269636520746f6f20766f6c6174696c6560701b6020808301918252600b60005260099052905162000581917f0d9cf2cd531699eed8dd34e40ff2884a14a698c4898184fba85194e6f6772d24916200058e565b5050505050505062000633565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005d157805160ff191683800117855562000601565b8280016001018555821562000601579182015b8281111562000601578251825591602001919060010190620005e4565b506200060f92915062000613565b5090565b6200063091905b808211156200060f57600081556001016200061a565b90565b614fa380620006436000396000f3fe608060405234801561001057600080fd5b50600436106102475760003560e01c8063785cdeec1161013b578063b895daab116100b8578063cdf456e11161007c578063cdf456e114610788578063d24378eb14610790578063d7103a4614610798578063e8c63470146107a0578063eb56105d146107a857610247565b8063b895daab14610706578063b9f4ff551461072c578063c393d0e314610752578063c8023af41461075a578063cded0cea1461078057610247565b8063996c61ad116100ff578063996c61ad146106075780639cfbf4e41461067a578063a28a2bc0146106a0578063a8c92cf6146106c3578063b111dfac146106e057610247565b8063785cdeec1461053e57806388a3c84814610564578063899ffef414610581578063917e77f5146105d9578063964db90c146105e157610247565b80633aef4d0b116101c957806355f575101161018d57806355f57510146104795780635a1cbd2b146104e75780635fc890c2146104ef57806374185360146105105780637498a0f01461051857610247565b80633aef4d0b146103af57806341108cf2146103c9578063450adee0146103e65780634eb985cc1461040c57806355b9437a1461041457610247565b80631bf556d0116102105780631bf556d01461030e57806327b9a236146103345780632af64bd3146103555780632b58ecef146103715780632f07449f1461039257610247565b8062f6beff1461024c57806304f3bcec146102715780630b198211146102955780631172cb24146102b25780631906652f146102d8575b600080fd5b61026f6004803603604081101561026257600080fd5b50803590602001356107cc565b005b6102796107da565b604080516001600160a01b039092168252519081900360200190f35b61026f600480360360208110156102ab57600080fd5b50356107e9565b61026f600480360360208110156102c857600080fd5b50356001600160a01b03166107f7565b6102f5600480360360208110156102ee57600080fd5b5035610c10565b6040805192835290151560208301528051918290030190f35b6102f56004803603602081101561032457600080fd5b50356001600160a01b0316610c98565b61033c610d39565b6040805163ffffffff9092168252519081900360200190f35b61035d610d45565b604080519115158252519081900360200190f35b610379610e4f565b60408051600f92830b90920b8252519081900360200190f35b61026f600480360360208110156103a857600080fd5b5035610e5f565b6103b7610e6a565b60408051918252519081900360200190f35b610379600480360360208110156103df57600080fd5b5035610e87565b61026f600480360360208110156103fc57600080fd5b50356001600160a01b0316610ebb565b6103b7611459565b61043a6004803603602081101561042a57600080fd5b50356001600160a01b03166114e4565b60408051600f96870b90960b86526001600160801b03948516602087015292841685840152921660608401526080830191909152519081900360a00190f35b61049f6004803603602081101561048f57600080fd5b50356001600160a01b0316611524565b604080516001600160401b0396871681529490951660208501526001600160801b039283168486015291166060830152600f90810b900b608082015290519081900360a00190f35b61026f611570565b6104f7611620565b6040805192835260208301919091528051918290030190f35b61026f61168c565b61026f6004803603602081101561052e57600080fd5b50356001600160a01b0316611853565b6102f56004803603602081101561055457600080fd5b50356001600160a01b0316611904565b61026f6004803603602081101561057a57600080fd5b503561199b565b6105896119bc565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105c55781810151838201526020016105ad565b505050509050019250505060405180910390f35b6102f5611ad3565b6102f5600480360360208110156105f757600080fd5b50356001600160a01b0316611af7565b6106336004803603604081101561061d57600080fd5b50803590602001356001600160a01b0316611b9c565b6040518087815260200186815260200185815260200184815260200183815260200182600b81111561066157fe5b60ff168152602001965050505050505060405180910390f35b6102f56004803603602081101561069057600080fd5b50356001600160a01b0316611d03565b61026f600480360360408110156106b657600080fd5b5080359060200135611d9a565b61026f600480360360208110156106d957600080fd5b5035611da4565b6102f5600480360360208110156106f657600080fd5b50356001600160a01b0316611dad565b6102f56004803603602081101561071c57600080fd5b50356001600160a01b0316611e44565b61035d6004803603602081101561074257600080fd5b50356001600160a01b0316611e8b565b61026f611f33565b6103b76004803603602081101561077057600080fd5b50356001600160a01b0316611f3f565b6103b761202a565b6103b7612030565b6102f5612036565b6103b761214d565b6102f5612153565b6107b061216e565b604080516001600160801b039092168252519081900360200190f35b6107d6828261217d565b5050565b6000546001600160a01b031681565b6107f481600061217d565b50565b6107ff614dff565b506001600160a01b0381166000908152600a6020908152604091829020825160a0810184528154600f81810b810b810b8084526001600160801b03600160801b938490048116968501969096526001850154808716978501979097529190950490931660608201526002909101546080820152910b6108b9576040805162461bcd60e51b8152602060048201526011602482015270373790383932bb34b7bab99037b93232b960791b604482015290519081900360640190fd5b60006108c361254d565b6001600160a01b0316637a018a1e6003546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561090857600080fd5b505afa15801561091c573d6000803e3d6000fd5b505050506040513d602081101561093257600080fd5b505190506001600160a01b038316331415610a11576001600160a01b0383166000908152600760205260408120906109686125c0565b9050600061097582612726565b905061098f838387606001516001600160801b0316612804565b82546001840154604080516001600160801b03600160801b808604919091168252909204600f90810b900b60208301526000828201819052606083018690526080830185905260a0830152516001600160a01b038916926001600160401b031691600080516020614e60833981519152919081900360c00190a3505050610af0565b610a288183602001516001600160801b0316612abc565b610a635760405162461bcd60e51b8152600401808060200182810382526021815260200180614f2a6021913960400191505060405180910390fd5b610a6b612ae1565b6001600160a01b031663a7b5833f3384606001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160801b0316815260200192505050600060405180830381600087803b158015610ad757600080fd5b505af1158015610aeb573d6000803e3d6000fd5b505050505b610af8612ae1565b6001600160a01b031663d289ade283604001516040518263ffffffff1660e01b815260040180826001600160801b03168152602001915050600060405180830381600087803b158015610b4a57600080fd5b505af1158015610b5e573d6000803e3d6000fd5b505050506001600160a01b0383166000818152600a602090815260408083208381556001810184905560020192909255845185820151868401516060808901516080808b015188518b8152600f9790970b978701979097526001600160801b039485168689015292841691850191909152919091169082015260a081019190915290517fa2c30b7be4efaff9ad0f74d77ec9a944a7cc92a7b8eb941fbfc6489fb19370f39181900360c00190a2505050565b600080600080610c1e612036565b91509150600080610c2d612b08565b91509150610c39614e2d565b6040518060a00160405280898152602001868152602001610c5b600254612ba2565b8152602001610c6b600254612bb9565b815260006020909101529050610c818184612bd0565b8480610c8a5750825b965096505050505050915091565b600080600080610ca6612036565b6001600160a01b038716600090815260076020908152604091829020825160a08101845281546001600160401b038082168352600160401b820416938201939093526001600160801b03600160801b9384900481169482019490945260019091015492831660608201529104600f90810b810b900b60808201529193509150610d2f9083612c52565b9350915050915091565b60055463ffffffff1681565b60006060610d516119bc565b905060005b8151811015610e45576000828281518110610d6d57fe5b602090810291909101810151600081815260018352604080822054915481516321f8a72160e01b81526004810185905291519395506001600160a01b03928316949216926321f8a72192602480840193919291829003018186803b158015610dd457600080fd5b505afa158015610de8573d6000803e3d6000fd5b505050506040513d6020811015610dfe57600080fd5b50516001600160a01b0316141580610e2b57506000818152600160205260409020546001600160a01b0316155b15610e3c5760009350505050610e4c565b50600101610d56565b5060019150505b90565b600454600160801b9004600f0b81565b6107f4816000612ca2565b600080610e75612036565b509050610e8181612cfb565b91505090565b60068181548110610e9457fe5b9060005260206000209060029182820401919006601002915054906101000a9004600f0b81565b610ec3614dff565b506001600160a01b0381166000908152600a6020908152604091829020825160a0810184528154600f81810b810b810b8084526001600160801b03600160801b938490048116968501969096526001850154808716978501979097529190950490931660608201526002909101546080820152910b610f7d576040805162461bcd60e51b8152602060048201526011602482015270373790383932bb34b7bab99037b93232b960791b604482015290519081900360640190fd5b6000610f8761254d565b6001600160a01b0316637a018a1e6003546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610fcc57600080fd5b505afa158015610fe0573d6000803e3d6000fd5b505050506040513d6020811015610ff657600080fd5b505160208301519091506001600160801b031681101561105d576040805162461bcd60e51b815260206004820152601a60248201527f74617267657420726f756e644964206e6f742072656163686564000000000000604482015290519081900360640190fd5b6110748183602001516001600160801b0316612abc565b156110c6576040805162461bcd60e51b815260206004820152601960248201527f6f7264657220746f6f206f6c642c207573652063616e63656c00000000000000604482015290519081900360640190fd5b60408201516001600160801b0316336001600160a01b03851614156110f95760608301516001600160801b031601611186565b611101612ae1565b6001600160a01b031663a7b5833f3385606001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160801b0316815260200192505050600060405180830381600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050505b6001600160a01b0384166000908152600760205260408120906111a76125c0565b905060006111b482612726565b90506111c1838386612804565b82546001840154604080516001600160801b03600160801b808604919091168252909204600f90810b900b60208301526000828201819052606083018690526080830185905260a0830152516001600160a01b038a16926001600160401b031691600080516020614e60833981519152919081900360c00190a3600061124561254d565b6001600160a01b031663fdadbc7e60035489602001516040518363ffffffff1660e01b815260040180838152602001826001600160801b0316815260200192505050604080518083038186803b15801561129e57600080fd5b505afa1580156112b2573d6000803e3d6000fd5b505050506040513d60408110156112c857600080fd5b50516040805160a0810182528951600f0b81526020810183905260025492935061131c928b928201906112fa90612d51565b815260200161130a600254612d71565b81526020018a60800151815250612d91565b600a6000896001600160a01b03166001600160a01b03168152602001908152602001600020600080820160006101000a8154906001600160801b0302191690556000820160106101000a8154906001600160801b0302191690556001820160006101000a8154906001600160801b0302191690556001820160106101000a8154906001600160801b03021916905560028201600090555050876001600160a01b03167fa2c30b7be4efaff9ad0f74d77ec9a944a7cc92a7b8eb941fbfc6489fb19370f38789600001518a602001518b604001518c606001518d608001516040518087815260200186600f0b8152602001856001600160801b03168152602001846001600160801b03168152602001836001600160801b03168152602001828152602001965050505050505060405180910390a25050505050505050565b600061148261146661315c565b6001600160a01b0316336001600160a01b031614156008613175565b60008061148d612036565b9150915080156114d4576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b604482015290519081900360640190fd5b6114dd82612726565b9250505090565b600a60205260009081526040902080546001820154600290920154600f82900b926001600160801b03600160801b93849004811693828216939204169085565b600760205260009081526040902080546001909101546001600160401b0380831692600160401b8104909116916001600160801b03600160801b928390048116929082169104600f0b85565b33600061157b6125c0565b905061158681612726565b506001600160a01b0382166000908152600760209081526040808320815160a08101835281546001600160401b038082168352600160401b820416948201949094526001600160801b03600160801b948590048116938201939093526001909101549182166060820152919004600f90810b810b900b608082015261160b9083613236565b600003905061161b8183856132f2565b505050565b60045460009081906001600160801b03811690600160801b9004600f90810b900b61166a6116656002611659858563ffffffff61353916565b9063ffffffff61359e16565b613656565b6116826116656002611659868663ffffffff61366116565b9350935050509091565b60606116966119bc565b905060005b81518110156107d65760008282815181106116b257fe5b60209081029190910181015160008054604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818701526039808201869052825180830390910181526059820180845263dacb2d0160e01b9052605d8201868152607d83019384528151609d840152815196985094966001600160a01b039094169563dacb2d0195899592949093909260bd90910191908501908083838c5b8381101561176b578181015183820152602001611753565b50505050905090810190601f1680156117985780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156117b657600080fd5b505afa1580156117ca573d6000803e3d6000fd5b505050506040513d60208110156117e057600080fd5b505160008381526001602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a1505060010161169b565b600061185d6125c0565b905061186881612726565b506001600160a01b038216600090815260076020908152604091829020825160a08101845281546001600160401b038082168352600160401b820416938201939093526001600160801b03600160801b9384900481169482019490945260019091015492831660608201529104600f90810b810b900b60808201526118f9906118f190836136c6565b156004613175565b6107d6823383613704565b600080600080611912612036565b6001600160a01b038716600090815260076020908152604091829020825160a08101845281546001600160401b038082168352600160401b820416938201939093526001600160801b03600160801b9384900481169482019490945260019091015492831660608201529104600f90810b810b900b60808201529193509150610d2f9083613236565b60006119a56125c0565b90506119b081612726565b506107d68282336132f2565b6060806119c7613aba565b60408051600580825260c08201909252919250606091906020820160a0803883390190505090506822bc31b430b733b2b960b91b81600081518110611a0857fe5b6020026020010181815250507522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b81600181518110611a3b57fe5b60200260200101818152505073233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b81600281518110611a6c57fe5b602002602001018181525050600080516020614e8083398151915281600381518110611a9457fe5b6020026020010181815250506b53797374656d53746174757360a01b81600481518110611abd57fe5b6020026020010181815250506114dd8282613b0b565b600080600080611ae1612036565b91509150611aee82613bc7565b93509150509091565b600080600080611b05612036565b6001600160a01b0387166000908152600760209081526040808320815160a08101835281546001600160401b038082168352600160401b820416948201949094526001600160801b03600160801b948590048116938201939093526001909101549182166060820152919004600f90810b810b900b608082015292945090925090611b909084613c1f565b94509092505050915091565b6000806000806000806000611baf612036565b90955090508015611bd457506000955085945084935083925082915060019050611cf9565b611bdc614e2d565b6040518060a001604052808b8152602001878152602001611bfe600254612ba2565b8152602001611c0e600254612bb9565b815260006020909101529050611c22614dff565b6001600160a01b038a166000908152600760209081526040808320815160a08101835281546001600160401b038082168352600160401b820416948201949094526001600160801b03600160801b948590048116938201939093526001909101549182166060820152919004600f90810b810b900b60808201528190611ca89085613cb6565b925092509250611cc58384606001516001600160801b0316613c1f565b604084015160808501516060909501516001600160801b039182169d50600f9590950b9b5090931698509196509450925050505b9295509295509295565b600080600080611d11612036565b6001600160a01b038716600090815260076020908152604091829020825160a08101845281546001600160401b038082168352600160401b820416938201939093526001600160801b03600160801b9384900481169482019490945260019091015492831660608201529104600f90810b810b900b60808201529193509150610d2f9083613f90565b6107d68282612ca2565b6107f481613fb2565b600080600080611dbb612036565b6001600160a01b038716600090815260076020908152604091829020825160a08101845281546001600160401b038082168352600160401b820416938201939093526001600160801b03600160801b9384900481169482019490945260019091015492831660608201529104600f90810b810b900b60808201529193509150610d2f908361403b565b600080600080611e52612036565b6001600160a01b0387166000908152600760205260409020600101549193509150610d2f90600160801b9004600f90810b900b83614079565b6000806000611e98612036565b9150915080158015611f2957506001600160a01b038416600090815260076020908152604091829020825160a08101845281546001600160401b038082168352600160401b820416938201939093526001600160801b03600160801b9384900481169482019490945260019091015492831660608201529104600f90810b810b900b6080820152611f2990836136c6565b925050505b919050565b611f3d6000613fb2565b565b6000806000611f4c612036565b9150915080158015611fdd57506001600160a01b038416600090815260076020908152604091829020825160a08101845281546001600160401b038082168352600160401b820416938201939093526001600160801b03600160801b9384900481169482019490945260019091015492831660608201529104600f90810b810b900b6080820152611fdd90836136c6565b1561201f576001600160a01b03841660009081526007602052604090206001015461201690600160801b9004600f90810b900b8361408b565b92505050611f2e565b600092505050611f2e565b60065490565b60035481565b6000806120416140d5565b6001600160a01b031663cb1ec3176003546040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561208557600080fd5b505afa158015612099573d6000803e3d6000fd5b505050506040513d60408110156120af57600080fd5b508051602090910151909250905080806120c7575081155b8061214757506120d56140f9565b6001600160a01b031663b431c0ea6003546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561211a57600080fd5b505afa15801561212e573d6000803e3d6000fd5b505050506040513d602081101561214457600080fd5b50515b90509091565b60025481565b600080600080612161612036565b91509150611aee82614113565b6004546001600160801b031681565b336000908152600a6020526040902054600f90810b900b156121de576040805162461bcd60e51b815260206004820152601560248201527470726576696f7573206f726465722065786973747360581b604482015290519081900360640190fd5b336000908152600760205260408120906121f66125c0565b9050600061220382612726565b905061220d614e2d565b6040518060a0016040528087815260200184815260200161222f600254612d51565b815260200161223f600254612d71565b815260209081018790526040805160a08101825287546001600160401b038082168352600160401b820416938201939093526001600160801b03600160801b9384900481169282019290925260018801549182166060820152919004600f90810b810b900b60808201529091506000906122b99083613cb6565b925050506122c6816141b0565b60006122d1836141ce565b905060006122dd6141fc565b90506122ef8787838501600003612804565b86546001880154604080516001600160801b03600160801b808604919091168252909204600f90810b900b60208301526000828201819052606083018a90526080830189905260a08301525133926001600160401b031691600080516020614e60833981519152919081900360c00190a3600061236a61254d565b6001600160a01b0316637a018a1e6003546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156123af57600080fd5b505afa1580156123c3573d6000803e3d6000fd5b505050506040513d60208110156123d957600080fd5b505160010190506123e8614dff565b6040518060a001604052808c600f0b8152602001836001600160801b03168152602001856001600160801b03168152602001846001600160801b031681526020018b8152509050336001600160a01b03167f83f1fe372b879782cdc7a779adb56774bf755506d7486939437b40b64ba15927826000015183602001518460400151856060015186608001516040518086600f0b8152602001856001600160801b03168152602001846001600160801b03168152602001836001600160801b031681526020018281526020019550505050505060405180910390a2336000908152600a602090815260409182902083518154928501516001600160801b03908116600160801b908102600f9390930b82166001600160801b03199586161782169290921783559385015160018301805460608801518716909302918616929094169190911790931692909217905560809091015160029091015550505050505050505050565b60006125576140d5565b6001600160a01b0316634ffcd9df6040518163ffffffff1660e01b815260040160206040518083038186803b15801561258f57600080fd5b505afa1580156125a3573d6000803e3d6000fd5b505050506040513d60208110156125b957600080fd5b5051905090565b60006125ca6140f9565b6001600160a01b031663856aae6c6002546040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561260f57600080fd5b505afa158015612623573d6000803e3d6000fd5b5050505061262f6140f9565b6001600160a01b03166342a28e216003546040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561267457600080fd5b505afa158015612688573d6000803e3d6000fd5b505050506000806126976140d5565b6001600160a01b031663a47af19e6003546040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b1580156126dd57600080fd5b505af11580156126f1573d6000803e3d6000fd5b505050506040513d604081101561270757600080fd5b5080516020909101519092509050612720816001613175565b50905090565b6006546000908161273684614275565b6006805460018181018355600092909252600281047ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018054600f85900b6001600160801b03908116601094909516939093026101000a93840292909302199092161790556005805463ffffffff42811663ffffffff19909216919091179182905560408051848152602081018790529290911682820152519192507f368c0bb7dd8da0fb0bedc14e770da5778b8f19a5820635ccd99285d0ffdb6954919081900360600190a15092915050565b61280c614dff565b506040805160a08101825284546001600160401b038082168352600160401b82041660208301526001600160801b03600160801b9182900481169383019390935260018601549283166060830152909104600f90810b810b900b60808201526000806128798386866142cb565b91509150612886816141b0565b6001860154600160801b9004600f90810b900b60006128a3614346565b90506129906040518060a0016040528060006001600160401b03168152602001836001600160401b03168152602001866001600160801b03168152602001896001600160801b0316815260200184600f0b8152506040518060a0016040528060006001600160401b031681526020018b60000160089054906101000a90046001600160401b03166001600160401b031681526020018b60000160109054906101000a90046001600160801b03166001600160801b031681526020018b60010160009054906101000a90046001600160801b03166001600160801b0316815260200185600f0b81525061435d565b87546001600160801b03808616600160801b0291161788558115612ab2576001880180546001600160801b0319166001600160801b038916179055875467ffffffffffffffff60401b1916600160401b6001600160401b038316021788556000861215612ab257612ab2612a026143c3565b851080612a2b57506001890154612a2790600160801b9004600f90810b900b89614446565b8511155b80612aab57506040805160a0810182528a546001600160401b038082168352600160401b82041660208301526001600160801b03600160801b9182900481169383019390935260018c01549283166060830152909104600f90810b810b900b6080820152612a9e90611665908a88614470565b612aa9600254614494565b105b6007613175565b5050505050505050565b60008183118015612ad85750612ad36002546144ae565b828403115b90505b92915050565b6000612b0373233aba3ab932b9a6b0b935b2ba26b0b730b3b2b960611b6144d3565b905090565b600080612b136145b0565b6001600160a01b031663c39def0b631cd554d160e21b6003546040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015612b6657600080fd5b505afa158015612b7a573d6000803e3d6000fd5b505050506040513d6040811015612b9057600080fd5b50805160209091015190925090509091565b6000612adb826774616b657246656560c01b6145c7565b6000612adb82676d616b657246656560c01b6145c7565b602082015182516000918291612beb9163ffffffff61468b16565b90506000612c0b82600460109054906101000a9004600f0b600f0b6146b5565b612c19578460600151612c1f565b84604001515b90506000612c33828663ffffffff6146c216565b9050612c48611665848363ffffffff61468b16565b9695505050505050565b60208201516000906001600160401b031680612c72576000915050612adb565b6000612c7e828561471c565b6080860151909150612c9990600f0b8263ffffffff61468b16565b95945050505050565b6000612cac6125c0565b9050612cb781612726565b5061161b336040518060a00160405280868152602001848152602001612cde600254612ba2565b8152602001612cee600254612bb9565b8152602001859052612d91565b600080612d0960025461475d565b9050612d4a81612d3e612d30670de0b6b3a763ffff19612d288861477a565b60000361484c565b670de0b6b3a7640000614861565b9063ffffffff61468b16565b9392505050565b6000612adb827074616b65724665654e657874507269636560781b6145c7565b6000612adb82706d616b65724665654e657874507269636560781b6145c7565b6001600160a01b0382166000908152600760205260409020612db1614dff565b506040805160a08101825282546001600160401b038082168352600160401b82041660208301526001600160801b03600160801b9182900481169383019390935260018401549283166060830152909104600f90810b810b900b6080820152612e18614dff565b600080612e258487613cb6565b925092509250612e34816141b0565b60808085015190840151600454612e7392600f90810b92612e6792600160801b9004820b820b910b63ffffffff61353916565b9063ffffffff61366116565b60048054600f92830b6001600160801b03908116600160801b0291161790556080850151612edd91612ea691900b613656565b612ed1612eb98660800151600f0b613656565b6004546001600160801b03169063ffffffff6146c216565b9063ffffffff61487716565b600480546001600160801b0319166001600160801b03929092169190911790558115612fc757612f0b612ae1565b6001600160a01b031663d289ade2836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612f5057600080fd5b505af1158015612f64573d6000803e3d6000fd5b50505050608086015115612fc757608080870151600354600254895160408051938452602084019290925282820152606082018690525191927fc4be15f09b70f2353d054e324d6774570c38bcd0420aac862188ae7dcba2c6f692918290030190a25b604083015185546001600160801b03918216600160801b029116178555612fee838561435d565b83516000612ffa614346565b90508460800151600f0b60001415613026578654600060018901556001600160801b03191687556130df565b6080860151600f0b61306a576008805467ffffffffffffffff60801b198116600160801b918290046001600160401b03908116600181019091169092021790915591505b8654608086015160018901805460208c01516001600160801b03908116600f9490940b8116600160801b029116176001600160801b0319169190911790556001600160401b03828116600160401b0267ffffffffffffffff60401b1991851667ffffffffffffffff1990931692909217161787555b6040808601516080808801518b516020808e015186516001600160801b039096168652600f9390930b90850152838501526060830152810183905260a0810186905290516001600160a01b038b16916001600160401b03851691600080516020614e608339815191529181900360c00190a3505050505050505050565b6000612b03600080516020614e808339815191526144d3565b81156107d6576009600082600b81111561318b57fe5b60ff1681526020808201929092526040908101600020905162461bcd60e51b81526004810192835281546002600019610100600184161502019091160460248201819052919291829160440190849080156132275780601f106131fc57610100808354040283529160200191613227565b820191906000526020600020905b81548152906001019060200180831161320a57829003601f168201915b50509250505060405180910390fd5b6000806103e8670de0b6b3a7640000059050600061325982612ed1600254614494565b90506000613281611665836132758960800151600f0b89614079565b9063ffffffff6148d416565b905080156132b55760006132936143c3565b9050808210156132a1578091505b6132b1828563ffffffff6146c216565b9150505b60006132c18787613f90565b90508181116132d7576000945050505050612adb565b6132e7818363ffffffff61487716565b979650505050505050565b60006132fd84613656565b905060008413156133b0576000613312612ae1565b6001600160a01b0316636f9a0ca684846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561337157600080fd5b505af1158015613385573d6000803e3d6000fd5b505050506040513d602081101561339b57600080fd5b505190508181146133aa578094505b50613443565b600084121561343d576133c1612ae1565b6001600160a01b031663a7b5833f83836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561342057600080fd5b505af1158015613434573d6000803e3d6000fd5b50505050613443565b5061161b565b6001600160a01b0382166000908152600760205260409020613466818587612804565b6040805186815290516001600160a01b038516917fe20b33a51269d7e4c48682ccfacaf1ca004fdec7b161e7098e4847a0c05d0ce2919081900360200190a2805460018201546001600160a01b038516916001600160401b03811691600080516020614e60833981519152916001600160801b03600160801b91829004169104600f0b6000896134f4614346565b604080516001600160801b039096168652600f9490940b60208601528484019290925260608401526080830152600060a0830152519081900360c00190a35050505050565b600082820181831280159061354e5750838112155b80613563575060008312801561356357508381125b612ad85760405162461bcd60e51b8152600401808060200182810382526021815260200180614ea06021913960400191505060405180910390fd5b6000816135f2576040805162461bcd60e51b815260206004820181905260248201527f5369676e6564536166654d6174683a206469766973696f6e206279207a65726f604482015290519081900360640190fd5b816000191480156136065750600160ff1b83145b156136425760405162461bcd60e51b8152600401808060200182810382526021815260200180614ec16021913960400191505060405180910390fd5b600082848161364d57fe5b05949350505050565b6000612adb826148f2565b60008183038183128015906136765750838113155b8061368b575060008312801561368b57508381135b612ad85760405162461bcd60e51b8152600401808060200182810382526024815260200180614f4b6024913960400191505060405180910390fd5b60008260800151600f0b600014156136e057506000612adb565b6136f18360800151600f0b83614446565b6136fb8484613f90565b11159392505050565b6001600160a01b0383166000908152600760209081526040808320815160a08101835281546001600160401b038082168352600160401b820416948201949094526001600160801b03600160801b948590048116938201939093526001820154928316606082015292909104600f90810b810b900b6080830152919061378a9084613f90565b60018301548354600454929350600160801b91829004600f90810b810b936001600160401b03909216926137c99204810b900b8363ffffffff61366116565b600460106101000a8154816001600160801b030219169083600f0b6001600160801b031602179055506138166137fe83613656565b6004546001600160801b03169063ffffffff61487716565b600480546001600160801b0319166001600160801b03929092169190911790556000613840614346565b6040805160a0808201835260008083526001600160401b038086166020808601919091528486018390526001600160801b038d81166060808801919091526080808801869052885196870189529486528d54600160401b810490941692860192909252600160801b90920482169584019590955260018b01541693820193909352600f87900b928101929092529192506138da919061435d565b6001600160a01b0388166000908152600760205260408120818155600101819055613905848861408b565b905061390f612ae1565b6001600160a01b031663a7b5833f89836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561396e57600080fd5b505af1158015613982573d6000803e3d6000fd5b505060408051600080825260208201819052818301819052606082018c90526080820187905260a082015290516001600160a01b038d169350869250600080516020614e608339815191529181900360c00190a3876001600160a01b0316896001600160a01b0316847f62e7eb6698aabc6740afc94f06bbdfb947fc109fd24d4adb26014d44053ac2c3878b8660405180848152602001838152602001828152602001935050505060405180910390a480851115613aaf57613a42612ae1565b6001600160a01b031663d289ade2613a60878463ffffffff61487716565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613a9657600080fd5b505af1158015613aaa573d6000803e3d6000fd5b505050505b505050505050505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110613afc57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015613b3b578160200160208202803883390190505b50905060005b8351811015613b7d57838181518110613b5657fe5b6020026020010151828281518110613b6a57fe5b6020908102919091010152600101613b41565b5060005b8251811015613bc057828181518110613b9657fe5b6020026020010151828286510181518110613bad57fe5b6020908102919091010152600101613b81565b5092915050565b6005546000908190613be490429063ffffffff9081169061487716565b9050600062015180613bf585612cfb565b81613bfc57fe5b059050611f2982613c13838763ffffffff61468b16565b9063ffffffff61490816565b6080820151600090600f0b80613c39576000915050612adb565b6000613c5285602001516001600160401b03168561471c565b90506000613c608386614446565b90506000613ca983612e67613c8f876132758c604001516001600160801b03168861366190919063ffffffff16565b60608b01516001600160801b03169063ffffffff61353916565b90506132e760008261484c565b613cbe614dff565b81516000908190613cd85750839150600090506009613f89565b613ce68585602001516136c6565b15613cfa5750839150600090506003613f89565b600080613d05612b08565b915091508015613d22575085935060009250600b9150613f899050565b613d2c8683612bd0565b9350600080613d43898960200151886000036142cb565b91509150613d50816149b1565b15613d6757889650600095509350613f8992505050565b613d6f614dff565b6040518060a001604052808b600001516001600160401b03168152602001613d95614346565b6001600160401b03168152602001846001600160801b031681526020018a602001516001600160801b03168152602001613de38b600001518d60800151600f0b61353990919063ffffffff16565b600f0b81525090506000613e058b60800151600f0b8360800151600f0b6146b5565b8015613e2e5750613e1c8b60800151600f0b613656565b613e2c8360800151600f0b613656565b105b905080613e7857613e3d6143c3565b6040830151613e5b906001600160801b03168a63ffffffff6146c216565b1015613e7857508997506000965060079550613f89945050505050565b613e8d8260800151600f0b8b60200151614446565b8411613ea8575096506000955060039450613f899350505050565b6000613edb613ebd868b63ffffffff6146c216565b6132758d602001518660800151600f0b61468b90919063ffffffff16565b9050613ee681613656565b613f0c6064670de0b6b3a764000004613f00600254614494565b9063ffffffff6146c216565b1015613f2a57508a98506000975060069650613f8995505050505050565b50613f61613f4c8b602001516132756012600a0a606402613f006002546149c8565b8c60800151600f0b8460800151600f0b6149e8565b15613f7d57508997506000965060059550613f89945050505050565b50965060009450505050505b9250925092565b600080613f9d8484614ae6565b9050613faa60008261484c565b949350505050565b33600090815260076020526040902060010154600160801b9004600f90810b900b613fdf8115600a613175565b6000613fe96125c0565b9050613ff481612726565b5061161b336040518060a0016040528085600003815260200184815260200161401e600254612ba2565b815260200161402e600254612bb9565b8152602001869052612d91565b60008061405e84606001516001600160801b03168461366190919063ffffffff16565b6080850151909150613faa90600f0b8263ffffffff61468b16565b6000612ad8838363ffffffff61468b16565b6000806140b2614099614b20565b6140a6856140a688613656565b9063ffffffff614ba316565b905060006140be6141fc565b90508082116140cd5780612c99565b509392505050565b6000612b037522bc31b430b733b2a1b4b931bab4ba213932b0b5b2b960511b6144d3565b6000612b036b53797374656d53746174757360a01b6144d3565b600454600090600160801b9004600f90810b900b15801561413b5750600854600f90810b900b155b1561414857506000611f2e565b600061416361415684614275565b849063ffffffff61353916565b6008546004549192506000916141a391600f90810b810b9161419791600160801b909104810b900b8563ffffffff61468b16565b9063ffffffff61353916565b9050611f2981600061484c565b6141b9816149b1565b156107f4576009600082600b81111561318b57fe5b60006141db600254612ba2565b60408301526002546141ec90612bb9565b6060830152612adb826000612bd0565b6000614206614bcd565b6001600160a01b03166323257c2b600080516020614e8083398151915272667574757265734d696e4b656570657246656560681b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561258f57600080fd5b6000612adb61428383613bc7565b600661428d614346565b8154811061429757fe5b90600052602060002090600291828204019190066010029054906101000a9004600f0b600f0b61353990919063ffffffff16565b60008060006142de846141978888614ae6565b905060008112156142f75750600091506007905061433e565b60808601518190600f0b600061430d8289614446565b9050811580159061431e5750808311155b1561433357826003955095505050505061433e565b509093506000925050505b935093915050565b600654600090612b0390600163ffffffff61487716565b600061436883614bea565b9050600061437583614bea565b600854909150614398908290612e6790600f90810b900b8563ffffffff61353916565b60088054600f9290920b6001600160801b03166001600160801b031990921691909117905550505050565b60006143cd614bcd565b6001600160a01b03166323257c2b600080516020614e808339815191527f667574757265734d696e496e697469616c4d617267696e0000000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561258f57600080fd5b600080614454614099614c74565b9050613faa614463858561408b565b829063ffffffff6146c216565b60008161447f57506000612d4a565b613faa826132758660800151600f0b86614079565b6000612adb826a6d61784c6576657261676560a81b6145c7565b6000612adb82756e6578745072696365436f6e6669726d57696e646f7760501b6145c7565b600081815260016020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081613bc05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561457557818101518382015260200161455d565b50505050905090810190601f1680156145a25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000612b036822bc31b430b733b2b960b91b6144d3565b60006145d1614bcd565b6001600160a01b03166323257c2b600080516020614e8083398151915285856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561465857600080fd5b505afa15801561466c573d6000803e3d6000fd5b505050506040513d602081101561468257600080fd5b50519392505050565b6000670de0b6b3a76400006146a6848463ffffffff61490816565b816146ad57fe5b059392505050565b6000908113159112151490565b600082820183811015612ad8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000612ad86006848154811061472e57fe5b90600052602060002090600291828204019190066010029054906101000a9004600f0b600f0b612e6784614275565b6000612adb826d6d617846756e64696e675261746560901b6145c7565b60008082116147c6576040805162461bcd60e51b815260206004820152601360248201527270726963652063616e2774206265207a65726f60681b604482015290519081900360640190fd5b60006147e3836147d7600254614cf7565b9063ffffffff614d1216565b90508061482b576040805162461bcd60e51b8152602060048201526011602482015270736b65775363616c65206973207a65726f60781b604482015290519081900360640190fd5b600454612d4a90600160801b9004600f90810b900b8263ffffffff6148d416565b600081831261485b5782612ad8565b50919050565b60008183126148705781612ad8565b5090919050565b6000828211156148ce576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000612ad88261165985670de0b6b3a764000063ffffffff61490816565b60008082126149015781612adb565b5060000390565b60008261491757506000612adb565b8260001914801561492b5750600160ff1b82145b156149675760405162461bcd60e51b8152600401808060200182810382526027815260200180614f036027913960400191505060405180910390fd5b8282028284828161497457fe5b0514612ad85760405162461bcd60e51b8152600401808060200182810382526027815260200180614f036027913960400191505060405180910390fd5b60008082600b8111156149c057fe5b141592915050565b6000612adb82701b585e13585c9ad95d15985b1d595554d1607a1b6145c7565b60006149f483836146b5565b8015614a105750614a0483613656565b614a0d83613656565b11155b15614a1d57506000612d4a565b600454600090614a4790849061419790600160801b9004600f90810b900b8763ffffffff61366116565b90506000614a7b614a57856148f2565b614197614a63886148f2565b6004546001600160801b03169063ffffffff61366116565b905060008460001215614a9f57614a98828463ffffffff61353916565b9050614ab2565b614aaf828463ffffffff61366116565b90505b614ac661166582600263ffffffff61359e16565b871015614ad95760019350505050612d4a565b5060009695505050505050565b600080614af38484612c52565b9050613faa81614197614b06878761403b565b60408801516001600160801b03169063ffffffff61353916565b6000614b2a614bcd565b6001600160a01b03166323257c2b600080516020614e808339815191527f667574757265734c69717569646174696f6e466565526174696f0000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561258f57600080fd5b6000670de0b6b3a7640000614bbe848463ffffffff614d3c16565b81614bc557fe5b049392505050565b6000612b036e466c657869626c6553746f7261676560881b6144d3565b6000612adb614c5a614c46600685602001516001600160401b031681548110614c0f57fe5b6000918252602090912060028204015460608701516001600160801b0316916001166010026101000a9004600f90810b900b613539565b6080850151600f0b9063ffffffff61468b16565b60408401516001600160801b03169063ffffffff61366116565b6000614c7e614bcd565b6001600160a01b03166323257c2b600080516020614e808339815191527f667574757265734c69717569646174696f6e427566666572526174696f0000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561258f57600080fd5b6000612adb826b1cdad95dd4d8d85b195554d160a21b6145c7565b6000612ad882614d3085670de0b6b3a764000063ffffffff614d3c16565b9063ffffffff614d9516565b600082614d4b57506000612adb565b82820282848281614d5857fe5b0414612ad85760405162461bcd60e51b8152600401808060200182810382526021815260200180614ee26021913960400191505060405180910390fd5b6000808211614deb576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481614df657fe5b04949350505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008019168152509056fe930fd93131df035ac630ef616ad4212af6370377bf327e905c2724cd01d95097467574757265734d61726b657453657474696e677300000000000000000000005369676e6564536166654d6174683a206164646974696f6e206f766572666c6f775369676e6564536166654d6174683a206469766973696f6e206f766572666c6f77536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7763616e6e6f742062652063616e63656c6c6564206279206b6565706572207965745369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a265627a7a723158206a2adfa5a148231af5e4530bcef6b33799e1d9516c0dfb65e6beac962040352564736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_baseAsset",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "_marketKey",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "int256",
							"name": "funding",
							"type": "int256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "FundingRecomputed",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "baseAsset",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "marketKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						}
					],
					"name": "FuturesTracking",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "marginDelta",
							"type": "int256"
						}
					],
					"name": "MarginTransferred",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "currentRoundId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "targetRoundId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "commitDeposit",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "keeperDeposit",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "NextPriceOrderRemoved",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "targetRoundId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "commitDeposit",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "keeperDeposit",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "NextPriceOrderSubmitted",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "size",
							"type": "int256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						}
					],
					"name": "PositionLiquidated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "margin",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "size",
							"type": "int256"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "tradeSize",
							"type": "int256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "lastPrice",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fundingIndex",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						}
					],
					"name": "PositionModified",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "accessibleMargin",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "marginAccessible",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "accruedFunding",
					"outputs": [
						{
							"internalType": "int256",
							"name": "funding",
							"type": "int256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "assetPrice",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "baseAsset",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "canLiquidate",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "cancelNextPriceOrder",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "closePosition",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "closePositionWithTracking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentFundingRate",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "executeNextPriceOrder",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "fundingLastRecomputed",
					"outputs": [
						{
							"internalType": "uint32",
							"name": "",
							"type": "uint32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "fundingSequence",
					"outputs": [
						{
							"internalType": "int128",
							"name": "",
							"type": "int128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "fundingSequenceLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "liquidatePosition",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "liquidationFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "liquidationPrice",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "marketDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "marketKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "marketSize",
					"outputs": [
						{
							"internalType": "uint128",
							"name": "",
							"type": "uint128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "marketSizes",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "long",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "short",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "marketSkew",
					"outputs": [
						{
							"internalType": "int128",
							"name": "",
							"type": "int128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						}
					],
					"name": "modifyPosition",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "modifyPositionWithTracking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "nextPriceOrders",
					"outputs": [
						{
							"internalType": "int128",
							"name": "sizeDelta",
							"type": "int128"
						},
						{
							"internalType": "uint128",
							"name": "targetRoundId",
							"type": "uint128"
						},
						{
							"internalType": "uint128",
							"name": "commitDeposit",
							"type": "uint128"
						},
						{
							"internalType": "uint128",
							"name": "keeperDeposit",
							"type": "uint128"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "notionalValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						}
					],
					"name": "orderFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "positions",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "id",
							"type": "uint64"
						},
						{
							"internalType": "uint64",
							"name": "lastFundingIndex",
							"type": "uint64"
						},
						{
							"internalType": "uint128",
							"name": "margin",
							"type": "uint128"
						},
						{
							"internalType": "uint128",
							"name": "lastPrice",
							"type": "uint128"
						},
						{
							"internalType": "int128",
							"name": "size",
							"type": "int128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						},
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "postTradeDetails",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "margin",
							"type": "uint256"
						},
						{
							"internalType": "int256",
							"name": "size",
							"type": "int256"
						},
						{
							"internalType": "uint256",
							"name": "price",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "liqPrice",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						},
						{
							"internalType": "enum IFuturesMarketBaseTypes.Status",
							"name": "status",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "profitLoss",
					"outputs": [
						{
							"internalType": "int256",
							"name": "pnl",
							"type": "int256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "recomputeFunding",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "lastIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "remainingMargin",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "marginRemaining",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						}
					],
					"name": "submitNextPriceOrder",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "int256",
							"name": "sizeDelta",
							"type": "int256"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "submitNextPriceOrderWithTracking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "int256",
							"name": "marginDelta",
							"type": "int256"
						}
					],
					"name": "transferMargin",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "unrecordedFunding",
					"outputs": [
						{
							"internalType": "int256",
							"name": "funding",
							"type": "int256"
						},
						{
							"internalType": "bool",
							"name": "invalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "withdrawAllMargin",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xf0937d700773ebd08983a4835fced19b1c5718a9cf9733e8e2db40cb197a09da",
				"urls": [
					"bzz-raw://8453f32519ce58531da83e7201cbafa54453299c3513d28465d96beaed6a6c8a",
					"dweb:/ipfs/QmUmRDs6ZJ9wwGPFCinLLqHszx21uU8TKFa44AjGFj8Nrk"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FuturesMarket.sol": "FuturesMarket"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FuturesMarket.sol": {
						"keccak256": "0xf0937d700773ebd08983a4835fced19b1c5718a9cf9733e8e2db40cb197a09da",
						"urls": [
							"bzz-raw://8453f32519ce58531da83e7201cbafa54453299c3513d28465d96beaed6a6c8a",
							"dweb:/ipfs/QmUmRDs6ZJ9wwGPFCinLLqHszx21uU8TKFa44AjGFj8Nrk"
						]
					}
				},
				"version": 1
			}
		},
		"Liquidator": {
			"bytecode": "608060405234801561001057600080fd5b506040516122f43803806122f48339818101604052604081101561003357600080fd5b5080516020909101518080836001600160a01b03811661009a576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050506121ce806101266000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806379ba5097116100f9578063974e9e7f11610097578063b410a03411610071578063b410a034146103f7578063c855a8e1146103ff578063d45c0d7e14610407578063f557f73c1461042d576101c4565b8063974e9e7f146103a3578063a0cf7451146103c9578063ad2bc2d5146103d1576101c4565b8063899ffef4116100d3578063899ffef41461030d5780638d1bd1be146103655780638da5cb5b1461036d578063952225f314610375576101c4565b806379ba5097146102d75780638074b372146102df578063828afc4b146102e7576101c4565b806339a9df1b11610166578063614d08f811610140578063614d08f8146102b75780636a058966146102bf57806374185360146102c757806374e889c9146102cf576101c4565b806339a9df1b1461026357806353a47bb7146102895780635616c95714610291576101c4565b80631775765f116101a25780631775765f1461022f57806323f5589a146102375780632af64bd31461023f57806331e4e0301461025b576101c4565b806304f3bcec146101c95780631627540c146101ed5780631710940c14610215575b600080fd5b6101d1610456565b604080516001600160a01b039092168252519081900360200190f35b6102136004803603602081101561020357600080fd5b50356001600160a01b0316610465565b005b61021d6104c1565b60408051918252519081900360200190f35b61021d6104d1565b61021d6104db565b6102476104e5565b604080519115158252519081900360200190f35b61021d6105ef565b6102476004803603602081101561027957600080fd5b50356001600160a01b03166105f9565b6101d1610622565b6101d1600480360360208110156102a757600080fd5b50356001600160a01b0316610631565b61021d61064f565b61021d610660565b610213610678565b61021d610840565b61021361085a565b61021d610916565b61021d600480360360208110156102fd57600080fd5b50356001600160a01b0316610920565b61031561093b565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610351578181015183820152602001610339565b505050509050019250505060405180910390f35b61021d610a1a565b6101d1610aa3565b6102476004803603604081101561038b57600080fd5b506001600160a01b0381351690602001351515610ab2565b610213600480360360208110156103b957600080fd5b50356001600160a01b0316610bb4565b61021d610c2f565b610213600480360360208110156103e757600080fd5b50356001600160a01b0316610c39565b61021d610e72565b61021d610e7c565b6102136004803603602081101561041d57600080fd5b50356001600160a01b0316610e86565b61021d6004803603606081101561044357600080fd5b50803590602081013590604001356111f8565b6002546001600160a01b031681565b61046d6112ed565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006104cb611338565b90505b90565b60006104cb6113e8565b60006104cb611461565b600060606104f161093b565b905060005b81518110156105e657600082828151811061050d57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561057557600080fd5b505afa158015610589573d6000803e3d6000fd5b505050506040513d602081101561059f57600080fd5b50516001600160a01b03161415806105cc57506000818152600360205260409020546001600160a01b0316155b156105dd57600093505050506104ce565b506001016104f6565b50600191505090565b60006104cb6114dc565b6000610603612065565b61060c83611554565b905061061b81600001516116c5565b9392505050565b6001546001600160a01b031681565b600061063b612065565b61064483611554565b602001519392505050565b692634b8bab4b230ba37b960b11b81565b702634b8bab4b230ba34b7b721b0b63632b960791b81565b606061068261093b565b905060005b815181101561083c57600082828151811061069e57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561075457818101518382015260200161073c565b50505050905090810190601f1680156107815780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561079f57600080fd5b505afa1580156107b3573d6000803e3d6000fd5b505050506040513d60208110156107c957600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610687565b5050565b724c69717569646174696f6e446561646c696e6560681b81565b6001546001600160a01b031633146108a35760405162461bcd60e51b815260040180806020018281038252603581526020018061207d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104cb6116d7565b600061092a612065565b61093383611554565b519392505050565b60608061094661174a565b60408051600480825260a0820190925291925060609190602082016080803883390190505090506b53797374656d53746174757360a01b8160008151811061098a57fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b816001815181106109b057fe5b6020026020010181815250506524b9b9bab2b960d11b816002815181106109d357fe5b6020026020010181815250506c45786368616e6765526174657360981b816003815181106109fd57fe5b602002602001018181525050610a13828261179b565b9250505090565b60006104cb610a276113e8565b73__$abda1d5d2dee01544eb6c8a96c021081fd$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6b57600080fd5b505af4158015610a7f573d6000803e3d6000fd5b505050506040513d6020811015610a9557600080fd5b50519063ffffffff61185716565b6000546001600160a01b031681565b600080610abd61186c565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610b1257600080fd5b505afa158015610b26573d6000803e3d6000fd5b505050506040513d6020811015610b3c57600080fd5b50519050610b48611883565b8111610b58576000915050610bae565b82610ba857610b65612065565b610b6e85611554565b9050610b7d81600001516116c5565b8015610b8d5750610b8d856118f9565b15610b9d57600192505050610bae565b600092505050610bae565b60019150505b92915050565b610bbc6119ad565b6001600160a01b0316336001600160a01b031614610c0b5760405162461bcd60e51b815260040180806020018281038252603c8152602001806120b2603c913960400191505060405180910390fd5b610c13612065565b610c1c82611554565b80519091501561083c5761083c826119c1565b60006104cb611a9c565b620a69cb60eb1b610c48611b15565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d6020811015610cb557600080fd5b505115610d09576040805162461bcd60e51b815260206004820152601b60248201527f5261746520696e76616c6964206f72206e6f7420612073796e74680000000000604482015290519081900360640190fd5b610d11611b30565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610d4957600080fd5b505afa158015610d5d573d6000803e3d6000fd5b50505050610d69612065565b610d7283611554565b8051909150610dc8576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420686173206e6f206c69717569646174696f6e207365740000604482015290519081900360640190fd5b6000610dd261186c565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610e2757600080fd5b505afa158015610e3b573d6000803e3d6000fd5b505050506040513d6020811015610e5157600080fd5b50519050610e5d611883565b8111610e6c57610e6c846119c1565b50505050565b60006104cb611883565b60006104cb611b4a565b620a69cb60eb1b610e95611b15565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d6020811015610f0257600080fd5b505115610f56576040805162461bcd60e51b815260206004820152601b60248201527f5261746520696e76616c6964206f72206e6f7420612073796e74680000000000604482015290519081900360640190fd5b610f5e611b30565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610f9657600080fd5b505afa158015610faa573d6000803e3d6000fd5b505050506000610fb86113e8565b1161100a576040805162461bcd60e51b815260206004820152601960248201527f4c69717569646174696f6e20726174696f206e6f742073657400000000000000604482015290519081900360640190fd5b6000611014611a9c565b11611066576040805162461bcd60e51b815260206004820152601960248201527f4c69717569646174696f6e2064656c6179206e6f742073657400000000000000604482015290519081900360640190fd5b61106e612065565b61107783611554565b8051909150156110b85760405162461bcd60e51b81526004018080602001828103825260278152602001806121736027913960400191505060405180910390fd5b60006110c261186c565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561111757600080fd5b505afa15801561112b573d6000803e3d6000fd5b505050506040513d602081101561114157600080fd5b5051905061114d6113e8565b81101561118b5760405162461bcd60e51b81526004018080602001828103825260358152602001806120ee6035913960400191505060405180910390fd5b60006111a5611198611a9c565b429063ffffffff611bd016565b90506111b2858233611c2a565b6040805182815290516001600160a01b038716917fc77e4625de0c70adaf3bd1aabb5f22f9eae8f565367c706fc209030c13857996919081900360200190a25050505050565b600080611203611883565b9050600073__$abda1d5d2dee01544eb6c8a96c021081fd$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561124b57600080fd5b505af415801561125f573d6000803e3d6000fd5b505050506040513d602081101561127557600080fd5b50519050600061129b61128e878563ffffffff611d8116565b889063ffffffff611dab16565b905060006112cf6112c2856112b6868a63ffffffff611bd016565b9063ffffffff611d8116565b849063ffffffff611dab16565b90506112e1828263ffffffff611e0816565b98975050505050505050565b6000546001600160a01b031633146113365760405162461bcd60e51b815260040180806020018281038252602f815260200180612123602f913960400191505060405180910390fd5b565b6000611342611e32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7573656c664c69717569646174696f6e50656e616c747960501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156113b757600080fd5b505afa1580156113cb573d6000803e3d6000fd5b505050506040513d60208110156113e157600080fd5b5051905090565b60006113f2611e32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156113b757600080fd5b600061146b611e32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156113b757600080fd5b60006114e6611e32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1b1a5c5d5a59185d1954995dd85c99608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156113b757600080fd5b61155c612065565b611564611e32565b6001600160a01b03166323257c2b692634b8bab4b230ba37b960b11b6115a0724c69717569646174696f6e446561646c696e6560681b86611e4f565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156115db57600080fd5b505afa1580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b50518152611611611e32565b6001600160a01b0316639ee5955a692634b8bab4b230ba37b960b11b61164b702634b8bab4b230ba34b7b721b0b63632b960791b86611e4f565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561168657600080fd5b505afa15801561169a573d6000803e3d6000fd5b505050506040513d60208110156116b057600080fd5b50516001600160a01b03166020820152919050565b60008082118015610bae575050421190565b60006116e1611e32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b69199b1859d4995dd85c9960b21b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156113b757600080fd5b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061178c57fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156117cb578160200160208202803883390190505b50905060005b835181101561180d578381815181106117e657fe5b60200260200101518282815181106117fa57fe5b60209081029190910101526001016117d1565b5060005b82518110156118505782818151811061182657fe5b602002602001015182828651018151811061183d57fe5b6020908102919091010152600101611811565b5092915050565b600061061b8383670de0b6b3a7640000611e8e565b60006104cb680a6f2dce8d0cae8d2f60bb1b611ec5565b600061188d611e32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156113b757600080fd5b60008061190461186c565b6001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d602081101561198357600080fd5b505190506119a66119926116d7565b61199a6114dc565b9063ffffffff611bd016565b1092915050565b60006104cb6524b9b9bab2b960d11b611ec5565b6119c9611e32565b6001600160a01b03166318f662ed692634b8bab4b230ba37b960b11b611a05724c69717569646174696f6e446561646c696e6560681b85611e4f565b6040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015611a4257600080fd5b505af1158015611a56573d6000803e3d6000fd5b50506040805142815290516001600160a01b03851693507f9b6ac8997b4f2edd0a27c1beb32f7c14d522e9c16f46e79daa5a144016bd6c8792509081900360200190a250565b6000611aa6611e32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156113b757600080fd5b60006104cb6c45786368616e6765526174657360981b611ec5565b60006104cb6b53797374656d53746174757360a01b611ec5565b6000611b54611e32565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f6c69717569646174696f6e457363726f774475726174696f6e000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156113b757600080fd5b60008282018381101561061b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611c32611e32565b6001600160a01b0316631d5b277f692634b8bab4b230ba37b960b11b611c6e724c69717569646174696f6e446561646c696e6560681b87611e4f565b856040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611cb357600080fd5b505af1158015611cc7573d6000803e3d6000fd5b50505050611cd3611e32565b6001600160a01b0316634dca0978692634b8bab4b230ba37b960b11b611d0d702634b8bab4b230ba34b7b721b0b63632b960791b87611e4f565b846040518463ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b031681526020019350505050600060405180830381600087803b158015611d6457600080fd5b505af1158015611d78573d6000803e3d6000fd5b50505050505050565b6000670de0b6b3a7640000611d9c848463ffffffff611fa216565b81611da357fe5b049392505050565b600082821115611e02576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600061061b82611e2685670de0b6b3a764000063ffffffff611fa216565b9063ffffffff611ffb16565b60006104cb6e466c657869626c6553746f7261676560881b611ec5565b6040805160208082019490945260609290921b6bffffffffffffffffffffffff1916828201528051808303603401815260549092019052805191012090565b600080611ea884611e2687600a870263ffffffff611fa216565b90506005600a820610611eb957600a015b600a9004949350505050565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816118505760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f67578181015183820152602001611f4f565b50505050905090810190601f168015611f945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600082611fb157506000610bae565b82820282848281611fbe57fe5b041461061b5760405162461bcd60e51b81526004018080602001828103825260218152602001806121526021913960400191505060405180910390fd5b6000808211612051576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161205c57fe5b04949350505050565b60408051808201909152600080825260208201529056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704c697175696461746f723a204f6e6c79207468652049737375657220636f6e74726163742063616e20706572666f726d207468697320616374696f6e4163636f756e742069737375616e636520726174696f206973206c657373207468616e206c69717569646174696f6e20726174696f4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774163636f756e7420616c726561647920666c616767656420666f72206c69717569646174696f6ea265627a7a72315820d9dea194bbc35a853968ee64f35318a1f5ebf0ea1516c8364fba0f3dc131834964736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "deadline",
							"type": "uint256"
						}
					],
					"name": "AccountFlaggedForLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "AccountRemovedFromLiquidation",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "LIQUIDATION_CALLER",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "LIQUIDATION_DEADLINE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "debtBalance",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "penalty",
							"type": "uint256"
						}
					],
					"name": "calculateAmountToFixCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAndRemoveAccountInLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "flagAccountForLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "flagReward",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getLiquidationCallerForAccount",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getLiquidationDeadlineForAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isLiquidationDeadlinePassed",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "isSelfLiquidation",
							"type": "bool"
						}
					],
					"name": "isLiquidationOpen",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidateReward",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationCollateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationEscrowDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "removeAccountInLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "selfLiquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0xc6b74874b217e37376d292760ccdde188bec97c34f5d205633d458010bf7cc48",
				"urls": [
					"bzz-raw://ac313c6bda371fbb76160c1df6968bd836944f64a1cc8ac07b25fab863fc1abf",
					"dweb:/ipfs/QmbEsCmibGk6uRXNDbVXmV9o3kwSBwmBtxg4qmYbMJoMrp"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Liquidator.sol": "Liquidator"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Liquidator.sol": {
						"keccak256": "0xc6b74874b217e37376d292760ccdde188bec97c34f5d205633d458010bf7cc48",
						"urls": [
							"bzz-raw://ac313c6bda371fbb76160c1df6968bd836944f64a1cc8ac07b25fab863fc1abf",
							"dweb:/ipfs/QmbEsCmibGk6uRXNDbVXmV9o3kwSBwmBtxg4qmYbMJoMrp"
						]
					}
				},
				"version": 1
			}
		},
		"LiquidatorRewards": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200187938038062001879833981016040819052620000349162000100565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001bc565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b691849062000196565b60405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055505060016004555062000217565b8051620000fa81620001fd565b92915050565b600080604083850312156200011457600080fd5b6000620001228585620000ed565b92505060206200013585828601620000ed565b9150509250929050565b6200014a81620001e9565b82525050565b6200014a81620001d7565b60006200016a601983620001ce565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001a682856200013f565b620001b5602083018462000150565b9392505050565b60208082528101620000fa816200015b565b90815260200190565b60006001600160a01b038216620000fa565b6000620000fa826000620000fa82620001d7565b6200020881620001d7565b81146200021457600080fd5b50565b61165280620002276000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c806353a47bb711610097578063899ffef411610066578063899ffef4146101da5780638da5cb5b146101ef578063c00007b0146101f7578063f29ee1251461020a576100ff565b806353a47bb7146101ad578063614d08f8146101c257806374185360146101ca57806379ba5097146101d2576100ff565b80631627540c116100d35780631627540c1461016a578063270fb3381461017f5780632af64bd3146101925780633c6b16ab1461019a576100ff565b80628cc26214610104578063049939f31461012d57806304f3bcec1461014d578063061960aa14610162575b600080fd5b610117610112366004610fc4565b61022b565b6040516101249190611460565b60405180910390f35b61014061013b366004610fc4565b610334565b6040516101249190611452565b610155610349565b60405161012491906114aa565b610117610358565b61017d610178366004610fc4565b61035e565b005b61017d61018d366004610fc4565b6103bc565b61014061049a565b61017d6101a8366004611026565b6105b2565b6101b56106a5565b60405161012491906113d5565b6101176106b4565b61017d6106cc565b61017d610822565b6101e26108be565b6040516101249190611441565b6101b56109a4565b61017d610205366004610fc4565b6109b3565b61021d610218366004610fc4565b610b78565b604051610124929190611549565b6000610235610f76565b506001600160a01b0382166000908152600660209081526040918290208251808401909352546001600160801b03808216808552600160801b9092041691830182905260055461032d92610321916102929163ffffffff610b9e16565b61029a610bcb565b6001600160a01b03166370a08231886040518263ffffffff1660e01b81526004016102c591906113d5565b60206040518083038186803b1580156102dd57600080fd5b505afa1580156102f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103159190810190611044565b9063ffffffff610bf016565b9063ffffffff610c1a16565b9392505050565b60076020526000908152604090205460ff1681565b6002546001600160a01b031681565b60055481565b610366610c3f565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906103b19083906113d5565b60405180910390a150565b6001600160a01b03811660009081526007602052604090205460ff1661042b576005546001600160a01b038216600090815260066020908152604080832080546001600160801b03958616600160801b029516949094179093556007905220805460ff19166001179055610497565b604051806040016040528061043f8361022b565b6001600160801b03908116825260055481166020928301526001600160a01b038416600090815260068352604090208351815494909301518216600160801b029282166001600160801b031990941693909317161790555b50565b600060606104a66108be565b905060005b81518110156105a85760008282815181106104c257fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610513908590600401611460565b60206040518083038186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105639190810190610fea565b6001600160a01b031614158061058e57506000818152600360205260409020546001600160a01b0316155b1561059f57600093505050506105af565b506001016104ab565b5060019150505b90565b60006105bc610c6b565b6001600160a01b0316336001600160a01b0316149050806105f85760405162461bcd60e51b81526004016105ef906114c9565b60405180910390fd5b6000610602610bcb565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561063a57600080fd5b505afa15801561064e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106729190810190611044565b905080156106a05761069c61068d848363ffffffff610c8216565b6005549063ffffffff610c1a16565b6005555b505050565b6001546001600160a01b031681565b704c697175696461746f725265776172647360781b81565b60606106d66108be565b905060005b815181101561081e5760008282815181106106f257fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161073491906113ca565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161076092919061148a565b60206040518083038186803b15801561077857600080fd5b505afa15801561078c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107b09190810190610fea565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061080c908490849061146e565b60405180910390a150506001016106db565b5050565b6001546001600160a01b0316331461084c5760405162461bcd60e51b81526004016105ef906114d9565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261088f926001600160a01b03918216929116906113e3565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6060806108c9610cac565b60408051600480825260a0820190925291925060609190602082016080803883390190505090507153796e74686574697844656274536861726560701b8160008151811061091357fe5b6020026020010181815250506524b9b9bab2b960d11b8160018151811061093657fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b8160028151811061096157fe5b602002602001018181525050680a6f2dce8d0cae8d2f60bb1b8160038151811061098757fe5b60200260200101818152505061099d8282610cfd565b9250505090565b6000546001600160a01b031681565b60048054600101908190556109c7826103bc565b6001600160a01b0382166000908152600660205260409020546001600160801b03168015610b56576001600160a01b038316600090815260066020526040902080546001600160801b0319169055610a1d610c6b565b6001600160a01b031663095ea7b3610a33610db9565b836040518363ffffffff1660e01b8152600401610a519291906113fe565b602060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa39190810190611008565b50610aac610db9565b6001600160a01b031663a0416ed38483610ac4610dd5565b6040518463ffffffff1660e01b8152600401610ae293929190611419565b600060405180830381600087803b158015610afc57600080fd5b505af1158015610b10573d6000803e3d6000fd5b50505050826001600160a01b03167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e048682604051610b4d9190611460565b60405180910390a25b50600454811461081e5760405162461bcd60e51b81526004016105ef90611539565b6006602052600090815260409020546001600160801b0380821691600160801b90041682565b600082821115610bc05760405162461bcd60e51b81526004016105ef906114f9565b508082035b92915050565b6000610beb7153796e74686574697844656274536861726560701b610e8d565b905090565b6000670de0b6b3a7640000610c0b848463ffffffff610eea16565b81610c1257fe5b049392505050565b60008282018381101561032d5760405162461bcd60e51b81526004016105ef906114e9565b6000546001600160a01b03163314610c695760405162461bcd60e51b81526004016105ef90611519565b565b6000610beb680a6f2dce8d0cae8d2f60bb1b610e8d565b600061032d82610ca085670de0b6b3a764000063ffffffff610eea16565b9063ffffffff610f2416565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110610cee57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015610d2d578160200160208202803883390190505b50905060005b8351811015610d6f57838181518110610d4857fe5b6020026020010151828281518110610d5c57fe5b6020908102919091010152600101610d33565b5060005b8251811015610db257828181518110610d8857fe5b6020026020010151828286510181518110610d9f57fe5b6020908102919091010152600101610d73565b5092915050565b6000610beb6d2932bbb0b93222b9b1b937bbab1960911b610e8d565b6000610ddf610f59565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f6c69717569646174696f6e457363726f774475726174696f6e000000000000006040518363ffffffff1660e01b8152600401610e3d92919061147c565b60206040518083038186803b158015610e5557600080fd5b505afa158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610beb9190810190611044565b60008181526003602090815260408083205490516001600160a01b039091169182151591610ebd918691016113aa565b60405160208183030381529060405290610db25760405162461bcd60e51b81526004016105ef91906114b8565b600082610ef957506000610bc5565b82820282848281610f0657fe5b041461032d5760405162461bcd60e51b81526004016105ef90611529565b6000808211610f455760405162461bcd60e51b81526004016105ef90611509565b6000828481610f5057fe5b04949350505050565b6000610beb6e466c657869626c6553746f7261676560881b610e8d565b604080518082019091526000808252602082015290565b8035610bc5816115e9565b8051610bc5816115e9565b8051610bc5816115fd565b8035610bc581611606565b8051610bc581611606565b600060208284031215610fd657600080fd5b6000610fe28484610f8d565b949350505050565b600060208284031215610ffc57600080fd5b6000610fe28484610f98565b60006020828403121561101a57600080fd5b6000610fe28484610fa3565b60006020828403121561103857600080fd5b6000610fe28484610fae565b60006020828403121561105657600080fd5b6000610fe28484610fb9565b600061106e83836110e7565b505060200190565b61107f8161157c565b82525050565b60006110908261156a565b61109a818561156e565b93506110a583611564565b8060005b838110156110d35781516110bd8882611062565b97506110c883611564565b9250506001016110a9565b509495945050505050565b61107f81611587565b61107f816105af565b61107f6110fc826105af565b6105af565b61107f816115a4565b60006111158261156a565b61111f818561156e565b935061112f8185602086016115af565b611138816115df565b9093019392505050565b600061114f600e8361156e565b6d53796e746865746978206f6e6c7960901b815260200192915050565b600061117960358361156e565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006111d0601b8361156e565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000611209601e8361156e565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000611242601a8361156e565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061127b601183611577565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006112a8602f8361156e565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006112f960218361156e565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061133c601983611577565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000611375601f8361156e565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b61107f8161158c565b60006113b58261126e565b91506113c182846110f0565b50602001919050565b60006113b58261132f565b60208101610bc58284611076565b604081016113f18285611076565b61032d6020830184611076565b6040810161140c8285611076565b61032d60208301846110e7565b606081016114278286611076565b61143460208301856110e7565b610fe260408301846110e7565b6020808252810161032d8184611085565b60208101610bc582846110de565b60208101610bc582846110e7565b604081016113f182856110e7565b6040810161140c82856110e7565b6040810161149882856110e7565b8181036020830152610fe2818461110a565b60208101610bc58284611101565b6020808252810161032d818461110a565b60208082528101610bc581611142565b60208082528101610bc58161116c565b60208082528101610bc5816111c3565b60208082528101610bc5816111fc565b60208082528101610bc581611235565b60208082528101610bc58161129b565b60208082528101610bc5816112ec565b60208082528101610bc581611368565b6040810161155782856113a1565b61032d60208301846113a1565b60200190565b5190565b90815260200190565b919050565b6000610bc582611598565b151590565b6001600160801b031690565b6001600160a01b031690565b6000610bc58261157c565b60005b838110156115ca5781810151838201526020016115b2565b838111156115d9576000848401525b50505050565b601f01601f191690565b6115f28161157c565b811461049757600080fd5b6115f281611587565b6115f2816105af56fea365627a7a72315820b154d3ba76f0c46718f1a26607bca820731db04f29487c73eba947186030843b6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "RewardPaid",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accumulatedRewardsPerShare",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "earned",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "entries",
					"outputs": [
						{
							"internalType": "uint128",
							"name": "claimable",
							"type": "uint128"
						},
						{
							"internalType": "uint128",
							"name": "entryAccumulatedRewards",
							"type": "uint128"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "initiated",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reward",
							"type": "uint256"
						}
					],
					"name": "notifyRewardAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "updateEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x621221d61543cd3356f62b60c84c1a0ba0763ab6caada6705df5db116bcab9e0",
				"urls": [
					"bzz-raw://f440aba73c6f10efa0d7a57890ccc51a2ebc7db360513d8acd11060e3b80cf67",
					"dweb:/ipfs/QmSZ9FgbQZayzNXn5fSZunmXzWkeHcc4NsNXfbTAvRc6ej"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"LiquidatorRewards.sol": "LiquidatorRewards"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"LiquidatorRewards.sol": {
						"keccak256": "0x621221d61543cd3356f62b60c84c1a0ba0763ab6caada6705df5db116bcab9e0",
						"urls": [
							"bzz-raw://f440aba73c6f10efa0d7a57890ccc51a2ebc7db360513d8acd11060e3b80cf67",
							"dweb:/ipfs/QmSZ9FgbQZayzNXn5fSZunmXzWkeHcc4NsNXfbTAvRc6ej"
						]
					}
				},
				"version": 1
			}
		}
	}
}
