{
	"targets": {
		"SafeDecimalMath": {
			"name": "SafeDecimalMath",
			"address": "0x52BD20683E29DD72C6af23b2EdcF598EEab3BA16",
			"source": "SafeDecimalMath",
			"link": "https://ganache.etherscan.io/address/0x52BD20683E29DD72C6af23b2EdcF598EEab3BA16",
			"timestamp": "2022-03-14T21:52:07.716Z",
			"txn": "",
			"network": "ganache"
		},
		"Math": {
			"name": "Math",
			"address": "0x6E3bE5163C73Cd37f4D3285D18DB9751EAe84aaD",
			"source": "Math",
			"link": "https://ganache.etherscan.io/address/0x6E3bE5163C73Cd37f4D3285D18DB9751EAe84aaD",
			"timestamp": "2022-03-14T21:52:08.106Z",
			"txn": "",
			"network": "ganache"
		},
		"SystemSettingsLib": {
			"name": "SystemSettingsLib",
			"address": "0x0e0EA4614b52889aEfdE2dC2e7DE10fbf9218226",
			"source": "SystemSettingsLib",
			"link": "https://ganache.etherscan.io/address/0x0e0EA4614b52889aEfdE2dC2e7DE10fbf9218226",
			"timestamp": "2022-03-14T21:52:08.695Z",
			"txn": "",
			"network": "ganache"
		},
		"AddressResolver": {
			"name": "AddressResolver",
			"address": "0x0Ce8EeAeEaBAab0Da11F0CDe72014cA84b4844df",
			"source": "AddressResolver",
			"link": "https://ganache.etherscan.io/address/0x0Ce8EeAeEaBAab0Da11F0CDe72014cA84b4844df",
			"timestamp": "2022-03-14T21:52:09.239Z",
			"txn": "",
			"network": "ganache"
		},
		"ReadProxyAddressResolver": {
			"name": "ReadProxyAddressResolver",
			"address": "0x96Cc2ea023292d0Ccb79E1d6486DaDBEE182B798",
			"source": "ReadProxy",
			"link": "https://ganache.etherscan.io/address/0x96Cc2ea023292d0Ccb79E1d6486DaDBEE182B798",
			"timestamp": "2022-03-14T21:52:09.706Z",
			"txn": "",
			"network": "ganache"
		},
		"ext:AggregatorIssuedSynths": {
			"name": "ext:AggregatorIssuedSynths",
			"address": "0x0af4Ed439C8692514041e251585Bb4E5f988AC83",
			"source": "SingleNetworkAggregatorIssuedSynths",
			"link": "https://ganache.etherscan.io/address/0x0af4Ed439C8692514041e251585Bb4E5f988AC83",
			"timestamp": "2022-03-14T21:52:10.309Z",
			"txn": "",
			"network": "ganache"
		},
		"ext:AggregatorDebtRatio": {
			"name": "ext:AggregatorDebtRatio",
			"address": "0x6a7D54C4dCFCbB65Cd378c819aB3be522503c966",
			"source": "SingleNetworkAggregatorDebtRatio",
			"link": "https://ganache.etherscan.io/address/0x6a7D54C4dCFCbB65Cd378c819aB3be522503c966",
			"timestamp": "2022-03-14T21:52:10.906Z",
			"txn": "",
			"network": "ganache"
		},
		"FlexibleStorage": {
			"name": "FlexibleStorage",
			"address": "0xB21b3506028863a4794a7617222EB807E5A707b5",
			"source": "FlexibleStorage",
			"link": "https://ganache.etherscan.io/address/0xB21b3506028863a4794a7617222EB807E5A707b5",
			"timestamp": "2022-03-14T21:52:11.534Z",
			"txn": "",
			"network": "ganache"
		},
		"SystemSettings": {
			"name": "SystemSettings",
			"address": "0x5A76F8bA76Db6De2E99D5821C3f3Be4C80C6e548",
			"source": "SystemSettings",
			"link": "https://ganache.etherscan.io/address/0x5A76F8bA76Db6De2E99D5821C3f3Be4C80C6e548",
			"timestamp": "2022-03-14T21:52:12.525Z",
			"txn": "",
			"network": "ganache"
		},
		"SystemStatus": {
			"name": "SystemStatus",
			"address": "0xDe77F55AFC138FB603f57268B80A660e07e86fe8",
			"source": "SystemStatus",
			"link": "https://ganache.etherscan.io/address/0xDe77F55AFC138FB603f57268B80A660e07e86fe8",
			"timestamp": "2022-03-14T21:52:13.201Z",
			"txn": "",
			"network": "ganache"
		},
		"ExchangeRates": {
			"name": "ExchangeRates",
			"address": "0x56d770EA091AdA7c413f46B2f4e624a12aDC1580",
			"source": "ExchangeRatesWithDexPricing",
			"link": "https://ganache.etherscan.io/address/0x56d770EA091AdA7c413f46B2f4e624a12aDC1580",
			"timestamp": "2022-03-14T21:52:14.069Z",
			"txn": "",
			"network": "ganache"
		},
		"RewardEscrow": {
			"name": "RewardEscrow",
			"address": "0x8fEce8eaEaC0362f216C5cc7827643D1AeB2dE60",
			"source": "RewardEscrow",
			"link": "https://ganache.etherscan.io/address/0x8fEce8eaEaC0362f216C5cc7827643D1AeB2dE60",
			"timestamp": "2022-03-14T21:52:14.831Z",
			"txn": "",
			"network": "ganache"
		}
	},
	"sources": {
		"SafeDecimalMath": {
			"bytecode": "61012d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060655760003560e01c8063313ce56714606a578063864029e7146086578063907af6c014609e5780639d8e21771460a4578063d5e5e6e61460aa578063def4419d1460b0575b600080fd5b607060b6565b6040805160ff9092168252519081900360200190f35b608c60bb565b60408051918252519081900360200190f35b608c60cb565b608c60d7565b608c60e3565b607060f3565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156fea265627a7a7231582022f84dae346d4ff605afa4d13f4160c927b1dda170bf475e159de9ced3f0bd5e64736f6c63430005100032",
			"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": "0x52bbc1aacf343481dae70dadbcda19b3057727a65c7d55b48536a0cb31aca7d0",
				"urls": [
					"bzz-raw://be8813f41c66bf877a73675afdaed6409a87c117a4315ad93e268dc58ff662e5",
					"dweb:/ipfs/QmWLvzfxCcwWKexXzPSuc4rGqczehvjk3LDuSWCAZcYwbm"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SafeDecimalMath.sol": "SafeDecimalMath"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SafeDecimalMath.sol": {
						"keccak256": "0x52bbc1aacf343481dae70dadbcda19b3057727a65c7d55b48536a0cb31aca7d0",
						"urls": [
							"bzz-raw://be8813f41c66bf877a73675afdaed6409a87c117a4315ad93e268dc58ff662e5",
							"dweb:/ipfs/QmWLvzfxCcwWKexXzPSuc4rGqczehvjk3LDuSWCAZcYwbm"
						]
					}
				},
				"version": 1
			}
		},
		"Math": {
			"bytecode": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820cfe2b91b0e281eae73a298337acf3ed02f1938db5fcf635dfa17563835f1e93d64736f6c63430005100032",
			"abi": [],
			"source": {
				"keccak256": "0xd1b29d6664fb0d3d1135539c20fb039ea4618cbbd7268724e8d5195f67b4a35b",
				"urls": [
					"bzz-raw://538efc76acf721bc7fe0cb78d5f64e62fd1430bcacd8d9ce31de4e42bf879bc5",
					"dweb:/ipfs/QmTtU9AYPAt2LXWqd5cuLG9UAgAPZQv8FcK4NZhvfS6MDB"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Math.sol": "Math"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Math.sol": {
						"keccak256": "0xd1b29d6664fb0d3d1135539c20fb039ea4618cbbd7268724e8d5195f67b4a35b",
						"urls": [
							"bzz-raw://538efc76acf721bc7fe0cb78d5f64e62fd1430bcacd8d9ce31de4e42bf879bc5",
							"dweb:/ipfs/QmTtU9AYPAt2LXWqd5cuLG9UAgAPZQv8FcK4NZhvfS6MDB"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettingsLib": {
			"bytecode": "612106610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106103315760003560e01c806394286a1e116101c2578063c58c9ae41161010e578063f02d9a5b116100ac578063fb1b4c7e11610086578063fb1b4c7e14610a58578063fbfd964614610a60578063fd194a3514610350578063fe250a5514610aa757610331565b8063f02d9a5b14610a09578063f1076b2514610a48578063f344da6714610a5057610331565b8063d9158b03116100e8578063d9158b0314610983578063da91c7b814610782578063e6abf7cc146109c2578063e78e6bb914610a0157610331565b8063c58c9ae41461097b578063d4aebcef14610350578063d62ae3991461089457610331565b8063add0989d1161017b578063b3ebdca411610155578063b3ebdca4146108ac578063c264b8f3146106e2578063c35b995c146108eb578063c404a0de1461092e57610331565b8063add0989d14610894578063af8bc660146108a4578063b2ea7054146106e257610331565b806394286a1e1461088c57806398be8e3f146108945780639f91787d1461088c578063a4ce5b711461089c578063a6c4611014610350578063aad237391461089457610331565b806363daca09116102815780637ce2cc7f1161023a5780638134ddb7116102145780638134ddb714610808578063834f26de146103505780638ab5a4a2146106e257806392dabaf21461084d57610331565b80637ce2cc7f1461077a5780637e1ba6a4146107825780637eb29414146107c957610331565b806363daca09146106a3578063657c6dc7146106e25780636d4851f1146106ea57806372c6c3411461072957806375d0c0dc146107315780637c1d99d61461073957610331565b806321d0b6ce116102ee57806353c0bf1c116102c857806353c0bf1c146105c2578063580a975c1461060f5780635d3045ab146106175780635f7ad8711461065c57610331565b806321d0b6ce1461053e57806333ddab6814610583578063446ca4fd1461053e57610331565b8063085f95cd146103365780630e7bf1c51461035057806310ada7201461039157806311d78c0c146103d057806319305b3c1461041b5780631a5bb1f71461045a575b600080fd5b61033e610ae6565b60408051918252519081900360200190f35b81801561035c57600080fd5b5061038f6004803603606081101561037357600080fd5b506001600160a01b038135169060208101359060400135610af2565b005b81801561039d57600080fd5b5061033e600480360360608110156103b457600080fd5b506001600160a01b038135169060208101359060400135610b75565b8180156103dc57600080fd5b5061038f600480360360a08110156103f357600080fd5b506001600160a01b038135169060208101359060408101359060608101359060800135610cdb565b81801561042757600080fd5b5061038f6004803603606081101561043e57600080fd5b506001600160a01b038135169060208101359060400135610e92565b81801561046657600080fd5b5061038f6004803603608081101561047d57600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156104ad57600080fd5b8201836020820111156104bf57600080fd5b803590602001918460208302840111640100000000831117156104e157600080fd5b9193909290916020810190356401000000008111156104ff57600080fd5b82018360208201111561051157600080fd5b8035906020019184602083028401116401000000008311171561053357600080fd5b509092509050610ed8565b81801561054a57600080fd5b5061038f6004803603608081101561056157600080fd5b506001600160a01b038135169060208101359060408101359060600135611083565b81801561058f57600080fd5b5061038f600480360360608110156105a657600080fd5b506001600160a01b03813516906020810135906040013561112b565b8180156105ce57600080fd5b5061038f600480360360a08110156105e557600080fd5b506001600160a01b03813581169160208101359160408201351690606081013590608001356111ad565b61033e61136f565b81801561062357600080fd5b5061038f6004803603608081101561063a57600080fd5b506001600160a01b038135169060208101359060408101359060600135611376565b81801561066857600080fd5b5061038f6004803603608081101561067f57600080fd5b506001600160a01b03813581169160208101359160408201359160600135166113fe565b8180156106af57600080fd5b5061038f600480360360608110156106c657600080fd5b506001600160a01b0381351690602081013590604001356114e6565b61033e611596565b8180156106f657600080fd5b5061038f6004803603606081101561070d57600080fd5b506001600160a01b0381351690602081013590604001356115a2565b61033e6115e9565b61033e6115fe565b81801561074557600080fd5b5061038f6004803603606081101561075c57600080fd5b506001600160a01b0381351690602081013590604001351515611613565b61033e61167a565b81801561078e57600080fd5b5061038f600480360360808110156107a557600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611681565b8180156107d557600080fd5b5061038f600480360360608110156107ec57600080fd5b506001600160a01b03813516906020810135906040013561171e565b81801561081457600080fd5b5061038f6004803603608081101561082b57600080fd5b506001600160a01b038135169060208101359060408101359060600135611765565b81801561085957600080fd5b5061038f6004803603606081101561087057600080fd5b506001600160a01b0381351690602081013590604001356117c2565b61033e61181f565b61033e611824565b61033e61182b565b61033e611837565b8180156108b857600080fd5b5061038f600480360360608110156108cf57600080fd5b506001600160a01b03813516906020810135906040013561183c565b8180156108f757600080fd5b5061038f6004803603606081101561090e57600080fd5b506001600160a01b038135811691602081013591604090910135166118ec565b81801561093a57600080fd5b5061038f600480360360a081101561095157600080fd5b506001600160a01b03813581169160208101359160408201351690606081013590608001356119b0565b61033e611ab6565b81801561098f57600080fd5b5061038f600480360360608110156109a657600080fd5b506001600160a01b038135169060208101359060400135611abd565b8180156109ce57600080fd5b5061038f600480360360608110156109e557600080fd5b506001600160a01b038135169060208101359060400135611b15565b61033e611bc4565b818015610a1557600080fd5b5061038f60048036036060811015610a2c57600080fd5b506001600160a01b038135169060208101359060400135611bcf565b61033e611c36565b61033e611c3d565b61033e611c44565b818015610a6c57600080fd5b5061038f60048036036080811015610a8357600080fd5b506001600160a01b0381358116916020810135916040820135169060600135611c50565b818015610ab357600080fd5b5061038f60048036036060811015610aca57600080fd5b506001600160a01b038135169060208101359060400135611d05565b6703782dace9d9000081565b60408051631d5b277f60e01b81526d53797374656d53657474696e677360901b6004820152602481018490526044810183905290516001600160a01b03851691631d5b277f91606480830192600092919082900301818387803b158015610b5857600080fd5b505af1158015610b6c573d6000803e3d6000fd5b50505050505050565b60006032821115610bc2576040805162461bcd60e51b81526020600482015260126024820152710a8d0e4cae6d0ded8c840e8dede40d0d2ced60731b604482015290519081900360640190fd5b610c536064610c4773__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0e57600080fd5b505af4158015610c22573d6000803e3d6000fd5b505050506040513d6020811015610c3857600080fd5b5051859063ffffffff611d6216565b9063ffffffff611dc416565b9050836001600160a01b0316631d5b277f6d53797374656d53657474696e677360901b85846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610cbc57600080fd5b505af1158015610cd0573d6000803e3d6000fd5b505050509392505050565b610d73610d5e8373__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2657600080fd5b505af4158015610d3a573d6000803e3d6000fd5b505050506040513d6020811015610d5057600080fd5b50519063ffffffff611e2e16565b670de0b6b3a76400009063ffffffff611e8816565b831115610db15760405162461bcd60e51b8152600401808060200182810382526038815260200180611f136038913960400191505060405180910390fd5b6000610dcb82671bc16d674ec8000063ffffffff611ea616565b905080841015610e0c5760405162461bcd60e51b81526004018080602001828103825260288152602001806120486028913960400191505060405180910390fd5b60408051631d5b277f60e01b81526d53797374656d53657474696e677360901b6004820152602481018790526044810186905290516001600160a01b03881691631d5b277f91606480830192600092919082900301818387803b158015610e7257600080fd5b505af1158015610e86573d6000803e3d6000fd5b50505050505050505050565b6001600160c01b03811115610af25760405162461bcd60e51b8152600401808060200182810382526028815260200180611f6c6028913960400191505060405180910390fd5b828114610f2c576040805162461bcd60e51b815260206004820152601860248201527f4172726179206c656e6774687320646f6e74206d617463680000000000000000604482015290519081900360640190fd5b60005b83811015610b6c5767016345785d8a0000838383818110610f4c57fe5b905060200201351115610fa6576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b866001600160a01b0316631d5b277f6d53797374656d53657474696e677360901b88888886818110610fd457fe5b9050602002013560405160200180838152602001828152602001925050506040516020818303038152906040528051906020012086868681811061101457fe5b905060200201356040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561105f57600080fd5b505af1158015611073573d6000803e3d6000fd5b505060019092019150610f2f9050565b6040805160208082018690528183018590528251808303840181526060830180855281519190920120631d5b277f60e01b9091526d53797374656d53657474696e677360901b6064830152608482015260a4810183905290516001600160a01b03861691631d5b277f9160c480830192600092919082900301818387803b15801561110d57600080fd5b505af1158015611121573d6000803e3d6000fd5b5050505050505050565b603c81101561116b5760405162461bcd60e51b8152600401808060200182810382526026815260200180611fef6026913960400191505060405180910390fd5b62015180811115610af25760405162461bcd60e51b81526004018080602001828103825260278152602001806120706027913960400191505060405180910390fd5b670de0b6b3a764000082131561120a576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4d494e545f4645455f52415445604482015290519081900360640190fd5b670de0b6b3a763ffff198212156112525760405162461bcd60e51b8152600401808060200182810382526021815260200180611f4b6021913960400191505060405180910390fd5b60008212156112b357808260000313156112b3576040805162461bcd60e51b815260206004820152601a60248201527f2d72617465203e20777261707065724275726e46656552617465000000000000604482015290519081900360640190fd5b6040805160208082018790526bffffffffffffffffffffffff19606087901b168284015282516034818403018152605483018085528151919092012063d71a9b0160e01b9091526d53797374656d53657474696e677360901b605883015260788201526098810184905290516001600160a01b0387169163d71a9b019160b880830192600092919082900301818387803b15801561135057600080fd5b505af1158015611364573d6000803e3d6000fd5b505050505050505050565b62093a8081565b801561108357603c8110156113bc5760405162461bcd60e51b815260040180806020018281038252603a815260200180611fb5603a913960400191505060405180910390fd5b620151808111156110835760405162461bcd60e51b815260040180806020018281038252603b815260200180612097603b913960400191505060405180910390fd5b6001600160a01b038116611459576040805162461bcd60e51b815260206004820152601e60248201527f41746f6d6963206571756976616c656e74206973203020616464726573730000604482015290519081900360640190fd5b60408051602080820186905281830185905282518083038401815260608301808552815191909201206309b9412f60e31b9091526d53797374656d53657474696e677360901b606483015260848201526001600160a01b0383811660a4830152915191861691634dca09789160c48082019260009290919082900301818387803b15801561110d57600080fd5b6201518081101561153e576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203c204d494e5f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b624f1a00811115610af2576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203e204d41585f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b670de0b6b3a764000081565b670de0b6b3a7640000811115610af25760405162461bcd60e51b81526004018080602001828103825260338152602001806120156033913960400191505060405180910390fd5b6d53797374656d53657474696e677360901b81565b6d53797374656d53657474696e677360901b90565b60408051630fca29bf60e21b81526d53797374656d53657474696e677360901b600482015260248101849052821515604482015290516001600160a01b03851691633f28a6fc91606480830192600092919082900301818387803b158015610b5857600080fd5b622dc6c081565b6040805160208082018690526bffffffffffffffffffffffff19606086901b1682840152825160348184030181526054830180855281519190920120631d5b277f60e01b9091526d53797374656d53657474696e677360901b605883015260788201526098810183905290516001600160a01b03861691631d5b277f9160b880830192600092919082900301818387803b15801561110d57600080fd5b6703782dace9d90000811115610af25760405162461bcd60e51b8152600401808060200182810382526021815260200180611ed16021913960400191505060405180910390fd5b67016345785d8a0000811115611083576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b670de0b6b3a7640000811115610af2576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4255524e5f4645455f52415445604482015290519081900360640190fd5b603c81565b6201518081565b671bc16d674ec8000081565b603281565b62278d00811115611894576040805162461bcd60e51b815260206004820152601960248201527f4d757374206265206c657373207468616e203330206461797300000000000000604482015290519081900360640190fd5b62015180811015610af2576040805162461bcd60e51b815260206004820152601a60248201527f4d7573742062652067726561746572207468616e203120646179000000000000604482015290519081900360640190fd5b6001600160a01b038116611947576040805162461bcd60e51b815260206004820152601b60248201527f56616c69642061646472657373206d75737420626520676976656e0000000000604482015290519081900360640190fd5b604080516309b9412f60e31b81526d53797374656d53657474696e677360901b6004820152602481018490526001600160a01b038381166044830152915191851691634dca09789160648082019260009290919082900301818387803b158015610b5857600080fd5b670de0b6b3a7640000821315611a0d576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4255524e5f4645455f52415445604482015290519081900360640190fd5b670de0b6b3a763ffff19821215611a555760405162461bcd60e51b8152600401808060200182810382526021815260200180611ef26021913960400191505060405180910390fd5b60008212156112b357808260000313156112b3576040805162461bcd60e51b815260206004820152601a60248201527f2d72617465203e20777261707065724d696e7446656552617465000000000000604482015290519081900360640190fd5b627a120081565b62093a80811115610af2576040805162461bcd60e51b815260206004820181905260248201527f7374616b652074696d6520657863656564206d6178696d756d2031207765656b604482015290519081900360640190fd5b80611b67576040805162461bcd60e51b815260206004820152601b60248201527f4d61782064796e616d6963206665652063616e6e6f7420626520300000000000604482015290519081900360640190fd5b67016345785d8a0000811115610af2576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b6001600160c01b0381565b622dc6c08110158015611be55750627a12008111155b610af2576040805162461bcd60e51b815260206004820152601d60248201527f4f7574206f662072616e67652078446f6d61696e206761734c696d6974000000604482015290519081900360640190fd5b62278d0081565b624f1a0081565b67016345785d8a000081565b73__$e545cc3346307399a10b9406a3a70b1ee5$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9457600080fd5b505af4158015611ca8573d6000803e3d6000fd5b505050506040513d6020811015611cbe57600080fd5b5051610e1002811115611681576040805162461bcd60e51b815260206004820152600a60248201526926b0bc1018903437bab960b11b604482015290519081900360640190fd5b670de0b6b3a7640000811115610af2576040805162461bcd60e51b815260206004820181905260248201527f72617465203e204d41585f575241505045525f4d494e545f4645455f52415445604482015290519081900360640190fd5b600082611d7157506000611dbe565b82820282848281611d7e57fe5b0414611dbb5760405162461bcd60e51b8152600401808060200182810382526021815260200180611f946021913960400191505060405180910390fd5b90505b92915050565b6000808211611e1a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611e2557fe5b04949350505050565b600082820183811015611dbb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611dbb82610c4785670de0b6b3a764000063ffffffff611d6216565b6000670de0b6b3a7640000611ec1848463ffffffff611d6216565b81611ec857fe5b04939250505056fe70656e616c7479203e204d41585f4c49515549444154494f4e5f50454e414c545972617465203c202d4d41585f575241505045525f4255524e5f4645455f524154456c69717569646174696f6e526174696f203e204d41585f4c49515549444154494f4e5f524154494f202f202831202b2070656e616c74792972617465203c202d4d41585f575241505045525f4d494e545f4645455f5241544541746f6d6963206d617820766f6c756d6520657863656564206d6178696d756d2075696e74313932536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7741746f6d696320766f6c6174696c69747920636f6e73696465726174696f6e2077696e646f7720756e646572206d696e696d756d2031206d696e41746f6d696320747761702077696e646f7720756e646572206d696e696d756d2031206d696e4e65772069737375616e636520726174696f2063616e6e6f7420657863656564204d41585f49535355414e43455f524154494f6c69717569646174696f6e526174696f203c204d494e5f4c49515549444154494f4e5f524154494f41746f6d696320747761702077696e646f7720657863656564206d6178696d756d20312064617941746f6d696320766f6c6174696c69747920636f6e73696465726174696f6e2077696e646f7720657863656564206d6178696d756d203120646179a265627a7a723158202ae244a6a86d397e6d90352e6bb84a7266d20291bfe8df161c0ca0409b8100d564736f6c63430005100032",
			"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": "0xee826c93d18406fe3a635471c6a4caa80c910f03014821d040224431f6ba3fd2",
				"urls": [
					"bzz-raw://9a8b5ba72af3402099c9dc55fc9439754c5a2b622b1dd34396ae0fa5a95b8fca",
					"dweb:/ipfs/Qmbi7qkiusd6VRKxwzhhcbv8NJ9r8trAEjsPBjGrNNXPSw"
				]
			},
			"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": "0xee826c93d18406fe3a635471c6a4caa80c910f03014821d040224431f6ba3fd2",
						"urls": [
							"bzz-raw://9a8b5ba72af3402099c9dc55fc9439754c5a2b622b1dd34396ae0fa5a95b8fca",
							"dweb:/ipfs/Qmbi7qkiusd6VRKxwzhhcbv8NJ9r8trAEjsPBjGrNNXPSw"
						]
					}
				},
				"version": 1
			}
		},
		"AddressResolver": {
			"bytecode": "608060405234801561001057600080fd5b50604051610ab9380380610ab98339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506109bf806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063766f781511610071578063766f78151461015157806379ba5097146101bf5780638da5cb5b146101c75780639f42102f146101cf578063ab0b8f77146102a1578063dacb2d011461035f576100a9565b80631627540c146100ae578063187f7935146100d657806321f8a7211461010f578063514560611461012c57806353a47bb714610149575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b03166103d4565b005b6100f3600480360360208110156100ec57600080fd5b5035610430565b604080516001600160a01b039092168252519081900360200190f35b6100f36004803603602081101561012557600080fd5b503561044b565b6100f36004803603602081101561014257600080fd5b5035610466565b6100f361056e565b6100d46004803603602081101561016757600080fd5b810190602081018135600160201b81111561018157600080fd5b82018360208201111561019357600080fd5b803590602001918460208302840111600160201b831117156101b457600080fd5b50909250905061057d565b6100d4610607565b6100f36106c3565b61028d600480360360408110156101e557600080fd5b810190602081018135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460208302840111600160201b8311171561023257600080fd5b919390929091602081019035600160201b81111561024f57600080fd5b82018360208201111561026157600080fd5b803590602001918460208302840111600160201b8311171561028257600080fd5b5090925090506106d2565b604080519115158252519081900360200190f35b6100d4600480360360408110156102b757600080fd5b810190602081018135600160201b8111156102d157600080fd5b8201836020820111156102e357600080fd5b803590602001918460208302840111600160201b8311171561030457600080fd5b919390929091602081019035600160201b81111561032157600080fd5b82018360208201111561033357600080fd5b803590602001918460208302840111600160201b8311171561035457600080fd5b50909250905061075b565b6100f36004803603604081101561037557600080fd5b81359190810190604081016020820135600160201b81111561039657600080fd5b8201836020820111156103a857600080fd5b803590602001918460018302840111600160201b831117156103c957600080fd5b509092509050610867565b6103dc6108db565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002602052600090815260409020546001600160a01b031681565b6000908152600260205260409020546001600160a01b031690565b6524b9b9bab2b960d11b600090815260026020527f0651498423135bdecab48e2d306f14d560a72d49179b71410fd95b5d25ce349a546001600160a01b0316806104f7576040805162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015290519081900360640190fd5b806001600160a01b03166332608039846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561053b57600080fd5b505afa15801561054f573d6000803e3d6000fd5b505050506040513d602081101561056557600080fd5b50519392505050565b6001546001600160a01b031681565b60005b818110156106025782828281811061059457fe5b905060200201356001600160a01b03166001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105de57600080fd5b505af11580156105f2573d6000803e3d6000fd5b5050600190920191506105809050565b505050565b6001546001600160a01b031633146106505760405162461bcd60e51b81526004018080602001828103825260358152602001806109276035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000805b8481101561074d578383828181106106ea57fe5b905060200201356001600160a01b03166001600160a01b03166002600088888581811061071357fe5b60209081029290920135835250810191909152604001600020546001600160a01b031614610745576000915050610753565b6001016106d6565b50600190505b949350505050565b6107636108db565b8281146107b7576040805162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015290519081900360640190fd5b60005b838110156108605760008585838181106107d057fe5b90506020020135905060008484848181106107e757fe5b600085815260026020908152604091829020805493820295909501356001600160a01b03166001600160a01b03199093168317909455805186815293840182905280519194507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa9193829003019150a150506001016107ba565b5050505050565b6000838152600260205260408120546001600160a01b03168383826108d05760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152604051601f909101601f19169092018290039550909350505050fd5b509095945050505050565b6000546001600160a01b031633146109245760405162461bcd60e51b815260040180806020018281038252602f81526020018061095c602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158207fc5e748048a731a8242b42f80f0bd94219fd7e245cd6ee7fb4387e96dc9a2de64736f6c63430005100032",
			"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": "0x321e1682689b313a4457956f90c397f2eadaba25a28d2bc058cbd7ed3818def8",
				"urls": [
					"bzz-raw://c15308ef89b95bd816a1cf488530d96bc5fa8834f528882e468f8c8d48a29e15",
					"dweb:/ipfs/QmaBg67KtkUKor5yVbCZkvfhxwbqCBZCh9ZmBcBF7GgmUU"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"AddressResolver.sol": "AddressResolver"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"AddressResolver.sol": {
						"keccak256": "0x321e1682689b313a4457956f90c397f2eadaba25a28d2bc058cbd7ed3818def8",
						"urls": [
							"bzz-raw://c15308ef89b95bd816a1cf488530d96bc5fa8834f528882e468f8c8d48a29e15",
							"dweb:/ipfs/QmaBg67KtkUKor5yVbCZkvfhxwbqCBZCh9ZmBcBF7GgmUU"
						]
					}
				},
				"version": 1
			}
		},
		"ReadProxy": {
			"bytecode": "608060405234801561001057600080fd5b506040516104953803806104958339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505061039b806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631627540c1461008657806353a47bb7146100ae578063776d1a01146100d257806379ba5097146100f85780638da5cb5b14610100578063d4b8399214610108575b36600080376000803660006002545afa3d6000803e80610081573d6000fd5b3d6000f35b6100ac6004803603602081101561009c57600080fd5b50356001600160a01b0316610110565b005b6100b661016c565b604080516001600160a01b039092168252519081900360200190f35b6100ac600480360360208110156100e857600080fd5b50356001600160a01b031661017b565b6100ac6101dd565b6100b6610299565b6100b66102a8565b6101186102b7565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6001546001600160a01b031681565b6101836102b7565b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e916020908290030190a150565b6001546001600160a01b031633146102265760405162461bcd60e51b81526004018080602001828103825260358152602001806103036035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146103005760405162461bcd60e51b815260040180806020018281038252602f815260200180610338602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820ec33b07eb64066b2e5328105d4784d2ab1a60cad0e45a4adc759a7642e53677d64736f6c63430005100032",
			"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": "0xfa3574af9cfe181f5b69f41b9f1328ad7f3a65307e3e94766167d1665a1d5d4f",
				"urls": [
					"bzz-raw://57e87bcbcb689e125d24c9eb5e7da042278b01f56230a6871d4feeb37980a9bf",
					"dweb:/ipfs/QmNZg7UgJ9tL4Rjb3fMF2dab4ped2BpMfhm1A7yBSSSy2t"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ReadProxy.sol": "ReadProxy"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ReadProxy.sol": {
						"keccak256": "0xfa3574af9cfe181f5b69f41b9f1328ad7f3a65307e3e94766167d1665a1d5d4f",
						"urls": [
							"bzz-raw://57e87bcbcb689e125d24c9eb5e7da042278b01f56230a6871d4feeb37980a9bf",
							"dweb:/ipfs/QmNZg7UgJ9tL4Rjb3fMF2dab4ped2BpMfhm1A7yBSSSy2t"
						]
					}
				},
				"version": 1
			}
		},
		"SingleNetworkAggregatorIssuedSynths": {
			"bytecode": "608060405234801561001057600080fd5b506040516107803803806107808339818101604052602081101561003357600080fd5b5051803380610089576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b03929092169190911790555061066e806101126000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638da5cb5b1161008c578063b5ab58dc11610066578063b5ab58dc146101f5578063b633620c14610212578063ec5c889d1461022f578063feaf968c14610237576100cf565b80638da5cb5b146101685780639a6fc8f514610170578063b00a84c9146101d8576100cf565b806304f3bcec146100d45780631627540c146100f8578063313ce5671461012057806353a47bb71461013e578063668a0f021461014657806379ba509714610160575b600080fd5b6100dc61023f565b604080516001600160a01b039092168252519081900360200190f35b61011e6004803603602081101561010e57600080fd5b50356001600160a01b031661024e565b005b6101286102aa565b6040805160ff9092168252519081900360200190f35b6100dc6102af565b61014e6102be565b60408051918252519081900360200190f35b61011e6102c3565b6100dc61037f565b6101996004803603602081101561018657600080fd5b503569ffffffffffffffffffff1661038e565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b61011e600480360360208110156101ee57600080fd5b50356104ec565b61014e6004803603602081101561020b57600080fd5b503561052f565b61014e6004803603602081101561022857600080fd5b5035610545565b61014e61055b565b610199610561565b6002546001600160a01b031681565b61025661058a565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600090565b6001546001600160a01b031681565b600190565b6001546001600160a01b0316331461030c5760405162461bcd60e51b81526004018080602001828103825260358152602001806105d66035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546040805163dacb2d0160e01b81526524b9b9bab2b960d11b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b60648201529051600092839283928392839283926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561041957600080fd5b505afa15801561042d573d6000803e3d6000fd5b505050506040513d602081101561044357600080fd5b505160408051637b1001b760e01b8152631bd554d160e21b60048201526001602482015290516001600160a01b0390921691637b1001b791604480820192602092909190829003018186803b15801561049b57600080fd5b505afa1580156104af573d6000803e3d6000fd5b505050506040513d60208110156104c557600080fd5b50516003549091504290156104d957506003545b6001989197509550859450879350915050565b6104f461058a565b60038190556040805182815290517f0c353e7b16d02337ff57a02fe5b0a5506fa6f85187948be32d182e393b99a8f29181900360200190a150565b600061053a8261038e565b509195945050505050565b60006105508261038e565b509095945050505050565b60035481565b60008060008060006105796105746102be565b61038e565b945094509450945094509091929394565b6000546001600160a01b031633146105d35760405162461bcd60e51b815260040180806020018281038252602f81526020018061060b602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582019f84758515f6c1d28620be12ed8d3754e61a8aacf9acad70f39a2970752e9dc64736f6c63430005100032",
			"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": 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": "0xc5acb2ca9ea330d012ea9362569647190a2bb53c110e0ae5f98129038c0a7720",
				"urls": [
					"bzz-raw://7a94cd0d215945c0a1a7f0aa16c87e50c6e1bed3ae6142035399ab633a897904",
					"dweb:/ipfs/QmQ3YUegzRTYhpcMBdwCBRboFyvf7AHphGfWDL5Au9VZMg"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SingleNetworkAggregatorIssuedSynths.sol": "SingleNetworkAggregatorIssuedSynths"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SingleNetworkAggregatorIssuedSynths.sol": {
						"keccak256": "0xc5acb2ca9ea330d012ea9362569647190a2bb53c110e0ae5f98129038c0a7720",
						"urls": [
							"bzz-raw://7a94cd0d215945c0a1a7f0aa16c87e50c6e1bed3ae6142035399ab633a897904",
							"dweb:/ipfs/QmQ3YUegzRTYhpcMBdwCBRboFyvf7AHphGfWDL5Au9VZMg"
						]
					}
				},
				"version": 1
			}
		},
		"SingleNetworkAggregatorDebtRatio": {
			"bytecode": "608060405234801561001057600080fd5b50604051610a32380380610a328339818101604052602081101561003357600080fd5b5051803380610089576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b039290921691909117905550610920806101126000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638da5cb5b1161008c578063b5ab58dc11610066578063b5ab58dc146101f5578063b633620c14610212578063ec5c889d1461022f578063feaf968c14610237576100cf565b80638da5cb5b146101685780639a6fc8f514610170578063b00a84c9146101d8576100cf565b806304f3bcec146100d45780631627540c146100f8578063313ce5671461012057806353a47bb71461013e578063668a0f021461014657806379ba509714610160575b600080fd5b6100dc61023f565b604080516001600160a01b039092168252519081900360200190f35b61011e6004803603602081101561010e57600080fd5b50356001600160a01b031661024e565b005b6101286102aa565b6040805160ff9092168252519081900360200190f35b6100dc6102af565b61014e6102be565b60408051918252519081900360200190f35b61011e6102c3565b6100dc61037f565b6101996004803603602081101561018657600080fd5b503569ffffffffffffffffffff1661038e565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b61011e600480360360208110156101ee57600080fd5b503561063f565b61014e6004803603602081101561020b57600080fd5b5035610682565b61014e6004803603602081101561022857600080fd5b5035610698565b61014e6106ae565b6101996106b4565b6002546001600160a01b031681565b6102566106dd565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600090565b6001546001600160a01b031681565b600190565b6001546001600160a01b0316331461030c5760405162461bcd60e51b81526004018080602001828103825260358152602001806108676035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546040805163dacb2d0160e01b81526524b9b9bab2b960d11b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b60648201529051600092839283928392839283926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561041957600080fd5b505afa15801561042d573d6000803e3d6000fd5b505050506040513d602081101561044357600080fd5b505160408051637b1001b760e01b8152631bd554d160e21b60048201526001602482015290516001600160a01b0390921691637b1001b791604480820192602092909190829003018186803b15801561049b57600080fd5b505afa1580156104af573d6000803e3d6000fd5b505050506040513d60208110156104c557600080fd5b50516002546040805163dacb2d0160e01b81526d4f696b6f7344656274536861726560901b6004820152602481018290526013604482015272616767726567617465206465627420696e666f60681b606482015290519293506000926001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561055357600080fd5b505afa158015610567573d6000803e3d6000fd5b505050506040513d602081101561057d57600080fd5b5051604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b1580156105c157600080fd5b505afa1580156105d5573d6000803e3d6000fd5b505050506040513d60208110156105eb57600080fd5b5051905060008115610615576106108261060485610728565b9063ffffffff61074416565b610618565b60005b60035490915042901561062a57506003545b60019a91995097508796508995509350505050565b6106476106dd565b60038190556040805182815290517f0c353e7b16d02337ff57a02fe5b0a5506fa6f85187948be32d182e393b99a8f29181900360200190a150565b600061068d8261038e565b509195945050505050565b60006106a38261038e565b509095945050505050565b60035481565b60008060008060006106cc6106c76102be565b61038e565b945094509450945094509091929394565b6000546001600160a01b031633146107265760405162461bcd60e51b815260040180806020018281038252602f81526020018061089c602f913960400191505060405180910390fd5b565b600061073e82633b9aca0063ffffffff61076016565b92915050565b60006107598383670de0b6b3a76400006107b9565b9392505050565b60008261076f5750600061073e565b8282028284828161077c57fe5b04146107595760405162461bcd60e51b81526004018080602001828103825260218152602001806108cb6021913960400191505060405180910390fd5b6000806107df846107d387600a870263ffffffff61076016565b9063ffffffff6107fc16565b90506005600a8206106107f057600a015b600a9004949350505050565b6000808211610852576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161085d57fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820eb29b81b85dc92ad5b83d61aaf2e438fdeab297b6b4f2bc0603a71604178dcef64736f6c63430005100032",
			"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": 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": "0x61db289fc560ab193736f0ff29d717da666419492310988c4c5ce09352940f8b",
				"urls": [
					"bzz-raw://46c219d87d86ff3a0474c46c8baf7bb2157acaa1205a9a467690c6c7032997ad",
					"dweb:/ipfs/QmcwggyyGv2zz4Df9Qz65ZD9tS7YgH691m2gg7gB5YWPh9"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SingleNetworkAggregatorDebtRatio.sol": "SingleNetworkAggregatorDebtRatio"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SingleNetworkAggregatorDebtRatio.sol": {
						"keccak256": "0x61db289fc560ab193736f0ff29d717da666419492310988c4c5ce09352940f8b",
						"urls": [
							"bzz-raw://46c219d87d86ff3a0474c46c8baf7bb2157acaa1205a9a467690c6c7032997ad",
							"dweb:/ipfs/QmcwggyyGv2zz4Df9Qz65ZD9tS7YgH691m2gg7gB5YWPh9"
						]
					}
				},
				"version": 1
			}
		},
		"FlexibleStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516127833803806127838339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561271e806100656000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80638ca0adaf116100f9578063c89eb56211610097578063d994502d11610071578063d994502d146109c2578063f7833c5d146109f9578063f9c39d2f14610a1c578063fdfc4c1314610ae1576101c3565b8063c89eb562146108b7578063d658d2e91461097c578063d71a9b0114610999576101c3565b8063ab15985d116100d3578063ab15985d146106e5578063b67fa7ed146107aa578063c13a2b0c1461081f578063c4f610ed14610894576101c3565b80638ca0adaf1461062a5780638f6b95a31461069f5780639ee5955a146106c2576101c3565b806335ab2708116101665780634dca0978116101405780634dca0978146105345780635bda91e2146105665780636a59e495146105915780638408a5e5146105b5576101c3565b806335ab2708146104215780633bd6ad89146104445780633f28a6fc14610509576101c3565b80631625e3ef116101a25780631625e3ef1461037d57806318f662ed146103a05780631d5b277f146103c357806323257c2b146103ec576101c3565b80624b62d6146101c857806303cdc017146101f3578063142a391e146102b8575b600080fd5b6101f1600480360360608110156101de57600080fd5b5080359060208101359060400135610b04565b005b6101f16004803603606081101561020957600080fd5b81359190810190604081016020820135600160201b81111561022a57600080fd5b82018360208201111561023c57600080fd5b803590602001918460208302840111600160201b8311171561025d57600080fd5b919390929091602081019035600160201b81111561027a57600080fd5b82018360208201111561028c57600080fd5b803590602001918460208302840111600160201b831117156102ad57600080fd5b509092509050610bf4565b61032d600480360360408110156102ce57600080fd5b81359190810190604081016020820135600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b509092509050610d60565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610369578181015183820152602001610351565b505050509050019250505060405180910390f35b6101f16004803603604081101561039357600080fd5b5080359060200135610e07565b6101f1600480360360408110156103b657600080fd5b5080359060200135610f7b565b6101f1600480360360608110156103d957600080fd5b50803590602081013590604001356110e4565b61040f6004803603604081101561040257600080fd5b50803590602001356111cd565b60408051918252519081900360200190f35b6101f16004803603604081101561043757600080fd5b50803590602001356111f4565b6101f16004803603606081101561045a57600080fd5b81359190810190604081016020820135600160201b81111561047b57600080fd5b82018360208201111561048d57600080fd5b803590602001918460208302840111600160201b831117156104ae57600080fd5b919390929091602081019035600160201b8111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460208302840111600160201b831117156104fe57600080fd5b50909250905061135d565b6101f16004803603606081101561051f57600080fd5b508035906020810135906040013515156114c8565b6101f16004803603606081101561054a57600080fd5b50803590602081013590604001356001600160a01b03166115b1565b6101f16004803603606081101561057c57600080fd5b5080359060208101359060400135151561169a565b61059961184c565b604080516001600160a01b039092168252519081900360200190f35b61032d600480360360408110156105cb57600080fd5b81359190810190604081016020820135600160201b8111156105ec57600080fd5b8201836020820111156105fe57600080fd5b803590602001918460208302840111600160201b8311171561061f57600080fd5b50909250905061185b565b61032d6004803603604081101561064057600080fd5b81359190810190604081016020820135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b5090925090506118f7565b6101f1600480360360408110156106b557600080fd5b50803590602001356119b3565b610599600480360360408110156106d857600080fd5b5080359060200135611b32565b6101f1600480360360608110156106fb57600080fd5b81359190810190604081016020820135600160201b81111561071c57600080fd5b82018360208201111561072e57600080fd5b803590602001918460208302840111600160201b8311171561074f57600080fd5b919390929091602081019035600160201b81111561076c57600080fd5b82018360208201111561077e57600080fd5b803590602001918460208302840111600160201b8311171561079f57600080fd5b509092509050611b62565b61032d600480360360408110156107c057600080fd5b81359190810190604081016020820135600160201b8111156107e157600080fd5b8201836020820111156107f357600080fd5b803590602001918460208302840111600160201b8311171561081457600080fd5b509092509050611cc4565b61032d6004803603604081101561083557600080fd5b81359190810190604081016020820135600160201b81111561085657600080fd5b82018360208201111561086857600080fd5b803590602001918460208302840111600160201b8311171561088957600080fd5b509092509050611d60565b61040f600480360360408110156108aa57600080fd5b5080359060200135611e0e565b6101f1600480360360608110156108cd57600080fd5b81359190810190604081016020820135600160201b8111156108ee57600080fd5b82018360208201111561090057600080fd5b803590602001918460208302840111600160201b8311171561092157600080fd5b919390929091602081019035600160201b81111561093e57600080fd5b82018360208201111561095057600080fd5b803590602001918460208302840111600160201b8311171561097157600080fd5b509092509050611e35565b61040f6004803603602081101561099257600080fd5b5035611f97565b6101f1600480360360608110156109af57600080fd5b5080359060208101359060400135611fa9565b6109e5600480360360408110156109d857600080fd5b5080359060200135612092565b604080519115158252519081900360200190f35b61040f60048036036040811015610a0f57600080fd5b50803590602001356120bc565b6101f160048036036060811015610a3257600080fd5b81359190810190604081016020820135600160201b811115610a5357600080fd5b820183602082011115610a6557600080fd5b803590602001918460208302840111600160201b83111715610a8657600080fd5b919390929091602081019035600160201b811115610aa357600080fd5b820183602082011115610ab557600080fd5b803590602001918460208302840111600160201b83111715610ad657600080fd5b5090925090506120e3565b6101f160048036036040811015610af757600080fd5b5080359060200135612247565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610b6d57600080fd5b505afa158015610b81573d6000803e3d6000fd5b505050506040513d6020811015610b9757600080fd5b505190506001600160a01b0381163314610be25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed8585856123b0565b5050505050565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610c5d57600080fd5b505afa158015610c71573d6000803e3d6000fd5b505050506040513d6020811015610c8757600080fd5b505190506001600160a01b0381163314610cd25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314610d14576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657610d4e88888884818110610d2f57fe5b90506020020135878785818110610d4257fe5b90506020020135612421565b600101610d17565b5050505050505050565b60608083839050604051908082528060200260200182016040528015610d90578160200160208202803883390190505b506000868152600160209081526040808320548352600390915281209192505b84811015610dfc57816000878784818110610dc757fe5b90506020020135815260200190815260200160002054838281518110610de957fe5b6020908102919091010152600101610db0565b509095945050505050565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610e7057600080fd5b505afa158015610e84573d6000803e3d6000fd5b505050506040513d6020811015610e9a57600080fd5b505190506001600160a01b0381163314610ee55760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526005825280832086845282529182902054825187815291820186905260ff168015158284015291517f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c9181900360600190a15050506000918252600160209081526040808420548452600582528084209284529190529020805460ff19169055565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b505050506040513d602081101561100e57600080fd5b505190506001600160a01b03811633146110595760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526002825280832086845282529182902054825187815291820186905281830181905291517f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d46629181900360600190a1505050600091825260016020908152604080842054845260028252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d602081101561117757600080fd5b505190506001600160a01b03811633146111c25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612421565b60009182526001602090815260408084205484526002825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d602081101561128757600080fd5b505190506001600160a01b03811633146112d25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526006825280832086845282529182902054825187815291820186905281830181905291517f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd939181900360600190a1505050600091825260016020908152604080842054845260068252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156113c657600080fd5b505afa1580156113da573d6000803e3d6000fd5b505050506040513d60208110156113f057600080fd5b505190506001600160a01b038116331461143b5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b84831461147d576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d56576114c08888888481811061149857fe5b905060200201358787858181106114ab57fe5b905060200201356001600160a01b0316612492565b600101611480565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561153157600080fd5b505afa158015611545573d6000803e3d6000fd5b505050506040513d602081101561155b57600080fd5b505190506001600160a01b03811633146115a65760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561251b565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561161a57600080fd5b505afa15801561162e573d6000803e3d6000fd5b505050506040513d602081101561164457600080fd5b505190506001600160a01b038116331461168f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612492565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b505190506001600160a01b03811633146117785760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000858152600160205260409020546117d8576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206d69677261746520656d70747920636f6e7472616374000000604482015290519081900360640190fd5b600085815260016020526040808220548683529120558215611804576000858152600160205260408120555b60408051868152602081018690528415158183015290517fa3db9c909daa141b61562c797dae4dc4b3d7751686068c98111db87b2a8c374c9181900360600190a15050505050565b6000546001600160a01b031681565b6060808383905060405190808252806020026020018201604052801561188b578160200160208202803883390190505b506000868152600160209081526040808320548352600690915281209192505b84811015610dfc578160008787848181106118c257fe5b905060200201358152602001908152602001600020548382815181106118e457fe5b60209081029190910101526001016118ab565b60608083839050604051908082528060200260200182016040528015611927578160200160208202803883390190505b506000868152600160209081526040808320548352600490915281209192505b84811015610dfc5781600087878481811061195e57fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b031683828151811061199357fe5b6001600160a01b0390921660209283029190910190910152600101611947565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d6020811015611a4657600080fd5b505190506001600160a01b0381163314611a915760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000848152600160209081526040808320548352600482528083208684528252918290205482518781529182018690526001600160a01b031681830181905291517fec1140277b8f20820dc76b92216489238a207d5f22c964099303820fbd2bdf669181900360600190a1505050600091825260016020908152604080842054845260048252808420928452919052902080546001600160a01b0319169055565b6000918252600160209081526040808420548452600482528084209284529190529020546001600160a01b031690565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611bcb57600080fd5b505afa158015611bdf573d6000803e3d6000fd5b505050506040513d6020811015611bf557600080fd5b505190506001600160a01b0381163314611c405760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611c82576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611cbc88888884818110611c9d57fe5b90506020020135878785818110611cb057fe5b9050602002013561259a565b600101611c85565b60608083839050604051908082528060200260200182016040528015611cf4578160200160208202803883390190505b506000868152600160209081526040808320548352600290915281209192505b84811015610dfc57816000878784818110611d2b57fe5b90506020020135815260200190815260200160002054838281518110611d4d57fe5b6020908102919091010152600101611d14565b60608083839050604051908082528060200260200182016040528015611d90578160200160208202803883390190505b506000868152600160209081526040808320548352600590915281209192505b84811015610dfc57816000878784818110611dc757fe5b90506020020135815260200190815260200160002060009054906101000a900460ff16838281518110611df657fe5b91151560209283029190910190910152600101611db0565b60009182526001602090815260408084205484526003825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611e9e57600080fd5b505afa158015611eb2573d6000803e3d6000fd5b505050506040513d6020811015611ec857600080fd5b505190506001600160a01b0381163314611f135760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611f55576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611f8f88888884818110611f7057fe5b90506020020135878785818110611f8357fe5b905060200201356123b0565b600101611f58565b60016020526000908152604090205481565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b505190506001600160a01b03811633146120875760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561259a565b60009182526001602090815260408084205484526005825280842092845291905290205460ff1690565b60009182526001602090815260408084205484526006825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561214c57600080fd5b505afa158015612160573d6000803e3d6000fd5b505050506040513d602081101561217657600080fd5b505190506001600160a01b03811633146121c15760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314612203576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d565761223f8888888481811061221e57fe5b9050602002013587878581811061223157fe5b90506020020135151561251b565b600101612206565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156122b057600080fd5b505afa1580156122c4573d6000803e3d6000fd5b505050506040513d60208110156122da57600080fd5b505190506001600160a01b03811633146123255760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526003825280832086845282529182902054825187815291820186905281830181905291517f78962c711b5655608c554689ba42e4890d9e5d3f590b99842612ad39cd7ae0ae9181900360600190a1505050600091825260016020908152604080842054845260038252808420928452919052812055565b80600660006123be8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f961abb018d8a303304c9f1ff1f306c7493a8b68b381bbe4e9a3abf9588a952809181900360600190a1505050565b806002600061242f8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f60738523f766167cfd2310c61593dc795bc9d77de9276ed7e0c514df55e0a2c99181900360600190a1505050565b80600460006124a08661260b565b815260208082019290925260409081016000908120868252835281902080546001600160a01b0319166001600160a01b0394851617905580518681529182018590529183168183015290517f524fb430ecbfd4606a947f9ae445dbf7c9703944cf928789b86f3a8aad639365916060908290030190a1505050565b80600560006125298661260b565b8152602080820192909252604090810160009081208682528352819020805460ff19169315159390931790925581518581529081018490528215158183015290517f9c94ad4cfff55907724cb65340f342d3897dd884e6cd3c2d3777087191d5eb7b916060908290030190a1505050565b80600360006125a88661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f0d8877f604dfe262a8ac3904781814f022156c9341af779608a2ae0beef1906c9181900360600190a1505050565b6000818152600160205260408120548061266d5750604080513360601b60208083019190915260348201859052436054808401919091528351808403909101815260749092018352815191810191909120600085815260019092529190208190555b9291505056fe43616e6e6f742066696e6420636f6e747261637420696e2041646472657373205265736f6c76657243616e206f6e6c7920626520696e766f6b65642062792074686520636f6e6669677572656420636f6e7472616374496e707574206c656e67746873206d757374206d617463680000000000000000a265627a7a723158203a713f15cdf6cdcb9ef10004b322dc43222f52877e28fb1f176e147c274ef67764736f6c63430005100032",
			"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": "0x20675b2ebaf72a8b961383fc41cbb7ce4a9a058f3b8cd8d9d8a6cb55f27aa11b",
				"urls": [
					"bzz-raw://276e1a37c95c0d99905ea01f9985668ca6f77e0da6af941b371cac07b8867601",
					"dweb:/ipfs/QmdSuKxj5FS8ppZSDgWieDSi6isyjZPRx5qUFXQZosaXop"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FlexibleStorage.sol": "FlexibleStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FlexibleStorage.sol": {
						"keccak256": "0x20675b2ebaf72a8b961383fc41cbb7ce4a9a058f3b8cd8d9d8a6cb55f27aa11b",
						"urls": [
							"bzz-raw://276e1a37c95c0d99905ea01f9985668ca6f77e0da6af941b371cac07b8867601",
							"dweb:/ipfs/QmdSuKxj5FS8ppZSDgWieDSi6isyjZPRx5qUFXQZosaXop"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettings": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162004cf038038062004cf0833981810160405260408110156200003757600080fd5b5080516020909101518080836001600160a01b0381166200009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15080600260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550505073__$6a024fd1d0d065824004f6878746fc5d0d$__6375d0c0dc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200016657600080fd5b505af41580156200017b573d6000803e3d6000fd5b505050506040513d60208110156200019257600080fd5b50516d53797374656d53657474696e677360901b14620001f9576040805162461bcd60e51b815260206004820152601d60248201527f7265616420616e64207772697465206b657973206e6f7420657175616c000000604482015290519081900360640190fd5b5050614ae5806200020b6000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c8063741853601161024c578063a777155611610146578063d8ee8208116100c3578063e7894da111610087578063e7894da114610c1d578063e942204614610c3a578063f081da8514610c57578063f216310714610c7a578063f867e76714610c975761045f565b8063d8ee820814610b9e578063d954bc0214610bbb578063dad0ab0f14610be7578063dc8f4a1b14610bef578063e0e6393d14610c155761045f565b8063bcf7eeac1161010a578063bcf7eeac14610b19578063c193f0d814610b21578063c52f35fe14610b29578063c7b481bd14610b55578063cc754a4c14610b815761045f565b8063a777155614610aa3578063af5355d814610ac0578063b16e450f14610ac8578063b410a03414610af4578063b7ab13f214610afc5761045f565b806389257117116101d4578063967706e911610198578063967706e914610a2d57806397a4aca014610a4a5780639d4e186d14610a67578063a0cf745114610a93578063a4bca13114610a9b5761045f565b806389257117146109a0578063899ffef4146109a85780638da5cb5b14610a00578063922fef0814610a08578063946ce8cd14610a105761045f565b806379cb657a1161021b57806379cb657a1461090c5780637bf82305146109295780637d708a461461094f5780637f3b293c1461096c5780638326470c146109745761045f565b806374185360146108bc57806375aca321146108c4578063767da3dc146108e157806379ba5097146109045761045f565b806328a1170d1161035d578063510242bc116102e5578063614d08f8116102a9578063614d08f81461084c5780636190dd7a14610854578063635a3872146108715780636a2b91511461088e5780637066871f146108965761045f565b8063510242bc146107dc57806353a47bb7146107e45780635d14928f146107ec5780635d467d6a146108095780635e0117d61461082f5761045f565b8063372a395a1161032c578063372a395a14610773578063393d334f1461077b5780634328a925146107985780634641ab66146107b55780634c36b837146107d45761045f565b806328a1170d1461065257806329a022ba146107145780632af64bd31461073a5780632cce0e54146107565761045f565b80631627540c116103eb57806322425fa4116103af57806322425fa41461060057806323f5589a14610608578063242df9e11461061057806325539dd2146106185780632806a743146106355761045f565b80631627540c146105725780631775765f146105985780631e6e2190146105a0578063214bf9e5146105bd57806321d9eba6146105e35761045f565b806309e514a41161043257806309e514a4146104f65780630ee4951b1461051c5780630f27b78814610524578063105570201461052c57806313d825b21461054f5761045f565b8063038e47fe1461046457806304c49f2c1461049657806304f3bcec146104b5578063054be0b7146104d9575b600080fd5b6104846004803603602081101561047a57600080fd5b503560ff16610c9f565b60408051918252519081900360200190f35b6104b3600480360360208110156104ac57600080fd5b5035610cb2565b005b6104bd610d8d565b604080516001600160a01b039092168252519081900360200190f35b6104b3600480360360208110156104ef57600080fd5b5035610d9c565b6104846004803603602081101561050c57600080fd5b50356001600160a01b0316610e73565b610484610e7e565b610484610e8e565b6104b36004803603604081101561054257600080fd5b5080359060200135610e98565b6104b36004803603604081101561056557600080fd5b5080359060200135610f8e565b6104b36004803603602081101561058857600080fd5b50356001600160a01b031661107c565b6104846110d8565b6104b3600480360360208110156105b657600080fd5b50356110e2565b610484600480360360208110156105d357600080fd5b50356001600160a01b03166111c9565b6104b3600480360360208110156105f957600080fd5b50356111d4565b610484611300565b61048461130a565b610484611314565b6104846004803603602081101561062e57600080fd5b503561131e565b6104b36004803603602081101561064b57600080fd5b5035611329565b6104b36004803603604081101561066857600080fd5b81019060208101813564010000000081111561068357600080fd5b82018360208201111561069557600080fd5b803590602001918460208302840111640100000000831117156106b757600080fd5b9193909290916020810190356401000000008111156106d557600080fd5b8201836020820111156106e757600080fd5b8035906020019184602083028401116401000000008311171561070957600080fd5b509092509050611405565b6104846004803603602081101561072a57600080fd5b50356001600160a01b0316611593565b61074261159e565b604080519115158252519081900360200190f35b6104b36004803603602081101561076c57600080fd5b50356116a8565b61048461179a565b6104b36004803603602081101561079157600080fd5b50356117a4565b6104b3600480360360208110156107ae57600080fd5b5035611883565b6104b3600480360360208110156107cb57600080fd5b503515156119b7565b6104bd611a99565b610484611aa3565b6104bd611ab3565b6104b36004803603602081101561080257600080fd5b5035611ac2565b6104846004803603602081101561081f57600080fd5b50356001600160a01b0316611ba3565b6104b36004803603602081101561084557600080fd5b5035611bae565b610484611c88565b6104b36004803603602081101561086a57600080fd5b5035611cff565b6104b36004803603602081101561088757600080fd5b5035611dde565b610484611eb9565b610484600480360360208110156108ac57600080fd5b50356001600160a01b0316611ec3565b6104b3611ece565b6104b3600480360360208110156108da57600080fd5b5035612096565b6104b3600480360360408110156108f757600080fd5b5080359060200135612177565b6104b3612261565b6104b36004803603602081101561092257600080fd5b503561231d565b6104b36004803603602081101561093f57600080fd5b50356001600160a01b03166123f6565b6104b36004803603602081101561096557600080fd5b50356124df565b6104846125b9565b6104b36004803603604081101561098a57600080fd5b506001600160a01b0381351690602001356125cc565b6104846126ad565b6109b06126b7565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156109ec5781810151838201526020016109d4565b505050509050019250505060405180910390f35b6104bd612708565b610484612717565b6104b360048036036020811015610a2657600080fd5b5035612721565b61048460048036036020811015610a4357600080fd5b503561282c565b61048460048036036020811015610a6057600080fd5b5035612837565b6104b360048036036040811015610a7d57600080fd5b506001600160a01b038135169060200135612842565b61048461296c565b610484612976565b61048460048036036020811015610ab957600080fd5b5035612980565b61048461298b565b6104b360048036036040811015610ade57600080fd5b506001600160a01b038135169060200135612995565b610484612a87565b61048460048036036020811015610b1257600080fd5b5035612a91565b610484612a9c565b610742612aa6565b6104b360048036036040811015610b3f57600080fd5b50803590602001356001600160a01b0316612ab0565b6104b360048036036040811015610b6b57600080fd5b506001600160a01b038135169060200135612bae565b6104b360048036036020811015610b9757600080fd5b5035612c90565b6104b360048036036020811015610bb457600080fd5b5035612d6c565b6104b360048036036040811015610bd157600080fd5b506001600160a01b038135169060200135612e49565b610484612f73565b6104b360048036036040811015610c0557600080fd5b5060ff8135169060200135612f86565b610484613082565b6104b360048036036020811015610c3357600080fd5b503561308c565b6104b360048036036020811015610c5057600080fd5b503561316d565b6104b360048036036040811015610c6d57600080fd5b5080359060200135613247565b6104bd60048036036020811015610c9057600080fd5b5035613338565b610484613343565b6000610caa82613356565b90505b919050565b610cba6133f3565b610cc261343e565b604080516363daca0960e01b81526001600160a01b03929092166004830152703332b2a832b934b7b2223ab930ba34b7b760791b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916363daca09916064808301926000929190829003018186803b158015610d3e57600080fd5b505af4158015610d52573d6000803e3d6000fd5b50506040805184815290517f791bd58dd9719b5eb5ccdd6ec4d5c459b0ab8efcf59b723cf477693c0889eacd9350908190036020019150a150565b6002546001600160a01b031681565b610da46133f3565b610dac61343e565b60408051636d4851f160e01b81526001600160a01b039290921660048301526c69737375616e6365526174696f60981b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91636d4851f1916064808301926000929190829003018186803b158015610e2457600080fd5b505af4158015610e38573d6000803e3d6000fd5b50506040805184815290517f63b22e09cc3a33e847c063e35f887bd4ea96bc8c0f93f1f8c311e4fa6d8854529350908190036020019150a150565b6000610caa8261345b565b6000610e88613514565b90505b90565b6000610e8861359d565b610ea06133f3565b610ea861343e565b60408051635d3045ab60e01b81526001600160a01b039290921660048301527f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91635d3045ab916084808301926000929190829003018186803b158015610f3757600080fd5b505af4158015610f4b573d6000803e3d6000fd5b5050604080518581526020810185905281517f98698e41d9ebb66410ec490ae1224f1b8d1766696d7217fa96e067de3ef5332a9450908190039091019150a15050565b610f966133f3565b610f9e61343e565b60408051638134ddb760e01b81526001600160a01b039290921660048301527461746f6d696345786368616e67654665655261746560581b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91638134ddb7916084808301926000929190829003018186803b15801561102557600080fd5b505af4158015611039573d6000803e3d6000fd5b5050604080518581526020810185905281517f84023d924a8ccb4a028f052967ed7e1e642279c24150e018962f0779021fce4c9450908190039091019150a15050565b6110846133f3565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000610e8861361a565b6110ea6133f3565b6110f261343e565b60408051630e7bf1c560e01b81526001600160a01b039290921660048301527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91630e7bf1c5916064808301926000929190829003018186803b15801561117a57600080fd5b505af415801561118e573d6000803e3d6000fd5b50506040805184815290517f6e65c7d32a9129ebc4e4e6d755e2a9668753c046f4b128ac8aeb4f3e5446a1e59350908190036020019150a150565b6000610caa82613690565b6111dc6133f3565b80611226576040805162461bcd60e51b815260206004820152601560248201527405468726573686f6c642063616e6e6f74206265203605c1b604482015290519081900360640190fd5b61122e61343e565b6001600160a01b0316631d5b277f600080516020614a918339815191527f65786368616e676544796e616d69634665655468726573686f6c640000000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b1580156112b157600080fd5b505af11580156112c5573d6000803e3d6000fd5b50506040805184815290517f0a1c77eb56927959639f898ae5258d25789fe6c36d7958d2c3daf3f1471d42d99350908190036020019150a150565b6000610e88613749565b6000610e886137c0565b6000610e88613838565b6000610caa826138ae565b6113316133f3565b61133961343e565b60408051631faca50560e21b81526001600160a01b03929092166004830152716c69717569646174696f6e50656e616c747960701b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637eb29414916064808301926000929190829003018186803b1580156113b657600080fd5b505af41580156113ca573d6000803e3d6000fd5b50506040805184815290517fbfb22c07314f4682bba789860ceb851eb8cea2d867920332b2a42cf56be5b2e99350908190036020019150a150565b61140d6133f3565b61141561343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__631a5bb1f790916e65786368616e67654665655261746560881b878787876040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b0316815260200186815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509850505050505050505060006040518083038186803b15801561150157600080fd5b505af4158015611515573d6000803e3d6000fd5b506000925050505b8381101561158c577fbbdab54f0da6d720d21f53e4d6f5bbe83e5a2f74c1354175140ea74f8e90c77e85858381811061155257fe5b9050602002013584848481811061156557fe5b604080519485526020918202939093013590840152508051918290030190a160010161151d565b5050505050565b6000610caa82613957565b600060606115aa6126b7565b905060005b815181101561169f5760008282815181106115c657fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561162e57600080fd5b505afa158015611642573d6000803e3d6000fd5b505050506040513d602081101561165857600080fd5b50516001600160a01b031614158061168557506000818152600360205260409020546001600160a01b0316155b156116965760009350505050610e8b565b506001016115af565b50600191505090565b6116b06133f3565b60006116ba61343e565b6040805162856d3960e51b81526001600160a01b039290921660048301526e1d185c99d95d151a1c995cda1bdb19608a1b6024830152604482018490525173__$6a024fd1d0d065824004f6878746fc5d0d$__916310ada720916064808301926020929190829003018186803b15801561173357600080fd5b505af4158015611747573d6000803e3d6000fd5b505050506040513d602081101561175d57600080fd5b50516040805182815290519192507fb2b3a840c101d8e7f0cf8d80d3868976968714347038fe89b36c5031f94dab12919081900360200190a15050565b6000610e88613a12565b6117ac6133f3565b6117b461343e565b604080516339aafdf360e21b81526001600160a01b039290921660048301527465786368616e67654d617844796e616d696346656560581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163e6abf7cc916064808301926000929190829003018186803b15801561183457600080fd5b505af4158015611848573d6000803e3d6000fd5b50506040805184815290517fd7764866d2b524c8fa50c82668b78d32bf7b46a87e37b891de9dd40853de464f9350908190036020019150a150565b61188b6133f3565b806118dd576040805162461bcd60e51b815260206004820152601860248201527f5765696768742064656361792063616e6e6f7420626520300000000000000000604482015290519081900360640190fd5b6118e561343e565b6001600160a01b0316631d5b277f600080516020614a918339815191527f65786368616e676544796e616d69634665655765696768744465636179000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561196857600080fd5b505af115801561197c573d6000803e3d6000fd5b50506040805184815290517fd80e77b0d087a975f2a783eb806eb9a1e93dab1bf148651d3e70c6e85d740eba9350908190036020019150a150565b6119bf6133f3565b6119c761343e565b60408051633e0ecceb60e11b81526001600160a01b03929092166004830152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b602483015282151560448301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637c1d99d6916064808301926000929190829003018186803b158015611a4857600080fd5b505af4158015611a5c573d6000803e3d6000fd5b505060408051841515815290517fe11c1893b6f97decd3ac13637137734a4b75d159e899e5a8abb48470ab0bc4fd9350908190036020019150a150565b6000610e88613a95565b6000611aad613b11565b51905090565b6001546001600160a01b031681565b611aca6133f3565b611ad261343e565b6040805163064c16cf60e21b81526001600160a01b039290921660048301527661746f6d69634d6178566f6c756d65506572426c6f636b60481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916319305b3c916064808301926000929190829003018186803b158015611b5457600080fd5b505af4158015611b68573d6000803e3d6000fd5b50506040805184815290517ff96e059cb3386bb65fd1d80017c7ce524f813b012d7dc97a1252f9cd4f4c99f39350908190036020019150a150565b6000610caa82613dfb565b611bb66133f3565b611bbe61343e565b60408051632cfaf72960e21b81526001600160a01b039290921660048301526f6c69717569646174696f6e44656c617960801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163b3ebdca4916064808301926000929190829003018186803b158015611c3957600080fd5b505af4158015611c4d573d6000803e3d6000fd5b50506040805184815290517f9917e32433edcb65f8982c1b2c26c3469468308456f93cf34b98c1b0459c53989350908190036020019150a150565b600073__$6a024fd1d0d065824004f6878746fc5d0d$__6375d0c0dc6040518163ffffffff1660e01b815260040160206040518083038186803b158015611cce57600080fd5b505af4158015611ce2573d6000803e3d6000fd5b505050506040513d6020811015611cf857600080fd5b5051905090565b611d076133f3565b611d0f61343e565b6040805163d4aebcef60e01b81526001600160a01b039290921660048301527464656274536e617073686f745374616c6554696d6560581b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163d4aebcef916064808301926000929190829003018186803b158015611d8f57600080fd5b505af4158015611da3573d6000803e3d6000fd5b50506040805184815290517f9795be9f1478ed09e9e47e67318b8aa7a0c0213170403191099bf7dd435fb4d79350908190036020019150a150565b611de66133f3565b611dee61343e565b604080516341a7936f60e11b81526001600160a01b039290921660048301527077616974696e67506572696f645365637360781b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163834f26de916064808301926000929190829003018186803b158015611e6a57600080fd5b505af4158015611e7e573d6000803e3d6000fd5b50506040805184815290517fc32c92cac11e29883e0fb2d9e38230cc510e3bda48abc270b780de60bb8465f89350908190036020019150a150565b6000610e88613eb3565b6000610caa82613f29565b6060611ed86126b7565b905060005b8151811015612092576000828281518110611ef457fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015611faa578181015183820152602001611f92565b50505050905090810190601f168015611fd75780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d602081101561201f57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101611edd565b5050565b61209e6133f3565b6120a661343e565b6040805163fe250a5560e01b81526001600160a01b03929092166004830152766574686572577261707065724d696e744665655261746560481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fe250a55916064808301926000929190829003018186803b15801561212857600080fd5b505af415801561213c573d6000803e3d6000fd5b50506040805184815290517f19ef86e0422ac5c02afdc7b9f91f468ccc5e9b785bf7c158e01357e8503a819b9350908190036020019150a150565b61217f6133f3565b61218761343e565b604080516310e85b6760e11b81526001600160a01b039290921660048301527030ba37b6b4b1a83934b1b2a13ab33332b960791b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916321d0b6ce916084808301926000929190829003018186803b15801561220a57600080fd5b505af415801561221e573d6000803e3d6000fd5b5050604080518581526020810185905281517f222824a1a314ba34555e60e4757e25a2d17b32d89f53bcfcac36a996e99c29d29450908190039091019150a15050565b6001546001600160a01b031633146122aa5760405162461bcd60e51b8152600401808060200182810382526035815260200180614a2d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6123256133f3565b61232d61343e565b6040805163fd194a3560e01b81526001600160a01b039290921660048301526e1c985d1954dd185b1954195c9a5bd9608a1b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fd194a35916064808301926000929190829003018186803b1580156123a757600080fd5b505af41580156123bb573d6000803e3d6000fd5b50506040805184815290517f16529d8c407b08938da67de7fa4319199baffce4f5d1971f812cc770b0237e669350908190036020019150a150565b6123fe6133f3565b61240661343e565b604080516330d6e65760e21b81526001600160a01b0392831660048201527561676772656761746f725761726e696e67466c61677360501b602482015291831660448301525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163c35b995c916064808301926000929190829003018186803b15801561248757600080fd5b505af415801561249b573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f0f4cbdee769ea02d5757b91905563555cc648fe42fc3ef201e28d97d2bbde9659350908190036020019150a150565b6124e76133f3565b6124ef61343e565b6040805163067bb56d60e31b81526001600160a01b039290921660048301526f61746f6d69635477617057696e646f7760801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916333ddab68916064808301926000929190829003018186803b15801561256a57600080fd5b505af415801561257e573d6000803e3d6000fd5b50506040805184815290517f61ee2076e20b46130ce31de66f08321493e96f79de0837fb0296b7feca92285b9350908190036020019150a150565b60006125c3613b11565b60400151905090565b6125d46133f3565b6125dc61343e565b60408051631b5238f760e31b81526001600160a01b0392831660048201526e636f6c6c617073654665655261746560881b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163da91c7b8916084808301926000929190829003018186803b15801561265d57600080fd5b505af4158015612671573d6000803e3d6000fd5b50506040805184815290517f7e9498fa8cb2442ec5a6f05b47f4adaafaf286d03a3fa580cc0f3592b60b32359350908190036020019150a15050565b6000610e88613fe4565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106126f957fe5b60200260200101818152505090565b6000546001600160a01b031681565b6000610e8861405b565b6127296133f3565b61273161343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__6311d78c0c90916f6c69717569646174696f6e526174696f60801b846127736137c0565b61277b6140d8565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b031681526020018581526020018481526020018381526020018281526020019550505050505060006040518083038186803b1580156127dd57600080fd5b505af41580156127f1573d6000803e3d6000fd5b50506040805184815290517f5568be83e5cf7405adf8fb39305e2cdf49c43336606d23c3e0d3fe54e205150a9350908190036020019150a150565b6000610caa8261414b565b6000610caa826141ee565b61284a6133f3565b61285261343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__63c404a0de909171777261707065724275726e4665655261746560701b858561289888613957565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019550505050505060006040518083038186803b15801561290c57600080fd5b505af4158015612920573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517f65647551bef307c3b3c3cc08ff4dd60cf02eb1e9e9d20604c5603b90a453e4979450908190039091019150a15050565b6000610e8861429a565b6000610e88614310565b6000610caa8261438d565b6000610e8861443e565b61299d6133f3565b6129a561343e565b60408051631f86e9a960e21b81526001600160a01b0392831660048201526f777261707065724d6178546f6b656e7360801b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__91637e1ba6a4916084808301926000929190829003018186803b158015612a2757600080fd5b505af4158015612a3b573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517fc466f93337e5645290e02cdbed66a95340e81d809b710d8f6de2280de3e27b2f9450908190039091019150a15050565b6000610e886140d8565b6000610caa826144b9565b6000610e8861455e565b6000610e886145d6565b612ab86133f3565b612ac061343e565b60408051635f7ad87160e01b81526001600160a01b0392831660048201527f61746f6d69634571756976616c656e74466f7244657850726963696e6700000060248201526044810185905291831660648301525173__$6a024fd1d0d065824004f6878746fc5d0d$__91635f7ad871916084808301926000929190829003018186803b158015612b4f57600080fd5b505af4158015612b63573d6000803e3d6000fd5b5050604080518581526001600160a01b038516602082015281517fc7cff0a6f47777500050f9a29aac5206e15b25b782d1834a176f3b3b134d4f3a9450908190039091019150a15050565b612bb66133f3565b612bbe61343e565b60408051637dfecb2360e11b81526001600160a01b0392831660048201526f696e746572616374696f6e44656c617960801b60248201529184166044830152606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163fbfd9646916084808301926000929190829003018186803b158015612c4057600080fd5b505af4158015612c54573d6000803e3d6000fd5b50506040805184815290517f4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c23619350908190036020019150a15050565b612c986133f3565b612ca061343e565b60408051630a6c461160e41b81526001600160a01b03929092166004830152710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163a6c46110916064808301926000929190829003018186803b158015612d1d57600080fd5b505af4158015612d31573d6000803e3d6000fd5b50506040805184815290517f8086de8bfec0a6cd9a9213caef7ee137a59e4d8da145de163dc3f244dacddc689350908190036020019150a150565b612d746133f3565b612d7c61343e565b6001600160a01b0316631d5b277f600080516020614a918339815191527765786368616e676544796e616d6963466565526f756e647360401b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015612dfa57600080fd5b505af1158015612e0e573d6000803e3d6000fd5b50506040805184815290517f098d0190950f074545dd4e10dda16c804bd054facc9ed1ec4181e076ab09bd479350908190036020019150a150565b612e516133f3565b612e5961343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__6353c0bf1c909171777261707065724d696e744665655261746560701b8585612e9f88613f29565b6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001846001600160a01b03166001600160a01b031681526020018381526020018281526020019550505050505060006040518083038186803b158015612f1357600080fd5b505af4158015612f27573d6000803e3d6000fd5b5050604080516001600160a01b03861681526020810185905281517ffe7e17467e216f68f8d4a3aea0ab082631afc874fb216e93c38e52a2ddb7ec659450908190039091019150a15050565b6000612f7d613b11565b60200151905090565b612f8e6133f3565b612f9661343e565b6001600160a01b031673__$6a024fd1d0d065824004f6878746fc5d0d$__63f02d9a5b9091612fc485614651565b846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001838152602001828152602001935050505060006040518083038186803b15801561301957600080fd5b505af415801561302d573d6000803e3d6000fd5b505050507fbf62a396f632016f0e0cffedb18ee9be41a161c79cee3b64736b0c97a924554a82826040518083600581111561306457fe5b60ff1681526020018281526020019250505060405180910390a15050565b6000610e886147fa565b6130946133f3565b61309c61343e565b6040805163496d5d7960e11b81526001600160a01b03929092166004830152766574686572577261707065724275726e4665655261746560481b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__916392dabaf2916064808301926000929190829003018186803b15801561311e57600080fd5b505af4158015613132573d6000803e3d6000fd5b50506040805184815290517f1c97c2e8b44aa487062d3e92ce52ac814b35191f4799fd2d5a3f36c67f1d9d4a9350908190036020019150a150565b6131756133f3565b61317d61343e565b6040805163d9158b0360e01b81526001600160a01b039290921660048301526f6d696e696d756d5374616b6554696d6560801b6024830152604482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163d9158b03916064808301926000929190829003018186803b1580156131f857600080fd5b505af415801561320c573d6000803e3d6000fd5b50506040805184815290517f2b0fa66d155c9598699cb6569577f27b95729bbf580268eed39db6bc4e8144779350908190036020019150a150565b61324f6133f3565b61325761343e565b6040805163446ca4fd60e01b81526001600160a01b0392909216600483015277185d1bdb5a58d59bdb155c19185d19551a1c995cda1bdb1960421b602483015260448201849052606482018390525173__$6a024fd1d0d065824004f6878746fc5d0d$__9163446ca4fd916084808301926000929190829003018186803b1580156132e157600080fd5b505af41580156132f5573d6000803e3d6000fd5b5050604080518581526020810185905281517f460476cc6f40e86f19053ba74c9baf4c2cef96452bb2722a454d66db953a7b3d9450908190039091019150a15050565b6000610caa8261486f565b600061334d613b11565b60600151905090565b600061336061343e565b6001600160a01b03166323257c2b600080516020614a9183398151915261338685614651565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b505afa1580156133d5573d6000803e3d6000fd5b505050506040513d60208110156133eb57600080fd5b505192915050565b6000546001600160a01b0316331461343c5760405162461bcd60e51b815260040180806020018281038252602f815260200180614a62602f913960400191505060405180910390fd5b565b6000610e886e466c657869626c6553746f7261676560881b614920565b600061346561343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f696e746572616374696f6e44656c617960801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061351e61343e565b6001600160a01b03166323257c2b600080516020614a918339815191526e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b505afa158015611ce2573d6000803e3d6000fd5b60006135a761343e565b6001600160a01b03166323257c2b600080516020614a91833981519152766574686572577261707065724d696e744665655261746560481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061362461343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061369a61343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f777261707065724d6178546f6b656e7360801b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061375361343e565b6001600160a01b03166323257c2b600080516020614a91833981519152703332b2a832b934b7b2223ab930ba34b7b760791b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006137ca61343e565b6001600160a01b03166323257c2b600080516020614a91833981519152716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061384261343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006138b861343e565b6001600160a01b03166323257c2b600080516020614a918339815191527461746f6d696345786368616e67654665655261746560581b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061396161343e565b6001600160a01b031663c4f610ed600080516020614a9183398151915271777261707065724d696e744665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b6000613a1c61343e565b6001600160a01b03166323257c2b600080516020614a918339815191527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b6000613a9f61343e565b6001600160a01b0316639ee5955a600080516020614a918339815191527561676772656761746f725761726e696e67466c61677360501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b613b19614a04565b60408051600480825260a08201909252606091602082016080803883390190505090507f65786368616e676544796e616d69634665655468726573686f6c64000000000081600081518110613b6a57fe5b6020026020010181815250507f65786368616e676544796e616d6963466565576569676874446563617900000081600181518110613ba457fe5b6020026020010181815250507765786368616e676544796e616d6963466565526f756e647360401b81600281518110613bd957fe5b6020026020010181815250507465786368616e67654d617844796e616d696346656560581b81600381518110613c0b57fe5b6020026020010181815250506060613c2161343e565b6001600160a01b031663b67fa7ed600080516020614a91833981519152846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015613c94578181015183820152602001613c7c565b50505050905001935050505060006040518083038186803b158015613cb857600080fd5b505afa158015613ccc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613cf557600080fd5b8101908080516040519392919084640100000000821115613d1557600080fd5b908301906020820185811115613d2a57600080fd5b8251866020820283011164010000000082111715613d4757600080fd5b82525081516020918201928201910280838360005b83811015613d74578181015183820152602001613d5c565b505050509050016040525050509050604051806080016040528082600081518110613d9b57fe5b6020026020010151815260200182600181518110613db557fe5b6020026020010151815260200182600281518110613dcf57fe5b6020026020010151815260200182600381518110613de957fe5b60200260200101518152509250505090565b6000613e0561343e565b6001600160a01b03166323257c2b600080516020614a918339815191526e636f6c6c617073654665655261746560881b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b6000613ebd61343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f61746f6d69635477617057696e646f7760801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b6000613f3361343e565b6001600160a01b031663c4f610ed600080516020614a9183398151915271777261707065724275726e4665655261746560701b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b6000613fee61343e565b6001600160a01b03166323257c2b600080516020614a918339815191527077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061406561343e565b6001600160a01b03166323257c2b600080516020614a91833981519152766574686572577261707065724275726e4665655261746560481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006140e261343e565b6001600160a01b03166323257c2b600080516020614a918339815191526c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061415561343e565b6001600160a01b03166323257c2b600080516020614a918339815191526e65786368616e67654665655261746560881b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b60006141f861343e565b6001600160a01b03166323257c2b600080516020614a9183398151915277185d1bdb5a58d59bdb155c19185d19551a1c995cda1bdb1960421b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b60006142a461343e565b6001600160a01b03166323257c2b600080516020614a918339815191526f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061431a61343e565b6001600160a01b03166323257c2b600080516020614a918339815191527661746f6d69634d6178566f6c756d65506572426c6f636b60481b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061439761343e565b6001600160a01b03166323257c2b600080516020614a918339815191527f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061444861343e565b6001600160a01b03166323257c2b600080516020614a918339815191527464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006144c361343e565b6001600160a01b03166323257c2b600080516020614a918339815191527030ba37b6b4b1a83934b1b2a13ab33332b960791b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600061456861343e565b6001600160a01b03166323257c2b600080516020614a91833981519152710cae8d0cae4aee4c2e0e0cae49ac2f08aa8960731b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60006145e061343e565b6001600160a01b031663d994502d600080516020614a91833981519152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b60008082600581111561466057fe5b141561468d57507f63726f7373446f6d61696e4465706f7369744761734c696d6974000000000000610cad565b600182600581111561469b57fe5b14156146c857507f63726f7373446f6d61696e457363726f774761734c696d697400000000000000610cad565b60028260058111156146d657fe5b141561470357507f63726f7373446f6d61696e5265776172644761734c696d697400000000000000610cad565b600382600581111561471157fe5b141561473e57507f63726f7373446f6d61696e5769746864726177616c4761734c696d6974000000610cad565b600582600581111561474c57fe5b141561477957507f63726f7373446f6d61696e52656c61794761734c696d69740000000000000000610cad565b600482600581111561478757fe5b14156147b457507f63726f7373446f6d61696e436c6f73654761734c696d69740000000000000000610cad565b6040805162461bcd60e51b8152602060048201526016602482015275556e6b6e6f776e20676173206c696d6974207479706560501b604482015290519081900360640190fd5b600061480461343e565b6001600160a01b03166323257c2b600080516020614a918339815191526e1d185c99d95d151a1c995cda1bdb19608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561358957600080fd5b600061487961343e565b6001600160a01b0316639ee5955a600080516020614a918339815191527f61746f6d69634571756976616c656e74466f7244657850726963696e67000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156133c157600080fd5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816149fd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156149c25781810151838201526020016149aa565b50505050905090810190601f1680156149ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e53797374656d53657474696e6773000000000000000000000000000000000000a265627a7a72315820426f909a32e8eec3214a4bb84a8ab735532347b1b81c66a1037e351ac99628f664736f6c63430005100032",
			"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": "bytes32",
							"name": "synthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newBuffer",
							"type": "uint256"
						}
					],
					"name": "AtomicPriceBufferUpdated",
					"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": "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": "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": "newDelay",
							"type": "uint256"
						}
					],
					"name": "LiquidationDelayUpdated",
					"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": "uint256",
							"name": "rateStalePeriod",
							"type": "uint256"
						}
					],
					"name": "RateStalePeriodUpdated",
					"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": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "atomicPriceBuffer",
					"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": "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": [
						{
							"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": "liquidationDelay",
					"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": [],
					"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": 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": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_buffer",
							"type": "uint256"
						}
					],
					"name": "setAtomicPriceBuffer",
					"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": "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": "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": "time",
							"type": "uint256"
						}
					],
					"name": "setLiquidationDelay",
					"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": "uint256",
							"name": "period",
							"type": "uint256"
						}
					],
					"name": "setRateStalePeriod",
					"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": "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": "0x3799279b0f8d0934ed8ab31d95e52f1bf2304af436316157690e6e5262633b07",
				"urls": [
					"bzz-raw://87981e640ef5f25799dc13a05413b2be0fc147bd97cd193b89385432cee162d8",
					"dweb:/ipfs/QmW4MWqzXLiAAfJbb8wQmEALr9Yp6Tpjk27xDyMv7TZaPi"
				]
			},
			"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": "0x3799279b0f8d0934ed8ab31d95e52f1bf2304af436316157690e6e5262633b07",
						"urls": [
							"bzz-raw://87981e640ef5f25799dc13a05413b2be0fc147bd97cd193b89385432cee162d8",
							"dweb:/ipfs/QmW4MWqzXLiAAfJbb8wQmEALr9Yp6Tpjk27xDyMv7TZaPi"
						]
					}
				},
				"version": 1
			}
		},
		"SystemStatus": {
			"bytecode": "608060405234801561001057600080fd5b506040516127eb3803806127eb8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506126f1806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c806367a280b2116101d3578063abc0bb6e11610104578063e665edf0116100a2578063f405f65a1161007c578063f405f65a14610d4e578063f44d1e0b14610d56578063f4c80f5e14610d5e578063f8b4b08414610d7b57610378565b8063e665edf014610cbb578063e91e691814610d29578063f161620714610d4657610378565b8063c0eee443116100de578063c0eee44314610c0b578063da5917ae14610c13578063de1b885114610c30578063e470df5814610c9e57610378565b8063abc0bb6e14610b5d578063b431c0ea14610b80578063b9a4986914610b9d57610378565b80637fe9b23d1161017157806394c79f741161014b57806394c79f7414610b0c5780639f8a95ba14610b29578063a0aad31c14610b4d578063a55ce9c514610b5557610378565b80637fe9b23d14610a79578063856aae6c14610ae75780638da5cb5b14610b0457610378565b80637118d431116101ad5780637118d43114610a445780637243bc2c14610a4c57806379ba509714610a695780637c31254114610a7157610378565b806367a280b2146108c757806369eaced2146108cf5780636ef5d8411461093d57610378565b80632dd8afdb116102ad5780634abdb44d1161024b57806355585bce1161022557806355585bce1461087757806356c3da451461087f5780636132eba4146108875780636309a10c146108aa57610378565b80634abdb44d146106ed578063517d60c6146106f557806353a47bb71461085357610378565b8063396e258e11610287578063396e258e1461065457806342a28e211461067157806348bf19711461068e5780634a661850146106ca57610378565b80632dd8afdb146106285780632e8d0b9e14610630578063346cde511461064c57610378565b80631ce00ba21161031a57806322264567116102f457806322264567146105725780632366245e146105955780632a647ab71461059d5780632be470901461060b57610378565b80631ce00ba21461049a5780631f4b3401146104bd57806320f2bf001461052b57610378565b80631588e817116103565780631588e817146103a95780631627540c146103c6578063180113bc146103ec5780631cba727c1461042c57610378565b8063086dabd11461037d57806312bde51414610387578063157c51d3146103a1575b600080fd5b610385610d83565b005b61038f610d8d565b60408051918252519081900360200190f35b610385610d9a565b610385600480360360208110156103bf57600080fd5b5035610e04565b610385600480360360208110156103dc57600080fd5b50356001600160a01b0316610e6f565b6104096004803603602081101561040257600080fd5b5035610ecb565b6040805192151583526001600160f81b0390911660208301528051918290030190f35b6103856004803603604081101561044257600080fd5b810190602081018135600160201b81111561045c57600080fd5b82018360208201111561046e57600080fd5b803590602001918460208302840111600160201b8311171561048f57600080fd5b919350915035610ef0565b610385600480360360408110156104b057600080fd5b5080359060200135610f33565b610385600480360360208110156104d357600080fd5b810190602081018135600160201b8111156104ed57600080fd5b8201836020820111156104ff57600080fd5b803590602001918460208302840111600160201b8311171561052057600080fd5b509092509050610f6b565b6105576004803603604081101561054157600080fd5b50803590602001356001600160a01b0316610fa7565b60408051921515835290151560208301528051918290030190f35b6103856004803603604081101561058857600080fd5b5080359060200135610fd0565b610409611016565b610385600480360360408110156105b357600080fd5b810190602081018135600160201b8111156105cd57600080fd5b8201836020820111156105df57600080fd5b803590602001918460208302840111600160201b8311171561060057600080fd5b91935091503561102f565b6103856004803603602081101561062157600080fd5b503561106d565b6104096110d7565b6106386110f0565b604080519115158252519081900360200190f35b61040961111a565b6103856004803603602081101561066a57600080fd5b5035611133565b6103856004803603602081101561068757600080fd5b503561119e565b610385600480360360808110156106a457600080fd5b508035906001600160a01b036020820135169060408101351515906060013515156111b2565b610385600480360360408110156106e057600080fd5b50803590602001356111cc565b61038f611212565b6103856004803603608081101561070b57600080fd5b810190602081018135600160201b81111561072557600080fd5b82018360208201111561073757600080fd5b803590602001918460208302840111600160201b8311171561075857600080fd5b919390929091602081019035600160201b81111561077557600080fd5b82018360208201111561078757600080fd5b803590602001918460208302840111600160201b831117156107a857600080fd5b919390929091602081019035600160201b8111156107c557600080fd5b8201836020820111156107d757600080fd5b803590602001918460208302840111600160201b831117156107f857600080fd5b919390929091602081019035600160201b81111561081557600080fd5b82018360208201111561082757600080fd5b803590602001918460208302840111600160201b8311171561084857600080fd5b509092509050611221565b61085b611312565b604080516001600160a01b039092168252519081900360200190f35b610385611321565b61038f61138c565b6103856004803603604081101561089d57600080fd5b508035906020013561139a565b610385600480360360208110156108c057600080fd5b50356113a2565b6103856113e7565b610385600480360360208110156108e557600080fd5b810190602081018135600160201b8111156108ff57600080fd5b82018360208201111561091157600080fd5b803590602001918460208302840111600160201b8311171561093257600080fd5b509092509050611453565b6109ab6004803603602081101561095357600080fd5b810190602081018135600160201b81111561096d57600080fd5b82018360208201111561097f57600080fd5b803590602001918460208302840111600160201b831117156109a057600080fd5b50909250905061148f565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156109ef5781810151838201526020016109d7565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a2e578181015183820152602001610a16565b5050505090500194505050505060405180910390f35b6103856115b8565b61040960048036036020811015610a6257600080fd5b50356115c8565b6103856115ed565b6103856116a9565b61038560048036036040811015610a8f57600080fd5b810190602081018135600160201b811115610aa957600080fd5b820183602082011115610abb57600080fd5b803590602001918460208302840111600160201b83111715610adc57600080fd5b9193509150356116b9565b61038560048036036020811015610afd57600080fd5b50356116f7565b61085b611718565b61038560048036036020811015610b2257600080fd5b5035611727565b610b3161176c565b604080516001600160f81b039092168252519081900360200190f35b610385611771565b61038f611789565b61038560048036036040811015610b7357600080fd5b508035906020013561179d565b61063860048036036020811015610b9657600080fd5b50356117e3565b6109ab60048036036020811015610bb357600080fd5b810190602081018135600160201b811115610bcd57600080fd5b820183602082011115610bdf57600080fd5b803590602001918460208302840111600160201b83111715610c0057600080fd5b50909250905061180b565b61063861192c565b61038560048036036020811015610c2957600080fd5b5035611935565b61038560048036036020811015610c4657600080fd5b810190602081018135600160201b811115610c6057600080fd5b820183602082011115610c7257600080fd5b803590602001918460208302840111600160201b83111715610c9357600080fd5b509092509050611946565b61038560048036036020811015610cb457600080fd5b5035611982565b6109ab60048036036020811015610cd157600080fd5b810190602081018135600160201b811115610ceb57600080fd5b820183602082011115610cfd57600080fd5b803590602001918460208302840111600160201b83111715610d1e57600080fd5b5090925090506119f7565b61040960048036036020811015610d3f57600080fd5b5035611b18565b61038f611b3d565b610385611b4c565b61038f611bb8565b61038560048036036020811015610d7457600080fd5b5035611bc4565b610409611c09565b610d8b611c22565b565b6553797374656d60d01b81565b610dac6553797374656d60d01b611d01565b6003805460ff191690819055604080516101009092046001600160f81b03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b610e186745786368616e676560c01b611d5e565b600580546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b610e77611db6565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60096020526000908152604090205460ff81169061010090046001600160f81b031682565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611dff915050565b505050565b610f3b611c22565b610f43611ead565b610f4c82611eef565b610f5581611eef565b610f5e82611f3d565b610f6781611f3d565b5050565b610f67828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611f8b92505050565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061100057fe5b602002602001018181525050610f2e8183612033565b60045460ff81169061010090046001600160f81b031682565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612033915050565b611080664675747572657360c81b611d5e565b600680546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fbb77bf6af5bb933d0fb912130167ce25b6debb9c728f232ee4e7c181f16c8e0c9181900360200190a150565b60035460ff81169061010090046001600160f81b031682565b60035460009060ff168015611115575060035461010090046001600160f81b03166001145b905090565b60065460ff81169061010090046001600160f81b031682565b6111476749737375616e636560c01b611d5e565b600480546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b6111a6611c22565b6111af81611f3d565b50565b6111ba611db6565b6111c6848484846120db565b50505050565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106111fc57fe5b602002602001018181525050610f2e8183611dff565b6749737375616e636560c01b81565b611229611db6565b868514801561123757508483145b801561124257508281145b611293576040805162461bcd60e51b815260206004820152601e60248201527f496e707574206172726179206c656e67746873206d757374206d617463680000604482015290519081900360640190fd5b60005b87811015611307576112ff8989838181106112ad57fe5b905060200201358888848181106112c057fe5b905060200201356001600160a01b03168787858181106112dc57fe5b9050602002013515158686868181106112f157fe5b9050602002013515156120db565b600101611296565b505050505050505050565b6001546001600160a01b031681565b611334664675747572657360c81b611d01565b6006805460ff191690819055604080516101009092046001600160f81b03168252517fcbdc17547b5be7fb4a78666d4253509496561d5b1088a019865bd70d7e248fa6916020908290030190a16006805460ff169055565b664675747572657360c81b81565b610f55611c22565b6040805160018082528183019092526060916020808301908038833901905050905081816000815181106113d257fe5b602002602001018181525050610f6781612221565b6113fb6749737375616e636560c01b611d01565b6004805460ff191690819055604080516101009092046001600160f81b03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b610f6782828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061222192505050565b606080838390506040519080825280602002602001820160405280156114bf578160200160208202803883390190505b506040805185815260208087028201019091529092508380156114ec578160200160208202803883390190505b50905060005b838110156115b0576009600086868481811061150a57fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff1683828151811061153c57fe5b911515602092830291909101909101526009600086868481811061155c57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061159d57fe5b60209081029190910101526001016114f2565b509250929050565b6115c0611c22565b610d8b611ead565b60086020526000908152604090205460ff81169061010090046001600160f81b031682565b6001546001600160a01b031633146116365760405162461bcd60e51b81526004018080602001828103825260358152602001806124f76035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6116b1611c22565b610d8b6122cf565b610f2e838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250612311915050565b6116ff611c22565b611707611ead565b61170f6123b7565b6111af816123f9565b6000546001600160a01b031681565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811061175757fe5b602002602001018181525050610f6781612450565b600181565b611779611c22565b611781611ead565b610d8b6123b7565b6c53796e746845786368616e676560981b81565b6040805160018082528183019092526060916020808301908038833901905050905082816000815181106117cd57fe5b602002602001018181525050610f2e8183612311565b60035460009060ff1680611805575060008281526008602052604090205460ff165b92915050565b6060808383905060405190808252806020026020018201604052801561183b578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611868578160200160208202803883390190505b50905060005b838110156115b0576008600086868481811061188657fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff168382815181106118b857fe5b91151560209283029190910190910152600860008686848181106118d857fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b031682828151811061191957fe5b602090810291909101015260010161186e565b60035460ff1690565b61193d611c22565b6111af81611eef565b610f6782828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061245092505050565b6119946553797374656d60d01b611d5e565b600380546001600160f81b0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b60608083839050604051908082528060200260200182016040528015611a27578160200160208202803883390190505b50604080518581526020808702820101909152909250838015611a54578160200160208202803883390190505b50905060005b838110156115b05760076000868684818110611a7257fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff16838281518110611aa457fe5b9115156020928302919091019091015260076000868684818110611ac457fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b0316828281518110611b0557fe5b6020908102919091010152600101611a5a565b60076020526000908152604090205460ff81169061010090046001600160f81b031682565b6745786368616e676560c01b81565b611b606745786368616e676560c01b611d01565b6005805460ff191690819055604080516101009092046001600160f81b03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b640a6f2dce8d60db1b81565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110611bf457fe5b602002602001018181525050610f6781611f8b565b60055460ff81169061010090046001600160f81b031682565b60035460ff8116159061010090046001600160f81b0316600114611c5e5760405180606001604052806028815260200161256660289139611c78565b6040518060600160405280603a815260200161252c603a91395b906111af5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cc6578181015183820152602001611cae565b50505050905090810190601f168015611cf35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600260209081526040808320338452909152902054610100900460ff166111af5760405162461bcd60e51b81526004018080602001828103825260218152602001806126746021913960400191505060405180910390fd5b600081815260026020908152604080832033845290915290205460ff166111af5760405162461bcd60e51b81526004018080602001828103825260218152602001806126746021913960400191505060405180910390fd5b6000546001600160a01b03163314610d8b5760405162461bcd60e51b815260040180806020018281038252602f81526020018061261a602f913960400191505060405180910390fd5b611e186c53796e746845786368616e676560981b611d5e565b60005b8251811015610f2e576000838281518110611e3257fe5b60209081029190910181015160008181526007835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcea0da706e9f2a6a1cb56cdab42ac548791339f1710deadf814f15fc0a6a7114928290030190a150600101611e1b565b60055460ff1615610d8b5760405162461bcd60e51b815260040180806020018281038252602b815260200180612649602b913960400191505060405180910390fd5b60008181526007602052604090205460ff16156111af5760405162461bcd60e51b815260040180806020018281038252602e8152602001806125b9602e913960400191505060405180910390fd5b60008181526008602052604090205460ff16156111af5760405162461bcd60e51b81526004018080602001828103825260288152602001806126956028913960400191505060405180910390fd5b611f9e664675747572657360c81b611d01565b60005b8151811015610f67576000828281518110611fb857fe5b6020908102919091018101516000818152600983526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f250fcb5d34afaf9bc18ec9ca0bf709e0f2ecb8ae4d4a3a616c0bf54b2ddf53e6928290030190a1600090815260096020526040812055600101611fa1565b612046664675747572657360c81b611d5e565b60005b8251811015610f2e57600083828151811061206057fe5b60209081029190910181015160008181526009835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507fcaa561b71353382b62092c429c14613b5db8f9c5f3a27cb51df16e51f350f8ca928290030190a150600101612049565b6553797374656d60d01b8414806120fc57506749737375616e636560c01b84145b8061211157506745786368616e676560c01b84145b806121255750664675747572657360c81b84145b8061213f57506c53796e746845786368616e676560981b84145b806121515750640a6f2dce8d60db1b84145b6121a2576040805162461bcd60e51b815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083206001600160a01b038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b61223a6c53796e746845786368616e676560981b611d01565b60005b8151811015610f6757600082828151811061225457fe5b6020908102919091018101516000818152600783526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f91037f810fbf9c3c6d5573650d27de6b5e8d2187698822700d4524102472bc08928290030190a160009081526007602052604081205560010161223d565b60045460ff1615610d8b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061258e602b913960400191505060405180910390fd5b612322640a6f2dce8d60db1b611d5e565b60005b8251811015610f2e57600083828151811061233c57fe5b60209081029190910181015160008181526008835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507f9cca506f9028bbcc0d976db0eaf80dfe6a6d7cadd99024edd88f690e1eda5541928290030190a150600101612325565b60065460ff1615610d8b5760405162461bcd60e51b81526004018080602001828103825260338152602001806125e76033913960400191505060405180910390fd5b60008181526009602052604090205460ff16156111af576040805162461bcd60e51b815260206004820152601060248201526f13585c9ad95d081cdd5cdc195b99195960821b604482015290519081900360640190fd5b612461640a6f2dce8d60db1b611d01565b60005b8151811015610f6757600082828151811061247b57fe5b6020908102919091018101516000818152600883526040908190205481518381526101009091046001600160f81b03169381019390935280519193507f691b6c9654fa1f01847f7e98a061557ca10378bb9670782b60ed13891703d220928290030190a160009081526008602052604081205560010161246456fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f696b6f732069732073757370656e6465642c207570677261646520696e2070726f67726573732e2e2e20706c65617365207374616e642062794f696b6f732069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656449737375616e63652069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656453796e74682065786368616e67652073757370656e6465642e204f7065726174696f6e2070726f6869626974656446757475726573206d61726b657473206172652073757370656e6465642e204f7065726174696f6e2070726f686962697465644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e45786368616e67652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465645265737472696374656420746f2061636365737320636f6e74726f6c206c69737453796e74682069732073757370656e6465642e204f7065726174696f6e2070726f68696269746564a265627a7a7231582039df5e73b7d37a91f23bdfab136a3bbc345163776283e5c9e112c18c127d792c64736f6c63430005100032",
			"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": "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": "0xe535b3dd2bcbb31f9dfddd3bcb436fb24ae36b791d9d691f7379f9e298b8e820",
				"urls": [
					"bzz-raw://340ed30b58f99ef24b9b707273d027291413f4011823a85f6d478c67019cae16",
					"dweb:/ipfs/QmdwpqB4E5gfG1CUPp2TRzRtFQDiY9BRJLeTED4YVmzhGW"
				]
			},
			"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": "0xe535b3dd2bcbb31f9dfddd3bcb436fb24ae36b791d9d691f7379f9e298b8e820",
						"urls": [
							"bzz-raw://340ed30b58f99ef24b9b707273d027291413f4011823a85f6d478c67019cae16",
							"dweb:/ipfs/QmdwpqB4E5gfG1CUPp2TRzRtFQDiY9BRJLeTED4YVmzhGW"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeRatesWithDexPricing": {
			"bytecode": "608060405234801561001057600080fd5b5060405162003765380380620037658339818101604052604081101561003557600080fd5b50805160209091015181818080836001600160a01b03811661009e576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050505050613638806200012d6000396000f3fe608060405234801561001057600080fd5b506004361061027e5760003560e01c80636ce66c801161015c5780639eab4a37116100ce578063c8e5bbd511610087578063c8e5bbd51461087d578063ce8480ea1461094a578063d89ee86114610967578063ed76245014610a25578063f216310714610ae7578063fdadbc7e14610b045761027e565b80639eab4a371461077d578063a777155614610785578063ac82f608146107a2578063b295ad34146107bf578063b7ab13f2146107f2578063c2c8a6761461080f5761027e565b80637a018a1e116101205780637a018a1e146106ed5780638295016a1461070a5780638661cc7b14610733578063899ffef4146107505780638da5cb5b1461075857806397a4aca0146107605761027e565b80636ce66c80146106475780637103353e1461069a57806374185360146106b757806374eded39146106bf57806379ba5097146106e55761027e565b80632af64bd3116101f55780634c36b837116101b95780634c36b837146105e15780634f72def6146105e957806353a47bb714610606578063614d08f81461060e578063654a60ac146106165780636a2b91511461063f5761027e565b80632af64bd31461053d5780632bed9e0c1461054557806338aa1b99146105625780633f0e084f1461057f5780634308a94f146105ab5761027e565b80630c71cd23116102475780630c71cd23146104535780630ee4951b14610489578063109e46a2146104a35780631627540c146104d25780632528f0fe146104fa5780632678df96146105175761027e565b80629919c01461028357806304f3bcec146102b4578063055286e0146102d857806305a046e5146103275780630a7d36d1146103e5575b600080fd5b6102a06004803603602081101561029957600080fd5b5035610b27565b604080519115158252519081900360200190f35b6102bc610b42565b604080516001600160a01b039092168252519081900360200190f35b610301600480360360608110156102ee57600080fd5b5080359060208101359060400135610b51565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6103956004803603602081101561033d57600080fd5b810190602081018135600160201b81111561035757600080fd5b82018360208201111561036957600080fd5b803590602001918460208302840111600160201b8311171561038a57600080fd5b509092509050610d2a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103d15781810151838201526020016103b9565b505050509050019250505060405180910390f35b6102a0600480360360208110156103fb57600080fd5b810190602081018135600160201b81111561041557600080fd5b82018360208201111561042757600080fd5b803590602001918460208302840111600160201b8311171561044857600080fd5b509092509050610dac565b6104706004803603602081101561046957600080fd5b5035610e5f565b6040805192835290151560208301528051918290030190f35b610491610ee4565b60408051918252519081900360200190f35b610491600480360360808110156104b957600080fd5b5080359060208101359060408101359060600135610ef4565b6104f8600480360360208110156104e857600080fd5b50356001600160a01b0316610f37565b005b6102a06004803603602081101561051057600080fd5b5035610f93565b6103956004803603602081101561052d57600080fd5b50356001600160a01b0316610fb3565b6102a0611067565b6104f86004803603602081101561055b57600080fd5b5035611171565b6102a06004803603602081101561057857600080fd5b503561126d565b6104f86004803603604081101561059557600080fd5b50803590602001356001600160a01b031661127b565b6105c8600480360360208110156105c157600080fd5b50356114c1565b6040805192835260208301919091528051918290030190f35b6102bc6114f9565b610491600480360360208110156105ff57600080fd5b5035611503565b6102bc611521565b610491611530565b6104916004803603606081101561062c57600080fd5b5080359060208101359060400135611554565b61049161156c565b61067c600480360360a081101561065d57600080fd5b5080359060208101359060408101359060608101359060800135611576565b60408051938452602084019290925282820152519081900360600190f35b6102bc600480360360208110156106b057600080fd5b50356115db565b6104f86115f6565b6104f8600480360360208110156106d557600080fd5b50356001600160a01b03166117be565b6104f86118a3565b6104916004803603602081101561070357600080fd5b503561195f565b61067c6004803603606081101561072057600080fd5b508035906020810135906040013561196a565b6102a06004803603602081101561074957600080fd5b503561198a565b610395611a73565b6102bc611ac4565b6104916004803603602081101561077657600080fd5b5035611ad3565b6102bc611ade565b6104916004803603602081101561079b57600080fd5b5035611b89565b610491600480360360208110156107b857600080fd5b5035611b94565b6107dc600480360360208110156107d557600080fd5b5035611baf565b6040805160ff9092168252519081900360200190f35b6104916004803603602081101561080857600080fd5b5035611bc4565b6103956004803603602081101561082557600080fd5b810190602081018135600160201b81111561083f57600080fd5b82018360208201111561085157600080fd5b803590602001918460208302840111600160201b8311171561087257600080fd5b509092509050611bcf565b6108eb6004803603602081101561089357600080fd5b810190602081018135600160201b8111156108ad57600080fd5b8201836020820111156108bf57600080fd5b803590602001918460208302840111600160201b831117156108e057600080fd5b509092509050611c47565b604051808060200183151515158152602001828103825284818151815260200191508051906020019060200280838360005b8381101561093557818101518382015260200161091d565b50505050905001935050505060405180910390f35b6104916004803603602081101561096057600080fd5b5035611d8e565b6102a06004803603604081101561097d57600080fd5b810190602081018135600160201b81111561099757600080fd5b8201836020820111156109a957600080fd5b803590602001918460208302840111600160201b831117156109ca57600080fd5b919390929091602081019035600160201b8111156109e757600080fd5b8201836020820111156109f957600080fd5b803590602001918460208302840111600160201b83111715610a1a57600080fd5b509092509050611d99565b610a4e60048036036060811015610a3b57600080fd5b5080359060208101359060400135611ea0565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610a92578181015183820152602001610a7a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610ad1578181015183820152602001610ab9565b5050505090500194505050505060405180910390f35b6102bc60048036036020811015610afd57600080fd5b5035611f7e565b6105c860048036036040811015610b1a57600080fd5b5080359060200135611f89565b6000610b3a82610b35611fa2565b61201a565b90505b919050565b6002546001600160a01b031681565b6000806000806000610b628861204c565b90506001600160a01b038116610bbf576040805162461bcd60e51b815260206004820152601c60248201527f4e6f2061746f6d6963206571756976616c656e7420666f722073726300000000604482015290519081900360640190fd5b6000610bca8761204c565b90506001600160a01b038116610c27576040805162461bcd60e51b815260206004820152601d60248201527f4e6f2061746f6d6963206571756976616c656e7420666f722064657374000000604482015290519081900360640190fd5b610c32898989612132565b919650945092506000610c448a612184565b90506000610c5189612184565b90506000818311610c625781610c64565b825b90506000610cf8610ceb8373__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610cb357600080fd5b505af4158015610cc7573d6000803e3d6000fd5b505050506040513d6020811015610cdd57600080fd5b50519063ffffffff61222c16565b8a9063ffffffff61228916565b90506000610d0787878f6122b3565b9050808210610d165780610d18565b815b9a505050505050505093509350935093565b60608083839050604051908082528060200260200182016040528015610d5a578160200160208202803883390190505b50905060005b83811015610da257610d83858583818110610d7757fe5b90506020020135612600565b828281518110610d8f57fe5b6020908102919091010152600101610d60565b5090505b92915050565b600080610db7611fa2565b90506060610df785858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061261c92505050565b905060005b84811015610e5357818181518110610e1057fe5b602002602001015180610e3a5750610e3a868683818110610e2d57fe5b905060200201358461201a565b15610e4b5760019350505050610da6565b600101610dfc565b50600095945050505050565b600080610e6a6134c8565b610e738461285f565b9050631bd554d160e21b841415610e9957516001600160d81b0316915060009050610edf565b8051610eb7610ea6611fa2565b836020015164ffffffffff16612a6d565b80610ece5750610ece85610ec9612a88565b612b07565b6001600160d81b0390911693509150505b915091565b6000610eee611fa2565b90505b90565b600083815b610f068783600101612be5565b915050801580610f17575083850181115b15610f2457509050610f2f565b600190910190610ef9565b949350505050565b610f3f612dc4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000610fa182610b35611fa2565b80610b3a5750610b3a82610ec9612a88565b600654604080518281526020808402820101909152606091600091908015610fe5578160200160208202803883390190505b50915060005b6006548110156110605760006006828154811061100457fe5b600091825260208083209091015480835260049091526040909120549091506001600160a01b039081169086161415611057578084848060010195508151811061104a57fe5b6020026020010181815250505b50600101610feb565b5050919050565b60006060611073611a73565b905060005b815181101561116857600082828151811061108f57fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156110f757600080fd5b505afa15801561110b573d6000803e3d6000fd5b505050506040513d602081101561112157600080fd5b50516001600160a01b031614158061114e57506000818152600360205260409020546001600160a01b0316155b1561115f5760009350505050610ef1565b50600101611078565b50600191505090565b611179612dc4565b6000818152600460205260409020546001600160a01b0316806111e3576040805162461bcd60e51b815260206004820152601c60248201527f4e6f2061676772656761746f722065786973747320666f72206b657900000000604482015290519081900360640190fd5b600082815260046020908152604080832080546001600160a01b031916905560059091528120805460ff1916905561121c836006612e0f565b9050801561126857604080518481526001600160a01b038416602082015281517fec70e890fc7db7de4059b114c9093a1f41283d18ffcfbcac45566feea4d4f777929181900390910190a15b505050565b6000610b3a82610ec9612a88565b611283612dc4565b60008190506000816001600160a01b031663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b1580156112c357600080fd5b505afa1580156112d7573d6000803e3d6000fd5b505050506040513d60208110156112ed57600080fd5b50511015611342576040805162461bcd60e51b815260206004820152601b60248201527f476976656e2041676772656761746f7220697320696e76616c69640000000000604482015290519081900360640190fd5b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561137d57600080fd5b505afa158015611391573d6000803e3d6000fd5b505050506040513d60208110156113a757600080fd5b50519050601260ff821611156113ee5760405162461bcd60e51b81526004018080602001828103825260328152602001806135d26032913960400191505060405180910390fd5b6000848152600460205260409020546001600160a01b031661144057600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018490555b600084815260046020908152604080832080546001600160a01b0319166001600160a01b0387169081179091556005835292819020805460ff191660ff861617905580518781529182019290925281517f0bcae573430f69c5361e5d76534d3f61d2d803958778680cd74be9dc6299bc63929181900390910190a150505050565b6000806114cc6134c8565b6114d58461285f565b80516020909101516001600160d81b03909116935064ffffffffff16915050915091565b6000610eee612a88565b6006818154811061151057fe5b600091825260209091200154905081565b6001546001600160a01b031681565b7f45786368616e676552617465735769746844657850726963696e67000000000081565b6000611561848484612132565b509095945050505050565b6000610eee612eb3565b60008060006115858886612be5565b5091508786141561159a5750859150806115d0565b6115a48685612be5565b50905080156115d0576115cd816115c1898563ffffffff612f2c16565b9063ffffffff612f4116565b92505b955095509592505050565b6004602052600090815260409020546001600160a01b031681565b6060611600611a73565b905060005b81518110156117ba57600082828151811061161c57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b838110156116d25781810151838201526020016116ba565b50505050905090810190601f1680156116ff5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561171d57600080fd5b505afa158015611731573d6000803e3d6000fd5b505050506040513d602081101561174757600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101611605565b5050565b6117c6612dc4565b6117ce612f56565b604080516309b9412f60e31b81526c45786368616e6765526174657360981b6004820152713232bc283934b1b2a0b3b3b932b3b0ba37b960711b60248201526001600160a01b03848116604483015291519290911691634dca09789160648082019260009290919082900301818387803b15801561184b57600080fd5b505af115801561185f573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f8a51d16f378c74938a4b9290afe425bbfba62f05aa9d27bff5e892f62696f7609350908190036020019150a150565b6001546001600160a01b031633146118ec5760405162461bcd60e51b815260040180806020018281038252603581526020018061351d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610b3a82612f73565b600080600061197a868686612132565b9250925092505b93509350939050565b600081631bd554d160e21b14156119a357506000610b3d565b60006119ae83613018565b905060006119bb846130cc565b90508115806119c8575080155b156119d857600092505050610b3d565b60006119ea428463ffffffff61222c16565b905060006119f786612f73565b90505b8215611a6757600080611a0d8884612be5565b9150915080600014158015611a2157508381105b15611a355760009650505050505050610b3d565b811580611a40575080155b15611a4c575050611a67565b82611a58575050611a67565b505060001992830192016119fa565b50600195945050505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611ab557fe5b60200260200101818152505090565b6000546001600160a01b031681565b6000610b3a826130cc565b6000611ae8612f56565b6001600160a01b0316639ee5955a6c45786368616e6765526174657360981b713232bc283934b1b2a0b3b3b932b3b0ba37b960711b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b5857600080fd5b505afa158015611b6c573d6000803e3d6000fd5b505050506040513d6020811015611b8257600080fd5b5051905090565b6000610b3a82613018565b6000611b9f8261285f565b516001600160d81b031692915050565b60056020526000908152604090205460ff1681565b6000610b3a82612184565b60608083839050604051908082528060200260200182016040528015611bff578160200160208202803883390190505b50905060005b83811015610da257611c28858583818110611c1c57fe5b90506020020135611b94565b828281518110611c3457fe5b6020908102919091010152600101611c05565b6060600083839050604051908082528060200260200182016040528015611c78578160200160208202803883390190505b5091506000611c85611fa2565b90506060611cc586868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061261c92505050565b905060005b85811015611d8457611cda6134c8565b611cf5888884818110611ce957fe5b9050602002013561285f565b905080600001516001600160d81b0316868381518110611d1157fe5b60200260200101818152505084158015611d445750631bd554d160e21b888884818110611d3a57fe5b9050602002013514155b15611d7b57828281518110611d5557fe5b602002602001015180611d785750611d7884826020015164ffffffffff16612a6d565b94505b50600101611cca565b5050509250929050565b6000610b3a82612600565b6000818414611dd95760405162461bcd60e51b81526004018080602001828103825260308152602001806135a26030913960400191505060405180910390fd5b6000611de3611fa2565b90506060611e2387878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061261c92505050565b905060005b86811015611e9257818181518110611e3c57fe5b602002602001015180611e795750611e79888883818110611e5957fe5b90506020020135878784818110611e6c57fe5b9050602002013585613180565b15611e8a5760019350505050610f2f565b600101611e28565b506000979650505050505050565b60608083604051908082528060200260200182016040528015611ecd578160200160208202803883390190505b50915083604051908082528060200260200182016040528015611efa578160200160208202803883390190505b50905060008311611f1357611f0e85612f73565b611f15565b825b925060005b84811015611f7457611f2c8685612be5565b848381518110611f3857fe5b60200260200101848481518110611f4b57fe5b60209081029190910101919091525283611f655750611f76565b60001990930192600101611f1a565b505b935093915050565b6000610b3a8261204c565b600080611f968484612be5565b915091505b9250929050565b6000611fac612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b5857600080fd5b6000631bd554d160e21b83141561203357506000610da6565b6120458261204085612600565b612a6d565b9392505050565b6000612056612f56565b6001600160a01b0316639ee5955a6d53797374656d53657474696e677360901b7f61746f6d69634571756976616c656e74466f7244657850726963696e67000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561210057600080fd5b505afa158015612114573d6000803e3d6000fd5b505050506040513d602081101561212a57600080fd5b505192915050565b600080600061214086611b94565b915083861415612154575083915080611981565b61215d84611b94565b9050801561198157612179816115c1878563ffffffff612f2c16565b925093509350939050565b600061218e612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7030ba37b6b4b1a83934b1b2a13ab33332b960791b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561210057600080fd5b600082821115612283576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000670de0b6b3a76400006122a4848463ffffffff6131bb16565b816122ab57fe5b049392505050565b6000806123b973__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156122fd57600080fd5b505af4158015612311573d6000803e3d6000fd5b505050506040513d602081101561232757600080fd5b50516040805163313ce56760e01b815290516123ad916001600160a01b038a169163313ce56791600480820192602092909190829003018186803b15801561236e57600080fd5b505afa158015612382573d6000803e3d6000fd5b505050506040513d602081101561239857600080fd5b5051869060ff16600a0a63ffffffff6131bb16565b9063ffffffff61321416565b905060006123c5612eb3565b905080612419576040805162461bcd60e51b815260206004820181905260248201527f556e696e697469616c697a65642061746f6d696320747761702077696e646f77604482015290519081900360640190fd5b6000612423611ade565b60408051637c66194960e01b81526001600160a01b038a811660048301526024820187905289811660448301526064820186905291519290911691637c66194991608480820192602092909190829003018186803b15801561248457600080fd5b505afa158015612498573d6000803e3d6000fd5b505050506040513d60208110156124ae57600080fd5b50519050806124fb576040805162461bcd60e51b815260206004820152601460248201527306465782070726963652072657475726e656420360641b604482015290519081900360640190fd5b6125f5866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561253757600080fd5b505afa15801561254b573d6000803e3d6000fd5b505050506040513d602081101561256157600080fd5b505160408051630241ebdb60e61b8152905160ff909216600a0a916123ad9173__$e9b11e9f4c77d4fa45acd0743461a141a9$__9163907af6c091600480820192602092909190829003018186803b1580156125bc57600080fd5b505af41580156125d0573d6000803e3d6000fd5b505050506040513d60208110156125e657600080fd5b5051849063ffffffff6131bb16565b979650505050505050565b600061260b8261285f565b6020015164ffffffffff1692915050565b60606000612628612a88565b90506001600160a01b0381161561282a5760608351604051908082528060200260200182016040528015612666578160200160208202803883390190505b50905060005b84518110156126db576004600086838151811061268557fe5b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b03168282815181106126bb57fe5b6001600160a01b039092166020928302919091019091015260010161266c565b50604051631f5c8f2b60e21b81526020600482018181528351602484015283516001600160a01b03861693637d723cac93869392839260440191808601910280838360005b83811015612738578181015183820152602001612720565b505050509050019250505060006040518083038186803b15801561275b57600080fd5b505afa15801561276f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561279857600080fd5b8101908080516040519392919084600160201b8211156127b757600080fd5b9083019060208201858111156127cc57600080fd5b82518660208202830111600160201b821117156127e857600080fd5b82525081516020918201928201910280838360005b838110156128155781810151838201526020016127fd565b50505050905001604052505050925050612859565b8251604051908082528060200260200182016040528015612855578160200160208202803883390190505b5091505b50919050565b6128676134c8565b631bd554d160e21b82141561290b57604051806040016040528073__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156128c557600080fd5b505af41580156128d9573d6000803e3d6000fd5b505050506040513d60208110156128ef57600080fd5b50516001600160d81b0316815260006020909101529050610b3d565b6000828152600460205260409020546001600160a01b031680156128595760408051600481526024810182526020810180516001600160e01b0316633fabe5a360e21b1781529151815191926000926060926001600160a01b0387169286928291908083835b602083106129905780518252601f199092019160209182019101612971565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146129f0576040519150601f19603f3d011682016040523d82523d6000602084013e6129f5565b606091505b50915091508115612a64576000808280602001905160a0811015612a1857600080fd5b50602081015160609091015160408051808201909152919350915080612a3e8a8561327e565b6001600160d81b031681526020018264ffffffffff168152509650505050505050610b3d565b50505050919050565b600042612a80838563ffffffff61332716565b109392505050565b6000612a92612f56565b6001600160a01b0316639ee5955a6d53797374656d53657474696e677360901b7561676772656761746f725761726e696e67466c61677360501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b5857600080fd5b6000631bd554d160e21b831415612b2057506000610da6565b6000838152600460205260409020546001600160a01b0316801580612b4c57506001600160a01b038316155b15612b5b576000915050610da6565b826001600160a01b031663357e47fe826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015612bb157600080fd5b505afa158015612bc5573d6000803e3d6000fd5b505050506040513d6020811015612bdb57600080fd5b5051949350505050565b600080631bd554d160e21b841415612c725773__$e9b11e9f4c77d4fa45acd0743461a141a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612c3b57600080fd5b505af4158015612c4f573d6000803e3d6000fd5b505050506040513d6020811015612c6557600080fd5b5051915060009050611f9b565b6000848152600460205260409020546001600160a01b03168015612dbc5760408051602480820187905282518083039091018152604490910182526020810180516001600160e01b0316639a6fc8f560e01b1781529151815191926000926060926001600160a01b0387169286928291908083835b60208310612d065780518252601f199092019160209182019101612ce7565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114612d66576040519150601f19603f3d011682016040523d82523d6000602084013e612d6b565b606091505b50915091508115612db8576000808280602001905160a0811015612d8e57600080fd5b5060208101516060909101519092509050612da98a8361327e565b97509550611f9b945050505050565b5050505b509250929050565b6000546001600160a01b03163314612e0d5760405162461bcd60e51b815260040180806020018281038252602f815260200180613552602f913960400191505060405180910390fd5b565b6000805b8254811015612ea95783838281548110612e2957fe5b90600052602060002001541415612ea157828181548110612e4657fe5b6000918252602082200155825483906000198101908110612e6357fe5b9060005260206000200154838281548110612e7a57fe5b6000918252602090912001558254612e968460001983016134df565b506001915050610da6565b600101612e13565b5060009392505050565b6000612ebd612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f61746f6d69635477617057696e646f7760801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b5857600080fd5b60006120458383670de0b6b3a7640000613381565b60006120458383670de0b6b3a76400006133be565b6000610eee6e466c657869626c6553746f7261676560881b6133e4565b6000631bd554d160e21b821415612f8c57506000610b3d565b6000828152600460205260409020546001600160a01b0316801561285957806001600160a01b031663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b158015612fe357600080fd5b505afa158015612ff7573d6000803e3d6000fd5b505050506040513d602081101561300d57600080fd5b50519150610b3d9050565b6000613022612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d6963566f6c436f6e73696465726174696f6e57696e646f7700000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561210057600080fd5b60006130d6612f56565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f61746f6d6963566f6c5570646174655468726573686f6c640000000000000000856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561210057600080fd5b6000631bd554d160e21b84141561319957506000612045565b60006131a58585612be5565b9150506131b28382612a6d565b95945050505050565b6000826131ca57506000610da6565b828202828482816131d757fe5b04146120455760405162461bcd60e51b81526004018080602001828103825260218152602001806135816021913960400191505060405180910390fd5b600080821161326a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161327557fe5b04949350505050565b6000808212156132d5576040805162461bcd60e51b815260206004820152601b60248201527f4e656761746976652072617465206e6f7420737570706f727465640000000000604482015290519081900360640190fd5b60008381526005602052604090205460ff16156128595760008381526005602052604081205461330a9060129060ff1661222c565b600a0a905061331f838263ffffffff6131bb16565b915050610da6565b600082820183811015612045576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600a8304613398868663ffffffff6131bb16565b8161339f57fe5b0490506005600a825b06106133b257600a015b600a9004949350505050565b6000806133d8846123ad87600a870263ffffffff6131bb16565b90506005600a826133a8565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816134c15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561348657818101518382015260200161346e565b50505050905090810190601f1680156134b35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b604080518082019091526000808252602082015290565b81548183558181111561126857600083815260209020611268918101908301610ef191905b808211156135185760008155600101613504565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77726f756e64496473206d757374206265207468652073616d65206c656e6774682061732063757272656e63794b65797341676772656761746f7220646563696d616c732073686f756c64206265206c6f776572206f7220657175616c20746f203138a265627a7a723158201805fecc08246f0472cc123b5caba2061bc2916517f3ecf0ff8e9175170b641b64736f6c63430005100032",
			"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": "newDexPriceAggregator",
							"type": "address"
						}
					],
					"name": "DexPriceAggregatorUpdated",
					"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": "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": "atomicPriceBuffer",
					"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": "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": [],
					"name": "dexPriceAggregator",
					"outputs": [
						{
							"internalType": "contract IDexPriceAggregator",
							"name": "",
							"type": "address"
						}
					],
					"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": "effectiveAtomicValueAndRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "systemValue",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "systemSourceRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "systemDestinationRate",
							"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": false,
					"inputs": [
						{
							"internalType": "contract IDexPriceAggregator",
							"name": "_dexPriceAggregator",
							"type": "address"
						}
					],
					"name": "setDexPriceAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "synthTooVolatileForAtomicExchange",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function"
				}
			],
			"source": {
				"keccak256": "0x329fc8a502695953edb21bfb29f97c78a477df2f675e967af6d2a5ebffdddc51",
				"urls": [
					"bzz-raw://22bee04d2416243398d0c0424cbc527f224a674d16ceb6b0c9e4f2f276db363b",
					"dweb:/ipfs/QmcQQgmQxVLxfhLsPetZuiQo3ysf8zeDvkh2tjUDoas6ua"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeRatesWithDexPricing.sol": "ExchangeRatesWithDexPricing"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangeRatesWithDexPricing.sol": {
						"keccak256": "0x329fc8a502695953edb21bfb29f97c78a477df2f675e967af6d2a5ebffdddc51",
						"urls": [
							"bzz-raw://22bee04d2416243398d0c0424cbc527f224a674d16ceb6b0c9e4f2f276db363b",
							"dweb:/ipfs/QmcQQgmQxVLxfhLsPetZuiQo3ysf8zeDvkh2tjUDoas6ua"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516112e23803806112e28339818101604052606081101561003357600080fd5b5080516020820151604090920151909190826001600160a01b0381166100a0576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055506111ad806101356000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636b3905c4116100de5780639b217f9011610097578063d0cc82e311610071578063d0cc82e31461045d578063da7bd3e914610465578063ee1d036c14610491578063fe46a480146104bd57610173565b80639b217f90146103fd578063ae2e933b14610429578063b5ddb9c71461043157610173565b80636b3905c41461037357806370a082311461039957806371e780f3146103bf57806379ba5097146103c75780638da5cb5b146103cf57806397f46527146103d757610173565b80632f5bb661116101305780632f5bb6611461026e578063326a3cfb146102cf578063449d0eb1146102f5578063458efde31461033157806345e5441f1461033957806353a47bb71461036b57610173565b80630c7c95ad146101785780631627540c1461019c57806319db2228146101c457806319e740c0146101ea578063204b676a14610222578063227d517a14610248575b600080fd5b6101806104e3565b604080516001600160a01b039092168252519081900360200190f35b6101c2600480360360208110156101b257600080fd5b50356001600160a01b03166104f2565b005b6101c2600480360360208110156101da57600080fd5b50356001600160a01b031661054e565b6102106004803603602081101561020057600080fd5b50356001600160a01b03166105aa565b60408051918252519081900360200190f35b6102106004803603602081101561023857600080fd5b50356001600160a01b03166105ec565b6102106004803603602081101561025e57600080fd5b50356001600160a01b0316610607565b6102946004803603602081101561028457600080fd5b50356001600160a01b0316610619565b6040518082600260200280838360005b838110156102bc5781810151838201526020016102a4565b5050505090500191505060405180910390f35b610210600480360360208110156102e557600080fd5b50356001600160a01b031661066a565b61031b6004803603602081101561030b57600080fd5b50356001600160a01b031661067c565b60405181518152808261410080838360206102a4565b6101c2610702565b6102106004803603606081101561034f57600080fd5b506001600160a01b0381351690602081013590604001356108eb565b610180610927565b6102106004803603602081101561038957600080fd5b50356001600160a01b0316610936565b610210600480360360208110156103af57600080fd5b50356001600160a01b031661094f565b61021061096a565b6101c2610970565b610180610a2c565b610210600480360360208110156103ed57600080fd5b50356001600160a01b0316610a3b565b6102106004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a4d565b610180610a68565b6101c26004803603604081101561044757600080fd5b506001600160a01b038135169060200135610a77565b610210610ad0565b6102946004803603604081101561047b57600080fd5b506001600160a01b038135169060200135610ad6565b610210600480360360408110156104a757600080fd5b506001600160a01b038135169060200135610b45565b6101c2600480360360208110156104d357600080fd5b50356001600160a01b0316610b58565b6002546001600160a01b031681565b6104fa610bb4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610556610bb4565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb62959181900360200190a150565b6000806105b6836105ec565b905060005b818110156105e3576105cd8482610a4d565b156105db5791506105e79050565b6001016105bb565b5090505b919050565b6001600160a01b031660009081526004602052604090205490565b60066020526000908152604090205481565b610621610f98565b600061062c836105aa565b9050610637836105ec565b81141561065957505060408051808201909152600080825260208201526105e7565b6106638382610ad6565b9392505050565b60056020526000908152604090205481565b610684610fb6565b61068c610fb6565b6000610697846105ec565b905060005b818110156106f9576106ac610f98565b6106b68683610ad6565b8051909150846002840261020881106106cb57fe5b60200201528060016020020151848360020260010161020881106106eb57fe5b60200201525060010161069c565b50909392505050565b600061070d336105ec565b90506000805b828110156107b25760006107273383610a4d565b90504281111561073757506107b2565b60006107433384610b45565b905080156107a85760408051808201825260008082526020808301829052338252600490529190912080548590811061077857fe5b9060005260206000209060020201906002610794929190610fd6565b506107a5848263ffffffff610bff16565b93505b5050600101610713565b5080156108e7576007546107cc908263ffffffff610c5916565b600755336000908152600560205260409020546107ef908263ffffffff610c5916565b3360009081526005602090815260408083209390935560069052205461081b908263ffffffff610bff16565b33600081815260066020908152604080832094909455600254845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561088057600080fd5b505af1158015610894573d6000803e3d6000fd5b505050506040513d60208110156108aa57600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b6004602052826000526040600020828154811061090457fe5b9060005260206000209060020201816002811061091d57fe5b0154925083915050565b6001546001600160a01b031681565b600061094182610619565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b60075481565b6001546001600160a01b031633146109b95760405162461bcd60e51b81526004018080602001828103825260358152602001806110656035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000610a4682610619565b6001610944565b6000610a598383610ad6565b60005b60200201519392505050565b6003546001600160a01b031681565b6003546001600160a01b0316331480610ac15760405162461bcd60e51b81526004018080602001828103825260328152602001806111476032913960400191505060405180910390fd5b610acb8383610cb6565b505050565b61010481565b610ade610f98565b6001600160a01b0383166000908152600460205260409020805483908110610b0257fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610b25575050505050905092915050565b6000610b518383610ad6565b6001610a5c565b610b60610bb4565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fcb046e61ab451d5fec11d3dfc4c550475bd0abd8df74a421c34be433f197c4df9181900360200190a150565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040180806020018281038252602f815260200180611118602f913960400191505060405180910390fd5b565b600082820183811015610663576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115610cb0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b80610d08576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b600754610d1b908263ffffffff610bff16565b600755600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610d6957600080fd5b505afa158015610d7d573d6000803e3d6000fd5b505050506040513d6020811015610d9357600080fd5b50516007541115610dd55760405162461bcd60e51b81526004018080602001828103825260478152602001806110d16047913960600191505060405180910390fd5b6001600160a01b038216600090815260046020526040902054610104811115610e45576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b6301dfe200420181610e71576001600160a01b0384166000908152600560205260409020839055610efe565b80610e7f8560018503610a4d565b10610ebb5760405162461bcd60e51b815260040180806020018281038252603781526020018061109a6037913960400191505060405180910390fd5b6001600160a01b038416600090815260056020526040902054610ee4908463ffffffff610bff16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925284825281830187905280546001810180835591855292909320610f4d9260029081029091019190611019565b5050604080514281526020810185905281516001600160a01b038716927fedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c928290030190a250505050565b60405180604001604052806002906020820280388339509192915050565b604051806141000160405280610208906020820280388339509192915050565b8260028101928215611009579160200282015b82811115611009578251829060ff16905591602001919060010190610fe9565b50611015929150611047565b5090565b8260028101928215611009579160200282015b8281111561100957825182559160200191906001019061102c565b61106191905b80821115611015576000815560010161104d565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c792074686520466565506f6f6c20636f6e7472616374732063616e20706572666f726d207468697320616374696f6ea265627a7a723158208ae489ff43cc726ad8e508a0ad2a54f1cd1e71492ac5b4ab8a687b75b64940da64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract IOikos",
							"name": "_oikos",
							"type": "address"
						},
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newFeePool",
							"type": "address"
						}
					],
					"name": "FeePoolUpdated",
					"type": "event"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOikos",
							"type": "address"
						}
					],
					"name": "OikosUpdated",
					"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"
						}
					],
					"name": "VestingEntryCreated",
					"type": "event"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_VESTING_ENTRIES",
					"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": "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": "checkAccountSchedule",
					"outputs": [
						{
							"internalType": "uint256[520]",
							"name": "",
							"type": "uint256[520]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"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": "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": "oikos",
					"outputs": [
						{
							"internalType": "contract IOikos",
							"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": false,
					"inputs": [
						{
							"internalType": "contract IOikos",
							"name": "_oikos",
							"type": "address"
						}
					],
					"name": "setOikos",
					"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": [],
					"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": "0x421195a08ebc679d891e7c546cae75e9554aed8a67bb99c1128c87d89d228b56",
				"urls": [
					"bzz-raw://efbc657ea04f4c2b6f09dfaab9a13688a370f33797ace71da0129d168c9cacb9",
					"dweb:/ipfs/QmZeT38jT9PESsq9HMro2k2dPnfAUFWD8hX8BXiwkmN8k9"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardEscrow.sol": "RewardEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardEscrow.sol": {
						"keccak256": "0x421195a08ebc679d891e7c546cae75e9554aed8a67bb99c1128c87d89d228b56",
						"urls": [
							"bzz-raw://efbc657ea04f4c2b6f09dfaab9a13688a370f33797ace71da0129d168c9cacb9",
							"dweb:/ipfs/QmZeT38jT9PESsq9HMro2k2dPnfAUFWD8hX8BXiwkmN8k9"
						]
					}
				},
				"version": 1
			}
		}
	}
}
