{
  "_format": "hh-sol-artifact-1",
  "contractName": "WitnetRequestRandomness",
  "sourceName": "witnet-solidity-bridge/contracts/requests/WitnetRequestRandomness.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "by",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract Clonable",
          "name": "self",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract Clonable",
          "name": "clone",
          "type": "address"
        }
      ],
      "name": "Cloned",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "by",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "numWitnesses",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "minWitnessingConsensus",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "witnssingCollateral",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "witnessingReward",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "witnessingUnitaryFee",
          "type": "uint64"
        }
      ],
      "name": "WitnessingParamsChanged",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "bytecode",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "clone",
      "outputs": [
        {
          "internalType": "contract Clonable",
          "name": "_instance",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_salt",
          "type": "bytes32"
        }
      ],
      "name": "cloneDeterministic",
      "outputs": [
        {
          "internalType": "contract Clonable",
          "name": "_instance",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cloned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "hash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "self",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_witnessingCollateral",
          "type": "uint64"
        }
      ],
      "name": "setWitnessingCollateral",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_witnessingReward",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "_witnessingUnitaryFee",
          "type": "uint64"
        }
      ],
      "name": "setWitnessingFees",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_numWitnesses",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "_minWitnessingConsensus",
          "type": "uint8"
        }
      ],
      "name": "setWitnessingQuorum",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "template",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalWitnessingCollateral",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalWitnessingFee",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witnessingParams",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "numWitnesses",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "minWitnessingConsensus",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingCollateral",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "witnessingReward",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "witnessingUnitaryFee",
              "type": "uint64"
            }
          ],
          "internalType": "struct WitnetRequestMalleableBase.WitnetRequestWitnessingParams",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000686200005c6200008e60201b60201c565b6200009660201b60201c565b62000088604051806020016040528060008152506200017e60201b60201c565b62001259565b600033905090565b6000620000a8620001cc60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081620000df620001cc60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001c96040518060400160405280601181526020017f0a0f120508021a01801a0210022202100b000000000000000000000000000000815250620001f460201b62000e261760201c565b50565b60007f375930152e1d0d102998be6e496b0cee86c9ecd0efef01014ecff169b17dfba7905090565b600062000206620001cc60201b60201c565b6001018054620002169062000f58565b9050146200025b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002529062000d78565b60405180910390fd5b6200026c816200028f60201b60201c565b6200028c620002806200008e60201b60201c565b6200009660201b60201c565b50565b6000815111620002a457620002a362000fc4565b5b80620002b5620001cc60201b60201c565b6001019080519060200190620002cd92919062000a17565b506000620002e0620001cc60201b60201c565b600401905060028160000160006101000a81548160ff021916908360ff16021790555060338160000160016101000a81548160ff021916908360ff160217905550633b9aca008160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506207a12081600001600a6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506203d0908160000160126101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506200042b8160000160009054906101000a900460ff168260000160019054906101000a900460ff168360000160029054906101000a900467ffffffffffffffff1684600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff166200042f60201b60201c565b5050565b60008267ffffffffffffffff16116200047f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004769062000d56565b60405180910390fd5b60018560ff1610158015620004985750607f8560ff1611155b620004da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004d19062000d9a565b60405180910390fd5b60338460ff1610158015620004f3575060638460ff1611155b62000535576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200052c9062000d34565b60405180910390fd5b633b9aca008367ffffffffffffffff16101562000589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005809062000dbc565b60405180910390fd5b62000599620001cc60201b60201c565b600101620005b2601060f81b846200078860201b60201c565b620005c8601860f81b886200099a60201b60201c565b620005de602060f81b856200078860201b60201c565b620005f4602860f81b896200099a60201b60201c565b6200060a603060f81b896200078860201b60201c565b604051602001620006219695949392919062000cd0565b60405160208183030381529060405262000640620001cc60201b60201c565b60020190805190602001906200065892919062000a17565b50620007126200066d620001cc60201b60201c565b60020180546200067d9062000f58565b80601f0160208091040260200160405190810160405280929190818152602001828054620006ab9062000f58565b8015620006fc5780601f10620006d057610100808354040283529160200191620006fc565b820191906000526020600020905b815481529060010190602001808311620006de57829003601f168201915b5050505050620009b960201b62000e9c1760201c565b62000722620001cc60201b60201c565b600301819055503373ffffffffffffffffffffffffffffffffffffffff167f897a395aeb2699d9730b6377870654a5c371d6bb6dc4486cfc5c80eeafd095b086868686866040516200077995949392919062000dde565b60405180910390a25050505050565b606060008290506000600290505b607f8267ffffffffffffffff161115620007d25760078267ffffffffffffffff16901c9150600181620007ca919062000e77565b905062000796565b60008167ffffffffffffffff1667ffffffffffffffff811115620007fb57620007fa62001080565b5b6040519080825280601f01601f1916602001820160405280156200082e5781602001600182028036833780820191505090505b50905084925085816000815181106200084c576200084b62001051565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600190505b8267ffffffffffffffff168167ffffffffffffffff1610156200091f57607f841660801760f81b828267ffffffffffffffff1681518110620008c957620008c862001051565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060078467ffffffffffffffff16901c93508080620009169062000f8e565b91505062000882565b50607f60f81b8160018462000935919062000ebc565b67ffffffffffffffff168151811062000953576200095262001051565b5b6020010181815160f81c60f81b169150907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080935050505092915050565b6060620009b1838360ff166200078860201b60201c565b905092915050565b6000600282604051620009cd919062000cb7565b602060405180830381855afa158015620009eb573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019062000a10919062000ade565b9050919050565b82805462000a259062000f58565b90600052602060002090601f01602090048101928262000a49576000855562000a95565b82601f1062000a6457805160ff191683800117855562000a95565b8280016001018555821562000a95579182015b8281111562000a9457825182559160200191906001019062000a77565b5b50905062000aa4919062000aa8565b5090565b5b8082111562000ac357600081600090555060010162000aa9565b5090565b60008151905062000ad8816200123f565b92915050565b60006020828403121562000af75762000af6620010af565b5b600062000b078482850162000ac7565b91505092915050565b600062000b1d8262000e50565b62000b29818562000e5b565b935062000b3b81856020860162000f22565b80840191505092915050565b6000815462000b568162000f58565b62000b62818662000e5b565b9450600182166000811462000b80576001811462000b925762000bc9565b60ff1983168652818601935062000bc9565b62000b9d8562000e3b565b60005b8381101562000bc15781548189015260018201915060208101905062000ba0565b838801955050505b50505092915050565b600062000be1603d8362000e66565b915062000bee82620010b4565b604082019050919050565b600062000c0860258362000e66565b915062000c158262001103565b604082019050919050565b600062000c2f602f8362000e66565b915062000c3c8262001152565b604082019050919050565b600062000c56603c8362000e66565b915062000c6382620011a1565b604082019050919050565b600062000c7d603d8362000e66565b915062000c8a82620011f0565b604082019050919050565b62000ca08162000f01565b82525050565b62000cb18162000f15565b82525050565b600062000cc5828462000b10565b915081905092915050565b600062000cde828962000b47565b915062000cec828862000b10565b915062000cfa828762000b10565b915062000d08828662000b10565b915062000d16828562000b10565b915062000d24828462000b10565b9150819050979650505050505050565b6000602082019050818103600083015262000d4f8162000bd2565b9050919050565b6000602082019050818103600083015262000d718162000bf9565b9050919050565b6000602082019050818103600083015262000d938162000c20565b9050919050565b6000602082019050818103600083015262000db58162000c47565b9050919050565b6000602082019050818103600083015262000dd78162000c6e565b9050919050565b600060a08201905062000df5600083018862000ca6565b62000e04602083018762000ca6565b62000e13604083018662000c95565b62000e22606083018562000c95565b62000e31608083018462000c95565b9695505050505050565b60008190508160005260206000209050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600062000e848262000f01565b915062000e918362000f01565b92508267ffffffffffffffff0382111562000eb15762000eb062000ff3565b5b828201905092915050565b600062000ec98262000f01565b915062000ed68362000f01565b92508282101562000eec5762000eeb62000ff3565b5b828203905092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b60005b8381101562000f4257808201518184015260208101905062000f25565b8381111562000f52576000848401525b50505050565b6000600282049050600182168062000f7157607f821691505b6020821081141562000f885762000f8762001022565b5b50919050565b600062000f9b8262000f01565b915067ffffffffffffffff82141562000fb95762000fb862000ff3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6e73656e737573206f7574206f662072616e6765000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e6f207260008201527f6577617264000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a20616c726560008201527f61647920696e697469616c697a65640000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e756d6260008201527f6572206f66207769746e6573736573206f7574206f662072616e676500000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6c6c61746572616c2062656c6f77203120574954000000602082015250565b6200124a8162000ef7565b81146200125657600080fd5b50565b60805160601c612a156200129b600039600081816106290152818161079101528181610f220152818161102a01528181611473015261157c0152612a156000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063daaa360c11610071578063daaa360c14610287578063ef53d97a146102b7578063f0940002146102d5578063f2fde38b146102f3578063ff21c3ba1461030f57610116565b80638da5cb5b14610213578063a04daef014610231578063d196c2e31461024f578063d9b9a9611461026b57610116565b806352d1902d116100e957806352d1902d146101915780636f2ddd93146101af5780637104ddb2146101cd578063715018a6146101eb5780638a481dad146101f557610116565b806309bd5a601461011b57806309ed460714610139578063439fab911461015757806348f9b83114610173575b600080fd5b61012361032b565b6040516101309190612113565b60405180910390f35b61014161033e565b60405161014e9190612172565b60405180910390f35b610171600480360381019061016c9190611be5565b61042d565b005b61017b61046e565b60405161018891906122ad565b60405180910390f35b610199610561565b6040516101a69190612113565b60405180910390f35b6101b761058c565b6040516101c4919061212e565b60405180910390f35b6101d5610627565b6040516101e291906120dd565b60405180910390f35b6101f361064b565b005b6101fd6106d3565b60405161020a91906122c8565b60405180910390f35b61021b61075a565b60405161022891906120dd565b60405180910390f35b61023961078d565b60405161024691906120f8565b60405180910390f35b61026960048036038101906102649190611c9b565b6107e4565b005b61028560048036038101906102809190611c2e565b610903565b005b6102a1600480360381019061029c9190611b8b565b610a1c565b6040516102ae9190612172565b60405180910390f35b6102bf610b0e565b6040516102cc91906122c8565b60405180910390f35b6102dd610b66565b6040516102ea919061212e565b60405180910390f35b61030d60048036038101906103089190611b5e565b610c01565b005b61032960048036038101906103249190611c5b565b610cf9565b005b6000610335610ef5565b60030154905090565b6000610348610f1d565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab9161036e610ef5565b6001016040518263ffffffff1660e01b815260040161038d9190612150565b600060405180830381600087803b1580156103a757600080fd5b505af11580156103bb573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b81526004016103f891906120dd565b600060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b5050505090565b61046b6040518060400160405280601181526020017f0a0f120508021a01801a0210022202100b000000000000000000000000000000815250610e26565b50565b61047661198f565b61047e610ef5565b6004016040518060a00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201600a9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160129054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050905090565b60007f851d0a92a3ad30295bef33afc69d6874779826b7789386b336e22621365ed2c260001b905090565b6060610596610ef5565b60010180546105a49061258a565b80601f01602080910402602001604051908101604052809291908181526020018280546105d09061258a565b801561061d5780601f106105f25761010080835404028352916020019161061d565b820191906000526020600020905b81548152906001019060200180831161060057829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6106536110a6565b73ffffffffffffffffffffffffffffffffffffffff1661067161075a565b73ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be9061224d565b60405180910390fd5b6106d160006110ae565b565b6000806106de610ef5565b600401905080600001600a9054906101000a900467ffffffffffffffff168160000160129054906101000a900467ffffffffffffffff1660026107219190612417565b61072b91906123d9565b8160000160009054906101000a900460ff1660ff1661074a9190612417565b67ffffffffffffffff1691505090565b6000610764610ef5565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415905090565b6107ec6110a6565b73ffffffffffffffffffffffffffffffffffffffff1661080a61075a565b73ffffffffffffffffffffffffffffffffffffffff1614610860576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108579061224d565b60405180910390fd5b600061086a610ef5565b6004019050828160000160006101000a81548160ff021916908360ff160217905550818160000160016101000a81548160ff021916908360ff1602179055506108fe83838360000160029054906101000a900467ffffffffffffffff1684600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b505050565b61090b6110a6565b73ffffffffffffffffffffffffffffffffffffffff1661092961075a565b73ffffffffffffffffffffffffffffffffffffffff161461097f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109769061224d565b60405180910390fd5b6000610989610ef5565b6004019050818160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610a188160000160009054906101000a900460ff168260000160019054906101000a900460ff168484600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b5050565b6000610a278261146e565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91610a4d610ef5565b6001016040518263ffffffff1660e01b8152600401610a6c9190612150565b600060405180830381600087803b158015610a8657600080fd5b505af1158015610a9a573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401610ad791906120dd565b600060405180830381600087803b158015610af157600080fd5b505af1158015610b05573d6000803e3d6000fd5b50505050919050565b600080610b19610ef5565b60040190508060000160029054906101000a900467ffffffffffffffff168160000160009054906101000a900460ff1660ff16610b569190612417565b67ffffffffffffffff1691505090565b6060610b70610ef5565b6002018054610b7e9061258a565b80601f0160208091040260200160405190810160405280929190818152602001828054610baa9061258a565b8015610bf75780601f10610bcc57610100808354040283529160200191610bf7565b820191906000526020600020905b815481529060010190602001808311610bda57829003601f168201915b5050505050905090565b610c096110a6565b73ffffffffffffffffffffffffffffffffffffffff16610c2761075a565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c749061224d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce49061218d565b60405180910390fd5b610cf6816110ae565b50565b610d016110a6565b73ffffffffffffffffffffffffffffffffffffffff16610d1f61075a565b73ffffffffffffffffffffffffffffffffffffffff1614610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c9061224d565b60405180910390fd5b6000610d7f610ef5565b60040190508281600001600a6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550818160000160126101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610e218160000160009054906101000a900460ff168260000160019054906101000a900460ff168360000160029054906101000a900467ffffffffffffffff168686611186565b505050565b6000610e30610ef5565b6001018054610e3e9061258a565b905014610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e779061220d565b60405180910390fd5b610e89816115fa565b610e99610e946110a6565b6110ae565b50565b6000600282604051610eae919061206e565b602060405180830381855afa158015610ecb573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610eee9190611bb8565b9050919050565b60007f375930152e1d0d102998be6e496b0cee86c9ecd0efef01014ecff169b17dfba7905090565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611011576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110089061228d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b600033905090565b60006110b8610ef5565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816110e7610ef5565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008267ffffffffffffffff16116111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906121cd565b60405180910390fd5b60018560ff16101580156111eb5750607f8560ff1611155b61122a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112219061222d565b60405180910390fd5b60338460ff1610158015611242575060638460ff1611155b611281576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611278906121ad565b60405180910390fd5b633b9aca008367ffffffffffffffff1610156112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c99061226d565b60405180910390fd5b6112da610ef5565b6001016112eb601060f81b8461177d565b6112f9601860f81b88611978565b611307602060f81b8561177d565b611315602860f81b89611978565b611323603060f81b8961177d565b60405160200161133896959493929190612085565b60405160208183030381529060405261134f610ef5565b60020190805190602001906113659291906119e2565b50611402611371610ef5565b600201805461137f9061258a565b80601f01602080910402602001604051908101604052809291908181526020018280546113ab9061258a565b80156113f85780601f106113cd576101008083540402835291602001916113f8565b820191906000526020600020905b8154815290600101906020018083116113db57829003601f168201915b5050505050610e9c565b61140a610ef5565b600301819055503373ffffffffffffffffffffffffffffffffffffffff167f897a395aeb2699d9730b6377870654a5c371d6bb6dc4486cfc5c80eeafd095b0868686868660405161145f9594939291906122e3565b60405180910390a25050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152836037826000f5925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a906121ed565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a450919050565b600081511161160c5761160b61261e565b5b80611615610ef5565b600101908051906020019061162b9291906119e2565b506000611636610ef5565b600401905060028160000160006101000a81548160ff021916908360ff16021790555060338160000160016101000a81548160ff021916908360ff160217905550633b9aca008160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506207a12081600001600a6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506203d0908160000160126101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506117798160000160009054906101000a900460ff168260000160019054906101000a900460ff168360000160029054906101000a900467ffffffffffffffff1684600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b5050565b606060008290506000600290505b607f8267ffffffffffffffff1611156117c35760078267ffffffffffffffff16901c91506001816117bc91906123d9565b905061178b565b60008167ffffffffffffffff1667ffffffffffffffff8111156117e9576117e86126da565b5b6040519080825280601f01601f19166020018201604052801561181b5781602001600182028036833780820191505090505b5090508492508581600081518110611836576118356126ab565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600190505b8267ffffffffffffffff168167ffffffffffffffff16101561190257607f841660801760f81b828267ffffffffffffffff16815181106118af576118ae6126ab565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060078467ffffffffffffffff16901c935080806118fa906125ed565b91505061186c565b50607f60f81b816001846119169190612459565b67ffffffffffffffff1681518110611931576119306126ab565b5b6020010181815160f81c60f81b169150907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080935050505092915050565b6060611987838360ff1661177d565b905092915050565b6040518060a00160405280600060ff168152602001600060ff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b8280546119ee9061258a565b90600052602060002090601f016020900481019282611a105760008555611a57565b82601f10611a2957805160ff1916838001178555611a57565b82800160010185558215611a57579182015b82811115611a56578251825591602001919060010190611a3b565b5b509050611a649190611a68565b5090565b5b80821115611a81576000816000905550600101611a69565b5090565b6000611a98611a938461235b565b612336565b905082815260208101848484011115611ab457611ab361270e565b5b611abf848285612548565b509392505050565b600081359050611ad681612983565b92915050565b600081359050611aeb8161299a565b92915050565b600081519050611b008161299a565b92915050565b600082601f830112611b1b57611b1a612709565b5b8135611b2b848260208601611a85565b91505092915050565b600081359050611b43816129b1565b92915050565b600081359050611b58816129c8565b92915050565b600060208284031215611b7457611b73612718565b5b6000611b8284828501611ac7565b91505092915050565b600060208284031215611ba157611ba0612718565b5b6000611baf84828501611adc565b91505092915050565b600060208284031215611bce57611bcd612718565b5b6000611bdc84828501611af1565b91505092915050565b600060208284031215611bfb57611bfa612718565b5b600082013567ffffffffffffffff811115611c1957611c18612713565b5b611c2584828501611b06565b91505092915050565b600060208284031215611c4457611c43612718565b5b6000611c5284828501611b34565b91505092915050565b60008060408385031215611c7257611c71612718565b5b6000611c8085828601611b34565b9250506020611c9185828601611b34565b9150509250929050565b60008060408385031215611cb257611cb1612718565b5b6000611cc085828601611b49565b9250506020611cd185828601611b49565b9150509250929050565b611ce48161248d565b82525050565b611cf38161249f565b82525050565b611d02816124ab565b82525050565b6000611d13826123a1565b611d1d81856123ac565b9350611d2d818560208601612557565b611d368161271d565b840191505092915050565b6000611d4c826123a1565b611d5681856123bd565b9350611d66818560208601612557565b80840191505092915050565b60008154611d7f8161258a565b611d8981866123ac565b94506001821660008114611da45760018114611db657611de9565b60ff1983168652602086019350611de9565b611dbf8561238c565b60005b83811015611de157815481890152600182019150602081019050611dc2565b808801955050505b50505092915050565b60008154611dff8161258a565b611e0981866123bd565b94506001821660008114611e245760018114611e3557611e68565b60ff19831686528186019350611e68565b611e3e8561238c565b60005b83811015611e6057815481890152600182019150602081019050611e41565b838801955050505b50505092915050565b611e7a81612512565b82525050565b6000611e8d6026836123c8565b9150611e988261272e565b604082019050919050565b6000611eb0603d836123c8565b9150611ebb8261277d565b604082019050919050565b6000611ed36025836123c8565b9150611ede826127cc565b604082019050919050565b6000611ef66018836123c8565b9150611f018261281b565b602082019050919050565b6000611f19602f836123c8565b9150611f2482612844565b604082019050919050565b6000611f3c603c836123c8565b9150611f4782612893565b604082019050919050565b6000611f5f6020836123c8565b9150611f6a826128e2565b602082019050919050565b6000611f82603d836123c8565b9150611f8d8261290b565b604082019050919050565b6000611fa56017836123c8565b9150611fb08261295a565b602082019050919050565b60a082016000820151611fd16000850182612050565b506020820151611fe46020850182612050565b506040820151611ff76040850182612032565b50606082015161200a6060850182612032565b50608082015161201d6080850182612032565b50505050565b61202c816124b5565b82525050565b61203b816124f1565b82525050565b61204a816124f1565b82525050565b61205981612505565b82525050565b61206881612505565b82525050565b600061207a8284611d41565b915081905092915050565b60006120918289611df2565b915061209d8288611d41565b91506120a98287611d41565b91506120b58286611d41565b91506120c18285611d41565b91506120cd8284611d41565b9150819050979650505050505050565b60006020820190506120f26000830184611cdb565b92915050565b600060208201905061210d6000830184611cea565b92915050565b60006020820190506121286000830184611cf9565b92915050565b600060208201905081810360008301526121488184611d08565b905092915050565b6000602082019050818103600083015261216a8184611d72565b905092915050565b60006020820190506121876000830184611e71565b92915050565b600060208201905081810360008301526121a681611e80565b9050919050565b600060208201905081810360008301526121c681611ea3565b9050919050565b600060208201905081810360008301526121e681611ec6565b9050919050565b6000602082019050818103600083015261220681611ee9565b9050919050565b6000602082019050818103600083015261222681611f0c565b9050919050565b6000602082019050818103600083015261224681611f2f565b9050919050565b6000602082019050818103600083015261226681611f52565b9050919050565b6000602082019050818103600083015261228681611f75565b9050919050565b600060208201905081810360008301526122a681611f98565b9050919050565b600060a0820190506122c26000830184611fbb565b92915050565b60006020820190506122dd6000830184612023565b92915050565b600060a0820190506122f8600083018861205f565b612305602083018761205f565b6123126040830186612041565b61231f6060830185612041565b61232c6080830184612041565b9695505050505050565b6000612340612351565b905061234c82826125bc565b919050565b6000604051905090565b600067ffffffffffffffff821115612376576123756126da565b5b61237f8261271d565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006123e4826124f1565b91506123ef836124f1565b92508267ffffffffffffffff0382111561240c5761240b61264d565b5b828201905092915050565b6000612422826124f1565b915061242d836124f1565b92508167ffffffffffffffff048311821515161561244e5761244d61264d565b5b828202905092915050565b6000612464826124f1565b915061246f836124f1565b9250828210156124825761248161264d565b5b828203905092915050565b6000612498826124d1565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b600061251d82612524565b9050919050565b600061252f82612536565b9050919050565b6000612541826124d1565b9050919050565b82818337600083830152505050565b60005b8381101561257557808201518184015260208101905061255a565b83811115612584576000848401525b50505050565b600060028204905060018216806125a257607f821691505b602082108114156125b6576125b561267c565b5b50919050565b6125c58261271d565b810181811067ffffffffffffffff821117156125e4576125e36126da565b5b80604052505050565b60006125f8826124f1565b915067ffffffffffffffff8214156126135761261261264d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6e73656e737573206f7574206f662072616e6765000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e6f207260008201527f6577617264000000000000000000000000000000000000000000000000000000602082015250565b7f436c6f6e61626c653a2043524541544532206661696c65640000000000000000600082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a20616c726560008201527f61647920696e697469616c697a65640000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e756d6260008201527f6572206f66207769746e6573736573206f7574206f662072616e676500000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6c6c61746572616c2062656c6f77203120574954000000602082015250565b7f436c6f6e61626c653a20435245415445206661696c6564000000000000000000600082015250565b61298c8161248d565b811461299757600080fd5b50565b6129a3816124ab565b81146129ae57600080fd5b50565b6129ba816124f1565b81146129c557600080fd5b50565b6129d181612505565b81146129dc57600080fd5b5056fea264697066735822122018d3be95fdcbd8bc6f0654dc2eb3dcdc04b923b60a7642bd2f454937f279d0f064736f6c63430008070033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063daaa360c11610071578063daaa360c14610287578063ef53d97a146102b7578063f0940002146102d5578063f2fde38b146102f3578063ff21c3ba1461030f57610116565b80638da5cb5b14610213578063a04daef014610231578063d196c2e31461024f578063d9b9a9611461026b57610116565b806352d1902d116100e957806352d1902d146101915780636f2ddd93146101af5780637104ddb2146101cd578063715018a6146101eb5780638a481dad146101f557610116565b806309bd5a601461011b57806309ed460714610139578063439fab911461015757806348f9b83114610173575b600080fd5b61012361032b565b6040516101309190612113565b60405180910390f35b61014161033e565b60405161014e9190612172565b60405180910390f35b610171600480360381019061016c9190611be5565b61042d565b005b61017b61046e565b60405161018891906122ad565b60405180910390f35b610199610561565b6040516101a69190612113565b60405180910390f35b6101b761058c565b6040516101c4919061212e565b60405180910390f35b6101d5610627565b6040516101e291906120dd565b60405180910390f35b6101f361064b565b005b6101fd6106d3565b60405161020a91906122c8565b60405180910390f35b61021b61075a565b60405161022891906120dd565b60405180910390f35b61023961078d565b60405161024691906120f8565b60405180910390f35b61026960048036038101906102649190611c9b565b6107e4565b005b61028560048036038101906102809190611c2e565b610903565b005b6102a1600480360381019061029c9190611b8b565b610a1c565b6040516102ae9190612172565b60405180910390f35b6102bf610b0e565b6040516102cc91906122c8565b60405180910390f35b6102dd610b66565b6040516102ea919061212e565b60405180910390f35b61030d60048036038101906103089190611b5e565b610c01565b005b61032960048036038101906103249190611c5b565b610cf9565b005b6000610335610ef5565b60030154905090565b6000610348610f1d565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab9161036e610ef5565b6001016040518263ffffffff1660e01b815260040161038d9190612150565b600060405180830381600087803b1580156103a757600080fd5b505af11580156103bb573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b81526004016103f891906120dd565b600060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b5050505090565b61046b6040518060400160405280601181526020017f0a0f120508021a01801a0210022202100b000000000000000000000000000000815250610e26565b50565b61047661198f565b61047e610ef5565b6004016040518060a00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201600a9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160129054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050905090565b60007f851d0a92a3ad30295bef33afc69d6874779826b7789386b336e22621365ed2c260001b905090565b6060610596610ef5565b60010180546105a49061258a565b80601f01602080910402602001604051908101604052809291908181526020018280546105d09061258a565b801561061d5780601f106105f25761010080835404028352916020019161061d565b820191906000526020600020905b81548152906001019060200180831161060057829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6106536110a6565b73ffffffffffffffffffffffffffffffffffffffff1661067161075a565b73ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be9061224d565b60405180910390fd5b6106d160006110ae565b565b6000806106de610ef5565b600401905080600001600a9054906101000a900467ffffffffffffffff168160000160129054906101000a900467ffffffffffffffff1660026107219190612417565b61072b91906123d9565b8160000160009054906101000a900460ff1660ff1661074a9190612417565b67ffffffffffffffff1691505090565b6000610764610ef5565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415905090565b6107ec6110a6565b73ffffffffffffffffffffffffffffffffffffffff1661080a61075a565b73ffffffffffffffffffffffffffffffffffffffff1614610860576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108579061224d565b60405180910390fd5b600061086a610ef5565b6004019050828160000160006101000a81548160ff021916908360ff160217905550818160000160016101000a81548160ff021916908360ff1602179055506108fe83838360000160029054906101000a900467ffffffffffffffff1684600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b505050565b61090b6110a6565b73ffffffffffffffffffffffffffffffffffffffff1661092961075a565b73ffffffffffffffffffffffffffffffffffffffff161461097f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109769061224d565b60405180910390fd5b6000610989610ef5565b6004019050818160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610a188160000160009054906101000a900460ff168260000160019054906101000a900460ff168484600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b5050565b6000610a278261146e565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91610a4d610ef5565b6001016040518263ffffffff1660e01b8152600401610a6c9190612150565b600060405180830381600087803b158015610a8657600080fd5b505af1158015610a9a573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401610ad791906120dd565b600060405180830381600087803b158015610af157600080fd5b505af1158015610b05573d6000803e3d6000fd5b50505050919050565b600080610b19610ef5565b60040190508060000160029054906101000a900467ffffffffffffffff168160000160009054906101000a900460ff1660ff16610b569190612417565b67ffffffffffffffff1691505090565b6060610b70610ef5565b6002018054610b7e9061258a565b80601f0160208091040260200160405190810160405280929190818152602001828054610baa9061258a565b8015610bf75780601f10610bcc57610100808354040283529160200191610bf7565b820191906000526020600020905b815481529060010190602001808311610bda57829003601f168201915b5050505050905090565b610c096110a6565b73ffffffffffffffffffffffffffffffffffffffff16610c2761075a565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c749061224d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce49061218d565b60405180910390fd5b610cf6816110ae565b50565b610d016110a6565b73ffffffffffffffffffffffffffffffffffffffff16610d1f61075a565b73ffffffffffffffffffffffffffffffffffffffff1614610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c9061224d565b60405180910390fd5b6000610d7f610ef5565b60040190508281600001600a6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550818160000160126101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610e218160000160009054906101000a900460ff168260000160019054906101000a900460ff168360000160029054906101000a900467ffffffffffffffff168686611186565b505050565b6000610e30610ef5565b6001018054610e3e9061258a565b905014610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e779061220d565b60405180910390fd5b610e89816115fa565b610e99610e946110a6565b6110ae565b50565b6000600282604051610eae919061206e565b602060405180830381855afa158015610ecb573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610eee9190611bb8565b9050919050565b60007f375930152e1d0d102998be6e496b0cee86c9ecd0efef01014ecff169b17dfba7905090565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611011576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110089061228d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b600033905090565b60006110b8610ef5565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816110e7610ef5565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008267ffffffffffffffff16116111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906121cd565b60405180910390fd5b60018560ff16101580156111eb5750607f8560ff1611155b61122a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112219061222d565b60405180910390fd5b60338460ff1610158015611242575060638460ff1611155b611281576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611278906121ad565b60405180910390fd5b633b9aca008367ffffffffffffffff1610156112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c99061226d565b60405180910390fd5b6112da610ef5565b6001016112eb601060f81b8461177d565b6112f9601860f81b88611978565b611307602060f81b8561177d565b611315602860f81b89611978565b611323603060f81b8961177d565b60405160200161133896959493929190612085565b60405160208183030381529060405261134f610ef5565b60020190805190602001906113659291906119e2565b50611402611371610ef5565b600201805461137f9061258a565b80601f01602080910402602001604051908101604052809291908181526020018280546113ab9061258a565b80156113f85780601f106113cd576101008083540402835291602001916113f8565b820191906000526020600020905b8154815290600101906020018083116113db57829003601f168201915b5050505050610e9c565b61140a610ef5565b600301819055503373ffffffffffffffffffffffffffffffffffffffff167f897a395aeb2699d9730b6377870654a5c371d6bb6dc4486cfc5c80eeafd095b0868686868660405161145f9594939291906122e3565b60405180910390a25050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152836037826000f5925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a906121ed565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a450919050565b600081511161160c5761160b61261e565b5b80611615610ef5565b600101908051906020019061162b9291906119e2565b506000611636610ef5565b600401905060028160000160006101000a81548160ff021916908360ff16021790555060338160000160016101000a81548160ff021916908360ff160217905550633b9aca008160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506207a12081600001600a6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506203d0908160000160126101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506117798160000160009054906101000a900460ff168260000160019054906101000a900460ff168360000160029054906101000a900467ffffffffffffffff1684600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b5050565b606060008290506000600290505b607f8267ffffffffffffffff1611156117c35760078267ffffffffffffffff16901c91506001816117bc91906123d9565b905061178b565b60008167ffffffffffffffff1667ffffffffffffffff8111156117e9576117e86126da565b5b6040519080825280601f01601f19166020018201604052801561181b5781602001600182028036833780820191505090505b5090508492508581600081518110611836576118356126ab565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600190505b8267ffffffffffffffff168167ffffffffffffffff16101561190257607f841660801760f81b828267ffffffffffffffff16815181106118af576118ae6126ab565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060078467ffffffffffffffff16901c935080806118fa906125ed565b91505061186c565b50607f60f81b816001846119169190612459565b67ffffffffffffffff1681518110611931576119306126ab565b5b6020010181815160f81c60f81b169150907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080935050505092915050565b6060611987838360ff1661177d565b905092915050565b6040518060a00160405280600060ff168152602001600060ff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b8280546119ee9061258a565b90600052602060002090601f016020900481019282611a105760008555611a57565b82601f10611a2957805160ff1916838001178555611a57565b82800160010185558215611a57579182015b82811115611a56578251825591602001919060010190611a3b565b5b509050611a649190611a68565b5090565b5b80821115611a81576000816000905550600101611a69565b5090565b6000611a98611a938461235b565b612336565b905082815260208101848484011115611ab457611ab361270e565b5b611abf848285612548565b509392505050565b600081359050611ad681612983565b92915050565b600081359050611aeb8161299a565b92915050565b600081519050611b008161299a565b92915050565b600082601f830112611b1b57611b1a612709565b5b8135611b2b848260208601611a85565b91505092915050565b600081359050611b43816129b1565b92915050565b600081359050611b58816129c8565b92915050565b600060208284031215611b7457611b73612718565b5b6000611b8284828501611ac7565b91505092915050565b600060208284031215611ba157611ba0612718565b5b6000611baf84828501611adc565b91505092915050565b600060208284031215611bce57611bcd612718565b5b6000611bdc84828501611af1565b91505092915050565b600060208284031215611bfb57611bfa612718565b5b600082013567ffffffffffffffff811115611c1957611c18612713565b5b611c2584828501611b06565b91505092915050565b600060208284031215611c4457611c43612718565b5b6000611c5284828501611b34565b91505092915050565b60008060408385031215611c7257611c71612718565b5b6000611c8085828601611b34565b9250506020611c9185828601611b34565b9150509250929050565b60008060408385031215611cb257611cb1612718565b5b6000611cc085828601611b49565b9250506020611cd185828601611b49565b9150509250929050565b611ce48161248d565b82525050565b611cf38161249f565b82525050565b611d02816124ab565b82525050565b6000611d13826123a1565b611d1d81856123ac565b9350611d2d818560208601612557565b611d368161271d565b840191505092915050565b6000611d4c826123a1565b611d5681856123bd565b9350611d66818560208601612557565b80840191505092915050565b60008154611d7f8161258a565b611d8981866123ac565b94506001821660008114611da45760018114611db657611de9565b60ff1983168652602086019350611de9565b611dbf8561238c565b60005b83811015611de157815481890152600182019150602081019050611dc2565b808801955050505b50505092915050565b60008154611dff8161258a565b611e0981866123bd565b94506001821660008114611e245760018114611e3557611e68565b60ff19831686528186019350611e68565b611e3e8561238c565b60005b83811015611e6057815481890152600182019150602081019050611e41565b838801955050505b50505092915050565b611e7a81612512565b82525050565b6000611e8d6026836123c8565b9150611e988261272e565b604082019050919050565b6000611eb0603d836123c8565b9150611ebb8261277d565b604082019050919050565b6000611ed36025836123c8565b9150611ede826127cc565b604082019050919050565b6000611ef66018836123c8565b9150611f018261281b565b602082019050919050565b6000611f19602f836123c8565b9150611f2482612844565b604082019050919050565b6000611f3c603c836123c8565b9150611f4782612893565b604082019050919050565b6000611f5f6020836123c8565b9150611f6a826128e2565b602082019050919050565b6000611f82603d836123c8565b9150611f8d8261290b565b604082019050919050565b6000611fa56017836123c8565b9150611fb08261295a565b602082019050919050565b60a082016000820151611fd16000850182612050565b506020820151611fe46020850182612050565b506040820151611ff76040850182612032565b50606082015161200a6060850182612032565b50608082015161201d6080850182612032565b50505050565b61202c816124b5565b82525050565b61203b816124f1565b82525050565b61204a816124f1565b82525050565b61205981612505565b82525050565b61206881612505565b82525050565b600061207a8284611d41565b915081905092915050565b60006120918289611df2565b915061209d8288611d41565b91506120a98287611d41565b91506120b58286611d41565b91506120c18285611d41565b91506120cd8284611d41565b9150819050979650505050505050565b60006020820190506120f26000830184611cdb565b92915050565b600060208201905061210d6000830184611cea565b92915050565b60006020820190506121286000830184611cf9565b92915050565b600060208201905081810360008301526121488184611d08565b905092915050565b6000602082019050818103600083015261216a8184611d72565b905092915050565b60006020820190506121876000830184611e71565b92915050565b600060208201905081810360008301526121a681611e80565b9050919050565b600060208201905081810360008301526121c681611ea3565b9050919050565b600060208201905081810360008301526121e681611ec6565b9050919050565b6000602082019050818103600083015261220681611ee9565b9050919050565b6000602082019050818103600083015261222681611f0c565b9050919050565b6000602082019050818103600083015261224681611f2f565b9050919050565b6000602082019050818103600083015261226681611f52565b9050919050565b6000602082019050818103600083015261228681611f75565b9050919050565b600060208201905081810360008301526122a681611f98565b9050919050565b600060a0820190506122c26000830184611fbb565b92915050565b60006020820190506122dd6000830184612023565b92915050565b600060a0820190506122f8600083018861205f565b612305602083018761205f565b6123126040830186612041565b61231f6060830185612041565b61232c6080830184612041565b9695505050505050565b6000612340612351565b905061234c82826125bc565b919050565b6000604051905090565b600067ffffffffffffffff821115612376576123756126da565b5b61237f8261271d565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006123e4826124f1565b91506123ef836124f1565b92508267ffffffffffffffff0382111561240c5761240b61264d565b5b828201905092915050565b6000612422826124f1565b915061242d836124f1565b92508167ffffffffffffffff048311821515161561244e5761244d61264d565b5b828202905092915050565b6000612464826124f1565b915061246f836124f1565b9250828210156124825761248161264d565b5b828203905092915050565b6000612498826124d1565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b600061251d82612524565b9050919050565b600061252f82612536565b9050919050565b6000612541826124d1565b9050919050565b82818337600083830152505050565b60005b8381101561257557808201518184015260208101905061255a565b83811115612584576000848401525b50505050565b600060028204905060018216806125a257607f821691505b602082108114156125b6576125b561267c565b5b50919050565b6125c58261271d565b810181811067ffffffffffffffff821117156125e4576125e36126da565b5b80604052505050565b60006125f8826124f1565b915067ffffffffffffffff8214156126135761261261264d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6e73656e737573206f7574206f662072616e6765000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e6f207260008201527f6577617264000000000000000000000000000000000000000000000000000000602082015250565b7f436c6f6e61626c653a2043524541544532206661696c65640000000000000000600082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a20616c726560008201527f61647920696e697469616c697a65640000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e756d6260008201527f6572206f66207769746e6573736573206f7574206f662072616e676500000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6c6c61746572616c2062656c6f77203120574954000000602082015250565b7f436c6f6e61626c653a20435245415445206661696c6564000000000000000000600082015250565b61298c8161248d565b811461299757600080fd5b50565b6129a3816124ab565b81146129ae57600080fd5b50565b6129ba816124f1565b81146129c557600080fd5b50565b6129d181612505565b81146129dc57600080fd5b5056fea264697066735822122018d3be95fdcbd8bc6f0654dc2eb3dcdc04b923b60a7642bd2f454937f279d0f064736f6c63430008070033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
