{
  "_format": "hh-sol-artifact-1",
  "contractName": "AggregatorProxy",
  "sourceName": "contracts/v0.7/dev/AggregatorProxy.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "aggregatorAddress",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previous",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "latest",
          "type": "address"
        }
      ],
      "name": "AggregatorConfirmed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "current",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "proposed",
          "type": "address"
        }
      ],
      "name": "AggregatorProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "int256",
          "name": "current",
          "type": "int256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "updatedAt",
          "type": "uint256"
        }
      ],
      "name": "AnswerUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "startedBy",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "startedAt",
          "type": "uint256"
        }
      ],
      "name": "NewRound",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferRequested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "aggregator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "aggregatorAddress",
          "type": "address"
        }
      ],
      "name": "confirmAggregator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "description",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getAnswer",
      "outputs": [
        {
          "internalType": "int256",
          "name": "answer",
          "type": "int256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint80",
          "name": "roundId",
          "type": "uint80"
        }
      ],
      "name": "getRoundData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "id",
          "type": "uint80"
        },
        {
          "internalType": "int256",
          "name": "answer",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "startedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "updatedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint80",
          "name": "answeredInRound",
          "type": "uint80"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "updatedAt",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestAnswer",
      "outputs": [
        {
          "internalType": "int256",
          "name": "answer",
          "type": "int256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestRound",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestRoundData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "id",
          "type": "uint80"
        },
        {
          "internalType": "int256",
          "name": "answer",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "startedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "updatedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint80",
          "name": "answeredInRound",
          "type": "uint80"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestTimestamp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "updatedAt",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "phaseId",
          "type": "uint16"
        }
      ],
      "name": "phaseAggregators",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "phaseId",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "aggregatorAddress",
          "type": "address"
        }
      ],
      "name": "proposeAggregator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proposedAggregator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint80",
          "name": "roundId",
          "type": "uint80"
        }
      ],
      "name": "proposedGetRoundData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "id",
          "type": "uint80"
        },
        {
          "internalType": "int256",
          "name": "answer",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "startedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "updatedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint80",
          "name": "answeredInRound",
          "type": "uint80"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proposedLatestRoundData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "id",
          "type": "uint80"
        },
        {
          "internalType": "int256",
          "name": "answer",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "startedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "updatedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint80",
          "name": "answeredInRound",
          "type": "uint80"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060405161173c38038061173c8339818101604052602081101561003357600080fd5b5051600080546001600160a01b0319163317905561005081610056565b506100c5565b60048054604080518082018252600161ffff80851691909101168082526001600160a01b0395909516602091820181905261ffff19909316851762010000600160b01b0319166201000084021790935560009384526003909252912080546001600160a01b0319169091179055565b611668806100d46000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80638da5cb5b116100d8578063b633620c1161008c578063f2fde38b11610066578063f2fde38b146103e5578063f8a2abd314610418578063feaf968c1461044b57610177565b8063b633620c1461039f578063c1597304146103bc578063e8c4be30146103dd57610177565b80639a6fc8f5116100bd5780639a6fc8f514610326578063a928c0961461034f578063b5ab58dc1461038257610177565b80638da5cb5b146103165780638f6b4d911461031e57610177565b80636001ac531161012f5780637284e416116101145780637284e4161461028757806379ba5097146103045780638205bf6a1461030e57610177565b80636001ac531461020c578063668a0f021461027f57610177565b806350d25bcd1161016057806350d25bcd146101cb57806354fd4d50146101e557806358303b10146101ed57610177565b8063245a7bfc1461017c578063313ce567146101ad575b600080fd5b610184610453565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101b5610475565b6040805160ff9092168252519081900360200190f35b6101d3610513565b60408051918252519081900360200190f35b6101d3610580565b6101f56105ed565b6040805161ffff9092168252519081900360200190f35b6102356004803603602081101561022257600080fd5b503569ffffffffffffffffffff166105f7565b604051808669ffffffffffffffffffff1681526020018581526020018481526020018381526020018269ffffffffffffffffffff1681526020019550505050505060405180910390f35b6101d3610756565b61028f61082e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c95781810151838201526020016102b1565b50505050905090810190601f1680156102f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030c6109ab565b005b6101d3610aad565b610184610b1a565b610235610b36565b6102356004803603602081101561033c57600080fd5b503569ffffffffffffffffffff16610c7f565b61030c6004803603602081101561036557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610da2565b6101d36004803603602081101561039857600080fd5b5035610f5f565b6101d3600480360360208110156103b557600080fd5b5035611059565b610184600480360360208110156103d257600080fd5b503561ffff1661111c565b610184611148565b61030c600480360360208110156103fb57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611164565b61030c6004803603602081101561042e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112e5565b6102356113e9565b60045462010000900473ffffffffffffffffffffffffffffffffffffffff1690565b6000600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d602081101561050c57600080fd5b5051905090565b6000600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e257600080fd5b6000600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354fd4d506040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e257600080fd5b60045461ffff1690565b600254600090819081908190819073ffffffffffffffffffffffffffffffffffffffff1661068657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2070726f706f7365642061676772656761746f722070726573656e740000604482015290519081900360640190fd5b600254604080517f9a6fc8f500000000000000000000000000000000000000000000000000000000815269ffffffffffffffffffff89166004820152905173ffffffffffffffffffffffffffffffffffffffff90921691639a6fc8f59160248082019260a092909190829003018186803b15801561070357600080fd5b505afa158015610717573d6000803e3d6000fd5b505050506040513d60a081101561072d57600080fd5b508051602082015160408301516060840151608090940151929a91995097509195509350915050565b600061076061161b565b506040805180820182526004805461ffff81168084526201000090910473ffffffffffffffffffffffffffffffffffffffff16602080850182905285517f668a0f020000000000000000000000000000000000000000000000000000000081529551949561081c959394929363668a0f02938281019392829003018186803b1580156107eb57600080fd5b505afa1580156107ff573d6000803e3d6000fd5b505050506040513d602081101561081557600080fd5b50516114f6565b69ffffffffffffffffffff1691505090565b6060600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b15801561089b57600080fd5b505afa1580156108af573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156108f657600080fd5b810190808051604051939291908464010000000082111561091657600080fd5b90830190602082018581111561092b57600080fd5b825164010000000081118282018810171561094557600080fd5b82525081516020918201929091019080838360005b8381101561097257818101518382015260200161095a565b50505050905090810190601f16801561099f5780820380516001836020036101000a031916815260200191505b50604052505050905090565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015290519081900360640190fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6000600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e257600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600254600090819081908190819073ffffffffffffffffffffffffffffffffffffffff16610bc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2070726f706f7365642061676772656761746f722070726573656e740000604482015290519081900360640190fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610c2d57600080fd5b505afa158015610c41573d6000803e3d6000fd5b505050506040513d60a0811015610c5757600080fd5b5080516020820151604083015160608401516080909401519299919850965091945092509050565b6000806000806000806000610c9f8869ffffffffffffffffffff16611516565b61ffff8216600090815260036020526040908190205481517f9a6fc8f500000000000000000000000000000000000000000000000000000000815267ffffffffffffffff84166004820152915193955091935073ffffffffffffffffffffffffffffffffffffffff90911691639a6fc8f59160248082019260a092909190829003018186803b158015610d3157600080fd5b505afa158015610d45573d6000803e3d6000fd5b505050506040513d60a0811015610d5b57600080fd5b508051602082015160408301516060840151608090940151929a5090985096509094509250610d8e87878787878761151e565b939c929b5090995097509095509350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e2857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b60025473ffffffffffffffffffffffffffffffffffffffff828116911614610eb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c69642070726f706f7365642061676772656761746f720000000000604482015290519081900360640190fd5b600454600280547fffffffffffffffffffffffff000000000000000000000000000000000000000016905562010000900473ffffffffffffffffffffffffffffffffffffffff16610f0182611554565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f33745f67a407dcb785417f9c123dd3641479a102674b6e35c1f10975625b90e960405160405180910390a35050565b600069ffffffffffffffffffff821115610f7b57506000611054565b600080610f8784611516565b61ffff8216600090815260036020526040902054919350915073ffffffffffffffffffffffffffffffffffffffff1680610fc75760009350505050611054565b8073ffffffffffffffffffffffffffffffffffffffff1663b5ab58dc836040518263ffffffff1660e01b8152600401808267ffffffffffffffff16815260200191505060206040518083038186803b15801561102257600080fd5b505afa158015611036573d6000803e3d6000fd5b505050506040513d602081101561104c57600080fd5b505193505050505b919050565b600069ffffffffffffffffffff82111561107557506000611054565b60008061108184611516565b61ffff8216600090815260036020526040902054919350915073ffffffffffffffffffffffffffffffffffffffff16806110c15760009350505050611054565b8073ffffffffffffffffffffffffffffffffffffffff1663b633620c836040518263ffffffff1660e01b8152600401808267ffffffffffffffff16815260200191505060206040518083038186803b15801561102257600080fd5b61ffff1660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146111ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811633141561126f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60005473ffffffffffffffffffffffffffffffffffffffff16331461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560045460405191926201000090910416907fc0f151710f03d713b71d9970cee0d5b11ddc9a7552abaa3f6ee818010f21600d90600090a350565b60008060008060006113f961161b565b506040805180820182526004805461ffff8116835262010000900473ffffffffffffffffffffffffffffffffffffffff166020830181905283517ffeaf968c00000000000000000000000000000000000000000000000000000000815293519293909263feaf968c928281019260a0929190829003018186803b15801561147f57600080fd5b505afa158015611493573d6000803e3d6000fd5b505050506040513d60a08110156114a957600080fd5b5080516020820151604083015160608401516080909401518551939a5091985096509194509092506114e4908790879087908790879061151e565b95509550955095509550509091929394565b67ffffffffffffffff1660409190911b69ffff0000000000000000161790565b604081901c91565b6000806000806000611530868c6114f6565b8a8a8a61153d8a8c6114f6565b939f929e50909c509a509098509650505050505050565b60048054604080518082018252600161ffff808516919091011680825273ffffffffffffffffffffffffffffffffffffffff9590951660209182018190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000090931685177fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000084021790935560009384526003909252912080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b60408051808201909152600080825260208201529056fea2646970667358221220f2edc0edf786e577484f767f67051035691d77c67fb1416444b66d7bdefd6e0464736f6c63430007000033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101775760003560e01c80638da5cb5b116100d8578063b633620c1161008c578063f2fde38b11610066578063f2fde38b146103e5578063f8a2abd314610418578063feaf968c1461044b57610177565b8063b633620c1461039f578063c1597304146103bc578063e8c4be30146103dd57610177565b80639a6fc8f5116100bd5780639a6fc8f514610326578063a928c0961461034f578063b5ab58dc1461038257610177565b80638da5cb5b146103165780638f6b4d911461031e57610177565b80636001ac531161012f5780637284e416116101145780637284e4161461028757806379ba5097146103045780638205bf6a1461030e57610177565b80636001ac531461020c578063668a0f021461027f57610177565b806350d25bcd1161016057806350d25bcd146101cb57806354fd4d50146101e557806358303b10146101ed57610177565b8063245a7bfc1461017c578063313ce567146101ad575b600080fd5b610184610453565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101b5610475565b6040805160ff9092168252519081900360200190f35b6101d3610513565b60408051918252519081900360200190f35b6101d3610580565b6101f56105ed565b6040805161ffff9092168252519081900360200190f35b6102356004803603602081101561022257600080fd5b503569ffffffffffffffffffff166105f7565b604051808669ffffffffffffffffffff1681526020018581526020018481526020018381526020018269ffffffffffffffffffff1681526020019550505050505060405180910390f35b6101d3610756565b61028f61082e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c95781810151838201526020016102b1565b50505050905090810190601f1680156102f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030c6109ab565b005b6101d3610aad565b610184610b1a565b610235610b36565b6102356004803603602081101561033c57600080fd5b503569ffffffffffffffffffff16610c7f565b61030c6004803603602081101561036557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610da2565b6101d36004803603602081101561039857600080fd5b5035610f5f565b6101d3600480360360208110156103b557600080fd5b5035611059565b610184600480360360208110156103d257600080fd5b503561ffff1661111c565b610184611148565b61030c600480360360208110156103fb57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611164565b61030c6004803603602081101561042e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166112e5565b6102356113e9565b60045462010000900473ffffffffffffffffffffffffffffffffffffffff1690565b6000600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d602081101561050c57600080fd5b5051905090565b6000600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e257600080fd5b6000600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354fd4d506040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e257600080fd5b60045461ffff1690565b600254600090819081908190819073ffffffffffffffffffffffffffffffffffffffff1661068657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2070726f706f7365642061676772656761746f722070726573656e740000604482015290519081900360640190fd5b600254604080517f9a6fc8f500000000000000000000000000000000000000000000000000000000815269ffffffffffffffffffff89166004820152905173ffffffffffffffffffffffffffffffffffffffff90921691639a6fc8f59160248082019260a092909190829003018186803b15801561070357600080fd5b505afa158015610717573d6000803e3d6000fd5b505050506040513d60a081101561072d57600080fd5b508051602082015160408301516060840151608090940151929a91995097509195509350915050565b600061076061161b565b506040805180820182526004805461ffff81168084526201000090910473ffffffffffffffffffffffffffffffffffffffff16602080850182905285517f668a0f020000000000000000000000000000000000000000000000000000000081529551949561081c959394929363668a0f02938281019392829003018186803b1580156107eb57600080fd5b505afa1580156107ff573d6000803e3d6000fd5b505050506040513d602081101561081557600080fd5b50516114f6565b69ffffffffffffffffffff1691505090565b6060600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b15801561089b57600080fd5b505afa1580156108af573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156108f657600080fd5b810190808051604051939291908464010000000082111561091657600080fd5b90830190602082018581111561092b57600080fd5b825164010000000081118282018810171561094557600080fd5b82525081516020918201929091019080838360005b8381101561097257818101518382015260200161095a565b50505050905090810190601f16801561099f5780820380516001836020036101000a031916815260200191505b50604052505050905090565b60015473ffffffffffffffffffffffffffffffffffffffff163314610a3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015290519081900360640190fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6000600460000160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e257600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600254600090819081908190819073ffffffffffffffffffffffffffffffffffffffff16610bc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f2070726f706f7365642061676772656761746f722070726573656e740000604482015290519081900360640190fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b158015610c2d57600080fd5b505afa158015610c41573d6000803e3d6000fd5b505050506040513d60a0811015610c5757600080fd5b5080516020820151604083015160608401516080909401519299919850965091945092509050565b6000806000806000806000610c9f8869ffffffffffffffffffff16611516565b61ffff8216600090815260036020526040908190205481517f9a6fc8f500000000000000000000000000000000000000000000000000000000815267ffffffffffffffff84166004820152915193955091935073ffffffffffffffffffffffffffffffffffffffff90911691639a6fc8f59160248082019260a092909190829003018186803b158015610d3157600080fd5b505afa158015610d45573d6000803e3d6000fd5b505050506040513d60a0811015610d5b57600080fd5b508051602082015160408301516060840151608090940151929a5090985096509094509250610d8e87878787878761151e565b939c929b5090995097509095509350505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e2857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b60025473ffffffffffffffffffffffffffffffffffffffff828116911614610eb157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c69642070726f706f7365642061676772656761746f720000000000604482015290519081900360640190fd5b600454600280547fffffffffffffffffffffffff000000000000000000000000000000000000000016905562010000900473ffffffffffffffffffffffffffffffffffffffff16610f0182611554565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f33745f67a407dcb785417f9c123dd3641479a102674b6e35c1f10975625b90e960405160405180910390a35050565b600069ffffffffffffffffffff821115610f7b57506000611054565b600080610f8784611516565b61ffff8216600090815260036020526040902054919350915073ffffffffffffffffffffffffffffffffffffffff1680610fc75760009350505050611054565b8073ffffffffffffffffffffffffffffffffffffffff1663b5ab58dc836040518263ffffffff1660e01b8152600401808267ffffffffffffffff16815260200191505060206040518083038186803b15801561102257600080fd5b505afa158015611036573d6000803e3d6000fd5b505050506040513d602081101561104c57600080fd5b505193505050505b919050565b600069ffffffffffffffffffff82111561107557506000611054565b60008061108184611516565b61ffff8216600090815260036020526040902054919350915073ffffffffffffffffffffffffffffffffffffffff16806110c15760009350505050611054565b8073ffffffffffffffffffffffffffffffffffffffff1663b633620c836040518263ffffffff1660e01b8152600401808267ffffffffffffffff16815260200191505060206040518083038186803b15801561102257600080fd5b61ffff1660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146111ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811633141561126f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60005473ffffffffffffffffffffffffffffffffffffffff16331461136b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560045460405191926201000090910416907fc0f151710f03d713b71d9970cee0d5b11ddc9a7552abaa3f6ee818010f21600d90600090a350565b60008060008060006113f961161b565b506040805180820182526004805461ffff8116835262010000900473ffffffffffffffffffffffffffffffffffffffff166020830181905283517ffeaf968c00000000000000000000000000000000000000000000000000000000815293519293909263feaf968c928281019260a0929190829003018186803b15801561147f57600080fd5b505afa158015611493573d6000803e3d6000fd5b505050506040513d60a08110156114a957600080fd5b5080516020820151604083015160608401516080909401518551939a5091985096509194509092506114e4908790879087908790879061151e565b95509550955095509550509091929394565b67ffffffffffffffff1660409190911b69ffff0000000000000000161790565b604081901c91565b6000806000806000611530868c6114f6565b8a8a8a61153d8a8c6114f6565b939f929e50909c509a509098509650505050505050565b60048054604080518082018252600161ffff808516919091011680825273ffffffffffffffffffffffffffffffffffffffff9590951660209182018190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000090931685177fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000084021790935560009384526003909252912080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b60408051808201909152600080825260208201529056fea2646970667358221220f2edc0edf786e577484f767f67051035691d77c67fb1416444b66d7bdefd6e0464736f6c63430007000033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
