{
  "_format": "hh-sol-artifact-1",
  "contractName": "DMMFactory",
  "sourceName": "contracts/DMMFactory.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_feeToSetter",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "token0",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "token1",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "ampBps",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "totalPool",
          "type": "uint256"
        }
      ],
      "name": "PoolCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "feeTo",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "governmentFeeBps",
          "type": "uint16"
        }
      ],
      "name": "SetFeeConfiguration",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "feeToSetter",
          "type": "address"
        }
      ],
      "name": "SetFeeToSetter",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "allPools",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "allPoolsLength",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "ampBps",
          "type": "uint32"
        }
      ],
      "name": "createPool",
      "outputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "feeToSetter",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFeeConfiguration",
      "outputs": [
        {
          "internalType": "address",
          "name": "_feeTo",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "_governmentFeeBps",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token0",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "token1",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "getPoolAtIndex",
      "outputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token0",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "token1",
          "type": "address"
        }
      ],
      "name": "getPools",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "_tokenPools",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token0",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "token1",
          "type": "address"
        }
      ],
      "name": "getPoolsLength",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "name": "getUnamplifiedPool",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token0",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "token1",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "name": "isPool",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_feeTo",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "_governmentFeeBps",
          "type": "uint16"
        }
      ],
      "name": "setFeeConfiguration",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_feeToSetter",
          "type": "address"
        }
      ],
      "name": "setFeeToSetter",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516159e13803806159e18339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b0390921691909117905561597e806100636000396000f3fe60806040523480156200001157600080fd5b5060043610620000e85760003560e01c806365da9289116200008d578063ad5cb2e11162000063578063ad5cb2e11462000369578063eb787f6114620003a6578063efde4e64146200040257620000e8565b806365da928914620002a05780638fd6484014620002e6578063a2e74af6146200033357620000e8565b806341d1de9711620000c357806341d1de9714620001a0578063538633df14620001c05780635b1dc86f146200021057620000e8565b8063094b741514620000ed5780632900909d14620001205780633d82497e1462000162575b600080fd5b620000f76200040c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b62000160600480360360408110156200013857600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013561ffff1662000428565b005b620000f7600480360360408110156200017a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516620005f9565b620000f760048036036020811015620001b857600080fd5b50356200062c565b620001fe60048036036040811015620001d857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351662000661565b60408051918252519081900360200190f35b6200024e600480360360408110156200022857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516620006a9565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200028c57818101518382015260200162000272565b505050509050019250505060405180910390f35b620000f760048036036060811015620002b857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135620007c7565b620000f760048036036060811015620002fe57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff908116916020810135909116906040013563ffffffff1662000815565b62000160600480360360208110156200034b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000d5a565b6200037362000e5a565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835261ffff90911660208301528051918290030190f35b620003ee60048036036060811015620003be57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101358216916040909101351662000e95565b604080519115158252519081900360200190f35b620001fe62000edb565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314620004af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f444d4d3a20464f5242494444454e000000000000000000000000000000000000604482015290519081900360640190fd5b60008161ffff16118015620004c957506107d08161ffff16105b6200053557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f444d4d3a20494e56414c49442046454500000000000000000000000000000000604482015290519081900360640190fd5b6000805461ffff83167401000000000000000000000000000000000000000081027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff73ffffffffffffffffffffffffffffffffffffffff87167fffffffffffffffffffffffff00000000000000000000000000000000000000009094168417161790925560408051918252602082019290925281517fce65ee4e1b50c25affcecb736ecf577b5c46ff900efade2a6214267a8707628e929181900390910190a15050565b600360209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b600481815481106200063a57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526002602090815260408083209385168352929052908120620006a09062000ee1565b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600260209081526040808320938516835292905290812060609190620006ec9062000ee1565b90508067ffffffffffffffff811180156200070657600080fd5b5060405190808252806020026020018201604052801562000731578160200160208202803683370190505b50915060005b81811015620007bf5773ffffffffffffffffffffffffffffffffffffffff808616600090815260026020908152604080832093881683529290522062000784908263ffffffff62000eee16565b8382815181106200079157fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015260010162000737565b505092915050565b73ffffffffffffffffffffffffffffffffffffffff808416600090815260026020908152604080832093861683529290529081206200080d908363ffffffff62000eee16565b949350505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620008b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f444d4d3a204944454e544943414c5f4144445245535345530000000000000000604482015290519081900360640190fd5b6000808473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610620008f2578486620008f5565b85855b909250905073ffffffffffffffffffffffffffffffffffffffff82166200097d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f444d4d3a205a45524f5f41444452455353000000000000000000000000000000604482015290519081900360640190fd5b6127108463ffffffff161015620009f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f444d4d3a20494e56414c49445f42505300000000000000000000000000000000604482015290519081900360640190fd5b6127108463ffffffff1614158062000a3f575073ffffffffffffffffffffffffffffffffffffffff8281166000908152600360209081526040808320858516845290915290205416155b62000aab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f444d4d3a20554e414d504c49464945445f504f4f4c5f45584953545300000000604482015290519081900360640190fd5b60405162000ab99062001030565b604051809103906000f08015801562000ad6573d6000803e3d6000fd5b50604080517f6ecf2b2200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152848116602483015263ffffffff88166044830152915192955090851691636ecf2b229160648082019260009290919082900301818387803b15801562000b6057600080fd5b505af115801562000b75573d6000803e3d6000fd5b50505073ffffffffffffffffffffffffffffffffffffffff808416600090815260026020908152604080832093861683529290522062000bbd91508463ffffffff62000efc16565b5073ffffffffffffffffffffffffffffffffffffffff808216600090815260026020908152604080832093861683529290522062000c02908463ffffffff62000efc16565b506127108463ffffffff16141562000c8d5773ffffffffffffffffffffffffffffffffffffffff8083166000818152600360208181526040808420878716855282528084208054968a167fffffffffffffffffffffffff0000000000000000000000000000000000000000978816811790915592825280842094845293905291902080549092161790555b6004805460018101825560008290527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216821790925591546040805193845263ffffffff88166020850152838101919091525183821692918516917ffc574402c445e75f2b79b67884ff9c662244dce454c5ae68935fcd0bebb7c8ff919081900360600190a350509392505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331462000de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f444d4d3a20464f5242494444454e000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f66330d9620e4f36ed52d5f7b79fa819b71c33037004c3889a3601b06c68da7cc9181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff8116917401000000000000000000000000000000000000000090910461ffff1690565b73ffffffffffffffffffffffffffffffffffffffff808416600090815260026020908152604080832093861683529290529081206200080d908363ffffffff62000f2016565b60045490565b6000620006a38262000f44565b6000620006a0838362000f48565b6000620006a08373ffffffffffffffffffffffffffffffffffffffff841662000fc9565b6000620006a08373ffffffffffffffffffffffffffffffffffffffff841662001018565b5490565b8154600090821062000fa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620059276022913960400191505060405180910390fd5b82600001828154811062000fb657fe5b9060005260206000200154905092915050565b600062000fd7838362001018565b6200100f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620006a3565b506000620006a3565b60009081526001919091016020526040902054151590565b6148e8806200103f8339019056fe60806040523480156200001157600080fd5b5060006040518060400160405280600b81526020016a04b79626572444d4d204c560ac1b815250604051806040016040528060068152602001650444d4d2d4c560d41b815250604051806040016040528060018152602001603160f81b815250828281600390805190602001906200008b929190620001f4565b508051620000a1906004906020840190620001f4565b50506005805460ff19166012179055506040514690806052620048968239604080519182900360520182208751602098890120865196890196909620888401919091528282019590955260608201949094526080810192909252503060a0808301919091528251808303909101815260c0909101909152805192019190912060065550600160085560098054600160801b6001600160801b038085169182026001600160801b0319909316919091171617905562000168436001600160e01b036200019e16565b600a80546001600160801b03928316600160801b02921691909117905550600b80546001600160a01b031916331790556200028e565b60006001600160801b03821115620001f0576040805162461bcd60e51b815260206004820152601060248201526f0deeccae4ccd8deee40ead2dce86264760831b604482015290519081900360640190fd5b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023757805160ff191683800117855562000267565b8280016001018555821562000267579182015b82811115620002675782518255916020019190600101906200024a565b50620001f0926200028b9250905b80821115620001f0576000815560010162000275565b90565b6145f8806200029e6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637464fc3d11610104578063bc25cf77116100a2578063d669402711610071578063d669402714610730578063dd62ed3e1461077a578063f698da25146107b5578063fff6cae9146107bd576101da565b8063bc25cf771461068f578063c45a0155146106c2578063d21220a7146106ca578063d505accf146106d2576101da565b806395d89b41116100de57806395d89b411461060d578063a457c2d714610615578063a9059cbb1461064e578063ba9a7a5614610687576101da565b80637464fc3d146105865780637ecebe001461058e57806389afcb44146105c1576101da565b806323b872dd1161017c57806349386b161161014b57806349386b16146104b55780636a627842146104d65780636ecf2b221461050957806370a0823114610553576101da565b806323b872dd1461041357806330adf81f14610456578063313ce5671461045e578063395093511461047c576101da565b8063095ea7b3116101b8578063095ea7b3146103365780630d94d50b146103835780630dfe1681146103c857806318160ddd146103f9576101da565b8063022c0d9f146101df57806306fdde031461027a5780630902f1ac146102f7575b600080fd5b610278600480360360808110156101f557600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561023957600080fd5b82018360208201111561024b57600080fd5b8035906020019184600183028401116401000000008311171561026d57600080fd5b5090925090506107c5565b005b610282610e98565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bc5781810151838201526020016102a4565b50505050905090810190601f1680156102e95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ff610f4c565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61036f6004803603604081101561034c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610fa1565b604080519115158252519081900360200190f35b61038b610fbf565b604080516fffffffffffffffffffffffffffffffff9586168152938516602085015291841683830152909216606082015290519081900360800190f35b6103d0610ffe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61040161101a565b60408051918252519081900360200190f35b61036f6004803603606081101561042957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611020565b6104016110c8565b6104666110ec565b6040805160ff9092168252519081900360200190f35b61036f6004803603604081101561049257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356110f5565b6104bd611156565b6040805163ffffffff9092168252519081900360200190f35b610401600480360360208110156104ec57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611162565b6102786004803603606081101561051f57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff908116916020810135909116906040013563ffffffff166115d0565b6104016004803603602081101561056957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116e2565b61040161170e565b610401600480360360208110156105a457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611714565b6105f4600480360360208110156105d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611726565b6040805192835260208301919091528051918290030190f35b610282611d28565b61036f6004803603604081101561062b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611da7565b61036f6004803603604081101561066457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611e22565b610401611e36565b610278600480360360208110156106a557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611e3c565b6103d0612070565b6103d061208c565b610278600480360360e08110156106e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356120a8565b610738612374565b604080516dffffffffffffffffffffffffffff968716815294861660208601529285168484015293166060830152608082019290925290519081900360a00190f35b6104016004803603604081101561079057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516612409565b610401612441565b610278612447565b6002600854141561083757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026008558415158061084a5750600084115b6108b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f444d4d3a20494e53554646494349454e545f4f55545055545f414d4f554e5400604482015290519081900360640190fd5b60006108bf6143a1565b6108c7612710565b80519193509150871080156108df5750806020015186105b61094a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f444d4d3a20494e53554646494349454e545f4c49515549444954590000000000604482015290519081900360640190fd5b6109526143a1565b600c54600d5473ffffffffffffffffffffffffffffffffffffffff9182169190811690881682148015906109b257508073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b610a1d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f444d4d3a20494e56414c49445f544f0000000000000000000000000000000000604482015290519081900360640190fd5b8915610a4a57610a4a73ffffffffffffffffffffffffffffffffffffffff8316898c63ffffffff6127a216565b8815610a7757610a7773ffffffffffffffffffffffffffffffffffffffff8216898b63ffffffff6127a216565b8515610b59578773ffffffffffffffffffffffffffffffffffffffff166381279c7e338c8c8b8b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b4057600080fd5b505af1158015610b54573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610bc557600080fd5b505afa158015610bd9573d6000803e3d6000fd5b505050506040513d6020811015610bef57600080fd5b50518352604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8316916370a08231916024808301926020929190829003018186803b158015610c5f57600080fd5b505afa158015610c73573d6000803e3d6000fd5b505050506040513d6020811015610c8957600080fd5b505160208401528415610cef57835183516040860151610cc09291610cb4919063ffffffff61283416565b9063ffffffff6128a816565b6040840152602080850151908401516060860151610ce99291610cb4919063ffffffff61283416565b60608401525b5050815181516000918a900310610d07576000610d12565b82518251908a900390035b9050600088846020015103836020015111610d2e576000610d3c565b888460200151038360200151035b90506000821180610d4d5750600081115b610db857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f444d4d3a20494e53554646494349454e545f494e5055545f414d4f554e540000604482015290519081900360640190fd5b6000610e12838388610dcb578751610dd1565b87604001515b89610de0578860200151610de6565b88606001515b8a610df2578851610df8565b88604001515b8b610e07578960200151610e0d565b89606001515b61291f565b9050610e1e8685612a9a565b60408051848152602081018490528082018d9052606081018c905260808101839052905173ffffffffffffffffffffffffffffffffffffffff8b169133917f606ecd02b3e3b4778f8e97b2e03351de14224efaa5fa64e62200afc9395c24999181900360a00190a350506001600855505050505050505050565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f425780601f10610f1757610100808354040283529160200191610f42565b820191906000526020600020905b815481529060010190602001808311610f2557829003601f168201915b5050505050905090565b600e546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610fb5610fae612c97565b8484612c9b565b5060015b92915050565b600954600a546fffffffffffffffffffffffffffffffff8083169370010000000000000000000000000000000093849004821693838316930490911690565b600c5473ffffffffffffffffffffffffffffffffffffffff1681565b60025490565b600061102d848484612de2565b6110bd84611039612c97565b6110b8856040518060600160405280602881526020016144c06028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020526040812090611084612c97565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002054919063ffffffff612fbe16565b612c9b565b5060015b9392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60055460ff1690565b6000610fb5611102612c97565b846110b88560016000611113612c97565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61283416565b600f5463ffffffff1681565b6000600260085414156111d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260085560006111e56143a1565b6111ed612710565b915091506111f96143a1565b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561126a57600080fd5b505afa15801561127e573d6000803e3d6000fd5b505050506040513d602081101561129457600080fd5b50518152600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561130957600080fd5b505afa15801561131d573d6000803e3d6000fd5b505050506040513d602081101561133357600080fd5b5051602082015281518151600091611351919063ffffffff6128a816565b90506000611370846020015184602001516128a890919063ffffffff16565b9050600061137e868661306f565b9050600061138a61101a565b90508061143e5786156113ed57600f54855163ffffffff91821691612710916113b59184906131f016565b816113bc57fe5b0460408701526020860151612710906113de9063ffffffff808516906131f016565b816113e557fe5b046060870152505b61140b6103e8610cb4611406878763ffffffff6131f016565b613263565b97506114397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103e86132b4565b611503565b855161148190611454868463ffffffff6131f016565b8161145b57fe5b04876020015161147484876131f090919063ffffffff16565b8161147b57fe5b046133f1565b9750861561150357600061149b898363ffffffff61283416565b90506114ca826114b8838a604001516131f090919063ffffffff16565b816114bf57fe5b048760000151613407565b604087015260608701516114fc9083906114ea908463ffffffff6131f016565b816114f157fe5b048760200151613407565b6060870152505b6000881161155c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806144e86022913960400191505060405180910390fd5b61156689896132b4565b6115708786612a9a565b8115611584576115808786613417565b6010555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600855509395945050505050565b600b5473ffffffffffffffffffffffffffffffffffffffff16331461165657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f444d4d3a20464f5242494444454e000000000000000000000000000000000000604482015290519081900360640190fd5b600c80547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff95861617909155600d80549091169290931691909117909155600f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60105481565b60076020526000908152604090205481565b6000806002600854141561179b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260085560006117aa6143a1565b6117b2612710565b600c54600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561183357600080fd5b505afa158015611847573d6000803e3d6000fd5b505050506040513d602081101561185d57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b1580156118d157600080fd5b505afa1580156118e5573d6000803e3d6000fd5b505050506040513d60208110156118fb57600080fd5b505185519091508210801590611915575084602001518110155b61198057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f444d4d3a20554e53594e435f5245534552564553000000000000000000000000604482015290519081900360640190fd5b600061198b306116e2565b90506000611999888861306f565b905060006119a561101a565b9050806119b8848763ffffffff6131f016565b816119bf57fe5b049a50806119d3848663ffffffff6131f016565b816119da57fe5b04995060008b1180156119ed575060008a115b611a42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061447d6022913960400191505060405180910390fd5b611a4c308461343d565b611a7373ffffffffffffffffffffffffffffffffffffffff88168d8d63ffffffff6127a216565b611a9a73ffffffffffffffffffffffffffffffffffffffff87168d8c63ffffffff6127a216565b611aa26143a1565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611b0e57600080fd5b505afa158015611b22573d6000803e3d6000fd5b505050506040513d6020811015611b3857600080fd5b50518152604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b158015611ba857600080fd5b505afa158015611bbc573d6000803e3d6000fd5b505050506040513d6020811015611bd257600080fd5b505160208201528915611c865788518151600091611c1e91611bfa908663ffffffff6131f016565b81611c0157fe5b048b602001516114748686602001516131f090919063ffffffff16565b9050611c4d83611c3b838d604001516131f090919063ffffffff16565b81611c4257fe5b048360000151613407565b604083015260608a0151611c7f908490611c6d908463ffffffff6131f016565b81611c7457fe5b048360200151613407565b6060830152505b611c908a82612a9a565b8215611ca457611ca08a82613417565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001600881905550915091565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f425780601f10610f1757610100808354040283529160200191610f42565b6000610fb5611db4612c97565b846110b88560405180606001604052806025815260200161459e6025913960016000611dde612c97565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff612fbe16565b6000610fb5611e2f612c97565b8484612de2565b6103e881565b60026008541415611eae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600855600e54600c54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fa1938593611f7b936dffffffffffffffffffffffffffff9092169273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b158015611f4357600080fd5b505afa158015611f57573d6000803e3d6000fd5b505050506040513d6020811015611f6d57600080fd5b50519063ffffffff6128a816565b600c5473ffffffffffffffffffffffffffffffffffffffff16919063ffffffff6127a216565b600e54600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051612068938593612042936e0100000000000000000000000000009092046dffffffffffffffffffffffffffff169273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b158015611f4357600080fd5b600d5473ffffffffffffffffffffffffffffffffffffffff16919063ffffffff6127a216565b506001600855565b600b5473ffffffffffffffffffffffffffffffffffffffff1681565b600d5473ffffffffffffffffffffffffffffffffffffffff1681565b4284101561211757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f45524332305065726d69743a2045585049524544000000000000000000000000604482015290519081900360640190fd5b60065473ffffffffffffffffffffffffffffffffffffffff80891660008181526007602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612278573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906122f357508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61235e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20494e56414c49445f5349474e41545552450000604482015290519081900360640190fd5b612369898989612c9b565b505050505050505050565b600e54600f546dffffffffffffffffffffffffffff808316926e0100000000000000000000000000009004811691640100000000810482169172010000000000000000000000000000000000008204169060009063ffffffff166127108114156123df578593508492505b60006123ea43613593565b90506123fe6123f882613749565b83613948565b925050509091929394565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60065481565b600260085414156124b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260085560006124c86143a1565b6124d0612710565b9150915060006124e0838361306f565b90506124ea6143a1565b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255b57600080fd5b505afa15801561256f573d6000803e3d6000fd5b505050506040513d602081101561258557600080fd5b50518152600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156125fa57600080fd5b505afa15801561260e573d6000803e3d6000fd5b505050506040513d602081101561262457600080fd5b5051602082015283156126e757600061263b61101a565b8451835191925060009161267e919061265a908563ffffffff6131f016565b8161266157fe5b0486602001516114748587602001516131f090919063ffffffff16565b90506126ad8261269b8388604001516131f090919063ffffffff16565b816126a257fe5b048460000151613407565b604084015260608501516126df9083906126cd908463ffffffff6131f016565b816126d457fe5b048460200151613407565b606084015250505b6126f18482612a9a565b8115612705576127018482613417565b6010555b505060016008555050565b600061271a6143a1565b600e546dffffffffffffffffffffffffffff80821683526e010000000000000000000000000000909104166020820152600f5463ffffffff16612710148015925061279e57600f546dffffffffffffffffffffffffffff64010000000082048116604084015272010000000000000000000000000000000000009091041660608201525b9091565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261282f9084906139a4565b505050565b6000828201838110156110c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561291957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080612952886129468761293a8a8c63ffffffff6131f016565b9063ffffffff613a7c16565b9063ffffffff61283416565b905060006129604383613afd565b905061297c61296e82613749565b600f5463ffffffff16613948565b9250600061299886670de0b6b3a764000063ffffffff6131f016565b90506129ba6129ad8b8663ffffffff6131f016565b829063ffffffff6128a816565b9050670de0b6b3a76400008104905060006129e386670de0b6b3a764000063ffffffff6131f016565b90506129f86129ad8b8763ffffffff6131f016565b670de0b6b3a764000090049050612a0f89896131f0565b612a1f838363ffffffff6131f016565b1015612a8c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f444d4d3a204b0000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050509695505050505050565b805163ffffffff421690612aad90613e56565b600e80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff929092169190911790556020820151612afa90613e56565b600e80547fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000006dffffffffffffffffffffffffffff9390931692909202919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff8416021790558215612c3e578151604083015110801590612bb557508160200151826060015110155b612bbb57fe5b612bc88260400151613e56565b600f60046101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550612c098260600151613e56565b600f60126101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055505b6040808301516060808501518551602080880151865195865290850192909252838501529082015290517f2f9d55abfefdfd4c3a83e00a1b419b3c2fe4b83100c559f0e2213e57f6e0bba99181900360800190a1505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316612d07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806145506024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612d73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061440f6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316612e4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061452b6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612eba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806143ca6023913960400191505060405180910390fd5b612ec583838361282f565b612f15816040518060600160405280602681526020016144316026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919063ffffffff612fbe16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054612f57908263ffffffff61283416565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115613067576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561302c578181015183820152602001613014565b50505050905090810190601f1680156130595780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5cb2e16040518163ffffffff1660e01b8152600401604080518083038186803b1580156130db57600080fd5b505afa1580156130ef573d6000803e3d6000fd5b505050506040513d604081101561310557600080fd5b50805160209091015160105473ffffffffffffffffffffffffffffffffffffffff83161580159650929450909250906131db5780156131d657600061314d6114068888613417565b9050600061315a83613263565b9050808211156131d357600061319561ffff8616613189613181868663ffffffff6128a816565b61318961101a565b9063ffffffff6131f016565b905060006131af611388613189868663ffffffff61283416565b905060008183816131bc57fe5b04905080156131cf576131cf88826132b4565b5050505b50505b6131e7565b80156131e75760006010555b50505092915050565b6000826131ff57506000610fb9565b8282028284828161320c57fe5b04146110c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061449f6021913960400191505060405180910390fd5b600060038211156132a6575080600160028204015b818110156132a05780915060028182858161328f57fe5b04018161329857fe5b049050613278565b50611709565b811561170957506001919050565b73ffffffffffffffffffffffffffffffffffffffff821661333657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6133426000838361282f565b600254613355908263ffffffff61283416565b60025573ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205461338e908263ffffffff61283416565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600081831061340057816110c1565b5090919050565b60008183101561340057816110c1565b60008261342b5760208201518251026110c1565b50606081015160409091015102919050565b73ffffffffffffffffffffffffffffffffffffffff82166134a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061450a6021913960400191505060405180910390fd5b6134b58260008361282f565b613505816040518060600160405280602281526020016143ed6022913973ffffffffffffffffffffffffffffffffffffffff8516600090815260208190526040902054919063ffffffff612fbe16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205560025461353e908263ffffffff6128a816565b60025560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600a5460009070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16820380613604576009546135fc906fffffffffffffffffffffffffffffffff80821691700100000000000000000000000000000000900416613ed9565b915050611709565b60095460009061364b906fffffffffffffffffffffffffffffffff16611519671bc16d674ec800005b600a54919004906fffffffffffffffffffffffffffffffff16613efb565b60095490915060009061368f9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16612a31671bc16d674ec8000061362d565b90506136eb6136de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501611519671bc16d674ec800005b04670de0b6b3a7640000039063ffffffff613f5c16565b839063ffffffff61402d16565b91506137346137277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501612a31671bc16d674ec800006136c7565b829063ffffffff61402d16565b90506137408282613ed9565b95945050505050565b6000671480cc142da92a8482106137685750661550f7dca70000611709565b670de0b6b3a76400008210613876576710a741a462780000821115613817577fffffffffffffffffffffffffffffffffffffffffffffffffef58be5b9d880000820160006137b7826003613f5c565b90506127106138066137dd846009680d8d726b7177a800005b049063ffffffff61402d16565b6129466137f685601b69043c33c19375648000006137d0565b6801fa48421ec7b1ed0990612834565b8161380d57fe5b0492505050611709565b6710a741a4627800008290036000613830826003613f5c565b905061271061380661384d846009680d8d726b7177a800006137d0565b610cb461386685601b69043c33c19375648000006137d0565b6801fa48421ec7b1ed09906128a8565b6000670b9a1192183a0000831161389857670b9a1192183a00008390036138bc565b7ffffffffffffffffffffffffffffffffffffffffffffffffff465ee6de7c6000083015b90506138cf81600263ffffffff613f5c16565b905060006138fe6138e68365b5e620f48000612834565b61293a674563918244f400008563ffffffff6131f016565b9050670b9a1192183a000084111561392c576127106138066801161163ae0de59a928363ffffffff61283416565b6127106138066801161163ae0de59a928363ffffffff6128a816565b6000614e208263ffffffff1611613960575081610fb9565b61c3508263ffffffff161161397e57601e601484025b049050610fb9565b62030d408263ffffffff161161399957601e600a8402613976565b601e60048402613976565b6060613a06826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661404f9092919063ffffffff16565b80519091501561282f57808060200190516020811015613a2557600080fd5b505161282f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614574602a913960400191505060405180910390fd5b6000808211613aec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613af557fe5b049392505050565b600a5460009070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16830380613bfe57600a54613b9490613b59906fffffffffffffffffffffffffffffffff168563ffffffff61283416565b6040518060400160405280601a81526020017f766f6c756d6520657863656564732076616c69642072616e6765000000000000815250614066565b600a80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff928316179055600954613bf69181811691700100000000000000000000000000000000900416613ed9565b915050610fb9565b600a546009546fffffffffffffffffffffffffffffffff91821691600091613c329116611519671bc16d674ec8000061362d565b600954909150600090613c769070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16612a31671bc16d674ec8000061362d565b9050613cb26136de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8601611519671bc16d674ec800006136c7565b9150613cee6137277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8601612a31671bc16d674ec800006136c7565b9050613cf9826140ea565b600980547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055613d43816140ea565b600980546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055613d7f866140ea565b600a80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055613dc9876140ea565b600a80546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000290831617905560408051848152602081018490529185168282015260608201869052517f96e2c334d3c0fa98c8b728ee84471864ffe5b28e05f46e52f8a469d0ab3a8b8b9181900360800190a1613e4b8282613ed9565b979650505050505050565b60006dffffffffffffffffffffffffffff821115613ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f444d4d3a204f564552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b5090565b600081613ee857506000610fb9565b81670de0b6b3a7640000840281613af557fe5b6000670de0b6b3a76400008310613f0e57fe5b670de0b6b3a7640000826fffffffffffffffffffffffffffffffff168402856fffffffffffffffffffffffffffffffff1685670de0b6b3a764000003020181613f5357fe5b04949350505050565b6000670de0b6b3a7640000831115613fd557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d6174684578743a2078203e20505245434953494f4e00000000000000000000604482015290519081900360640190fd5b60028206613feb57670de0b6b3a7640000613fed565b825b90506002820491505b8115610fb957670de0b6b3a7640000838002049250600282061561402257670de0b6b3a7640000908302045b600282049150613ff6565b6000670de0b6b3a7640000614048848463ffffffff6131f016565b81613af557fe5b606061405e848460008561416b565b949350505050565b6000816fffffffffffffffffffffffffffffffff8411156140e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561302c578181015183820152602001613014565b509192915050565b60006fffffffffffffffffffffffffffffffff821115613ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f766572666c6f772075696e7431323800000000000000000000000000000000604482015290519081900360640190fd5b6060824710156141c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806144576026913960400191505060405180910390fd5b6141cf8561431b565b61423a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106142a457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614267565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614306576040519150601f19603f3d011682016040523d82523d6000602084013e61430b565b606091505b5091509150613e4b828286614321565b3b151590565b606083156143305750816110c1565b8251156143405782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561302c578181015183820152602001613014565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c444d4d3a20494e53554646494349454e545f4c49515549444954595f4255524e4544536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365444d4d3a20494e53554646494349454e545f4c49515549444954595f4d494e54454445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cb56648789a8901ff8aaad6b7bdfcbdbe30c867a00c2d27de7681e8dd02d0cf864736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473a26469706673582212201e68d46e3fdffc918784252a1ea9bdfb03d79a370fc49d78a6b72cb4ff30546064736f6c63430006060033",
  "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620000e85760003560e01c806365da9289116200008d578063ad5cb2e11162000063578063ad5cb2e11462000369578063eb787f6114620003a6578063efde4e64146200040257620000e8565b806365da928914620002a05780638fd6484014620002e6578063a2e74af6146200033357620000e8565b806341d1de9711620000c357806341d1de9714620001a0578063538633df14620001c05780635b1dc86f146200021057620000e8565b8063094b741514620000ed5780632900909d14620001205780633d82497e1462000162575b600080fd5b620000f76200040c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b62000160600480360360408110156200013857600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff16906020013561ffff1662000428565b005b620000f7600480360360408110156200017a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516620005f9565b620000f760048036036020811015620001b857600080fd5b50356200062c565b620001fe60048036036040811015620001d857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351662000661565b60408051918252519081900360200190f35b6200024e600480360360408110156200022857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516620006a9565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200028c57818101518382015260200162000272565b505050509050019250505060405180910390f35b620000f760048036036060811015620002b857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135620007c7565b620000f760048036036060811015620002fe57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff908116916020810135909116906040013563ffffffff1662000815565b62000160600480360360208110156200034b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000d5a565b6200037362000e5a565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835261ffff90911660208301528051918290030190f35b620003ee60048036036060811015620003be57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101358216916040909101351662000e95565b604080519115158252519081900360200190f35b620001fe62000edb565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff163314620004af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f444d4d3a20464f5242494444454e000000000000000000000000000000000000604482015290519081900360640190fd5b60008161ffff16118015620004c957506107d08161ffff16105b6200053557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f444d4d3a20494e56414c49442046454500000000000000000000000000000000604482015290519081900360640190fd5b6000805461ffff83167401000000000000000000000000000000000000000081027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff73ffffffffffffffffffffffffffffffffffffffff87167fffffffffffffffffffffffff00000000000000000000000000000000000000009094168417161790925560408051918252602082019290925281517fce65ee4e1b50c25affcecb736ecf577b5c46ff900efade2a6214267a8707628e929181900390910190a15050565b600360209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b600481815481106200063a57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b73ffffffffffffffffffffffffffffffffffffffff80831660009081526002602090815260408083209385168352929052908120620006a09062000ee1565b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600260209081526040808320938516835292905290812060609190620006ec9062000ee1565b90508067ffffffffffffffff811180156200070657600080fd5b5060405190808252806020026020018201604052801562000731578160200160208202803683370190505b50915060005b81811015620007bf5773ffffffffffffffffffffffffffffffffffffffff808616600090815260026020908152604080832093881683529290522062000784908263ffffffff62000eee16565b8382815181106200079157fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015260010162000737565b505092915050565b73ffffffffffffffffffffffffffffffffffffffff808416600090815260026020908152604080832093861683529290529081206200080d908363ffffffff62000eee16565b949350505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620008b357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f444d4d3a204944454e544943414c5f4144445245535345530000000000000000604482015290519081900360640190fd5b6000808473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610620008f2578486620008f5565b85855b909250905073ffffffffffffffffffffffffffffffffffffffff82166200097d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f444d4d3a205a45524f5f41444452455353000000000000000000000000000000604482015290519081900360640190fd5b6127108463ffffffff161015620009f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f444d4d3a20494e56414c49445f42505300000000000000000000000000000000604482015290519081900360640190fd5b6127108463ffffffff1614158062000a3f575073ffffffffffffffffffffffffffffffffffffffff8281166000908152600360209081526040808320858516845290915290205416155b62000aab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f444d4d3a20554e414d504c49464945445f504f4f4c5f45584953545300000000604482015290519081900360640190fd5b60405162000ab99062001030565b604051809103906000f08015801562000ad6573d6000803e3d6000fd5b50604080517f6ecf2b2200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152848116602483015263ffffffff88166044830152915192955090851691636ecf2b229160648082019260009290919082900301818387803b15801562000b6057600080fd5b505af115801562000b75573d6000803e3d6000fd5b50505073ffffffffffffffffffffffffffffffffffffffff808416600090815260026020908152604080832093861683529290522062000bbd91508463ffffffff62000efc16565b5073ffffffffffffffffffffffffffffffffffffffff808216600090815260026020908152604080832093861683529290522062000c02908463ffffffff62000efc16565b506127108463ffffffff16141562000c8d5773ffffffffffffffffffffffffffffffffffffffff8083166000818152600360208181526040808420878716855282528084208054968a167fffffffffffffffffffffffff0000000000000000000000000000000000000000978816811790915592825280842094845293905291902080549092161790555b6004805460018101825560008290527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216821790925591546040805193845263ffffffff88166020850152838101919091525183821692918516917ffc574402c445e75f2b79b67884ff9c662244dce454c5ae68935fcd0bebb7c8ff919081900360600190a350509392505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331462000de157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f444d4d3a20464f5242494444454e000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f66330d9620e4f36ed52d5f7b79fa819b71c33037004c3889a3601b06c68da7cc9181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff8116917401000000000000000000000000000000000000000090910461ffff1690565b73ffffffffffffffffffffffffffffffffffffffff808416600090815260026020908152604080832093861683529290529081206200080d908363ffffffff62000f2016565b60045490565b6000620006a38262000f44565b6000620006a0838362000f48565b6000620006a08373ffffffffffffffffffffffffffffffffffffffff841662000fc9565b6000620006a08373ffffffffffffffffffffffffffffffffffffffff841662001018565b5490565b8154600090821062000fa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620059276022913960400191505060405180910390fd5b82600001828154811062000fb657fe5b9060005260206000200154905092915050565b600062000fd7838362001018565b6200100f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620006a3565b506000620006a3565b60009081526001919091016020526040902054151590565b6148e8806200103f8339019056fe60806040523480156200001157600080fd5b5060006040518060400160405280600b81526020016a04b79626572444d4d204c560ac1b815250604051806040016040528060068152602001650444d4d2d4c560d41b815250604051806040016040528060018152602001603160f81b815250828281600390805190602001906200008b929190620001f4565b508051620000a1906004906020840190620001f4565b50506005805460ff19166012179055506040514690806052620048968239604080519182900360520182208751602098890120865196890196909620888401919091528282019590955260608201949094526080810192909252503060a0808301919091528251808303909101815260c0909101909152805192019190912060065550600160085560098054600160801b6001600160801b038085169182026001600160801b0319909316919091171617905562000168436001600160e01b036200019e16565b600a80546001600160801b03928316600160801b02921691909117905550600b80546001600160a01b031916331790556200028e565b60006001600160801b03821115620001f0576040805162461bcd60e51b815260206004820152601060248201526f0deeccae4ccd8deee40ead2dce86264760831b604482015290519081900360640190fd5b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023757805160ff191683800117855562000267565b8280016001018555821562000267579182015b82811115620002675782518255916020019190600101906200024a565b50620001f0926200028b9250905b80821115620001f0576000815560010162000275565b90565b6145f8806200029e6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637464fc3d11610104578063bc25cf77116100a2578063d669402711610071578063d669402714610730578063dd62ed3e1461077a578063f698da25146107b5578063fff6cae9146107bd576101da565b8063bc25cf771461068f578063c45a0155146106c2578063d21220a7146106ca578063d505accf146106d2576101da565b806395d89b41116100de57806395d89b411461060d578063a457c2d714610615578063a9059cbb1461064e578063ba9a7a5614610687576101da565b80637464fc3d146105865780637ecebe001461058e57806389afcb44146105c1576101da565b806323b872dd1161017c57806349386b161161014b57806349386b16146104b55780636a627842146104d65780636ecf2b221461050957806370a0823114610553576101da565b806323b872dd1461041357806330adf81f14610456578063313ce5671461045e578063395093511461047c576101da565b8063095ea7b3116101b8578063095ea7b3146103365780630d94d50b146103835780630dfe1681146103c857806318160ddd146103f9576101da565b8063022c0d9f146101df57806306fdde031461027a5780630902f1ac146102f7575b600080fd5b610278600480360360808110156101f557600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561023957600080fd5b82018360208201111561024b57600080fd5b8035906020019184600183028401116401000000008311171561026d57600080fd5b5090925090506107c5565b005b610282610e98565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102bc5781810151838201526020016102a4565b50505050905090810190601f1680156102e95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ff610f4c565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61036f6004803603604081101561034c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610fa1565b604080519115158252519081900360200190f35b61038b610fbf565b604080516fffffffffffffffffffffffffffffffff9586168152938516602085015291841683830152909216606082015290519081900360800190f35b6103d0610ffe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61040161101a565b60408051918252519081900360200190f35b61036f6004803603606081101561042957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611020565b6104016110c8565b6104666110ec565b6040805160ff9092168252519081900360200190f35b61036f6004803603604081101561049257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356110f5565b6104bd611156565b6040805163ffffffff9092168252519081900360200190f35b610401600480360360208110156104ec57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611162565b6102786004803603606081101561051f57600080fd5b50803573ffffffffffffffffffffffffffffffffffffffff908116916020810135909116906040013563ffffffff166115d0565b6104016004803603602081101561056957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166116e2565b61040161170e565b610401600480360360208110156105a457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611714565b6105f4600480360360208110156105d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611726565b6040805192835260208301919091528051918290030190f35b610282611d28565b61036f6004803603604081101561062b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611da7565b61036f6004803603604081101561066457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611e22565b610401611e36565b610278600480360360208110156106a557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611e3c565b6103d0612070565b6103d061208c565b610278600480360360e08110156106e857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356120a8565b610738612374565b604080516dffffffffffffffffffffffffffff968716815294861660208601529285168484015293166060830152608082019290925290519081900360a00190f35b6104016004803603604081101561079057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516612409565b610401612441565b610278612447565b6002600854141561083757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026008558415158061084a5750600084115b6108b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f444d4d3a20494e53554646494349454e545f4f55545055545f414d4f554e5400604482015290519081900360640190fd5b60006108bf6143a1565b6108c7612710565b80519193509150871080156108df5750806020015186105b61094a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f444d4d3a20494e53554646494349454e545f4c49515549444954590000000000604482015290519081900360640190fd5b6109526143a1565b600c54600d5473ffffffffffffffffffffffffffffffffffffffff9182169190811690881682148015906109b257508073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b610a1d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f444d4d3a20494e56414c49445f544f0000000000000000000000000000000000604482015290519081900360640190fd5b8915610a4a57610a4a73ffffffffffffffffffffffffffffffffffffffff8316898c63ffffffff6127a216565b8815610a7757610a7773ffffffffffffffffffffffffffffffffffffffff8216898b63ffffffff6127a216565b8515610b59578773ffffffffffffffffffffffffffffffffffffffff166381279c7e338c8c8b8b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b4057600080fd5b505af1158015610b54573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610bc557600080fd5b505afa158015610bd9573d6000803e3d6000fd5b505050506040513d6020811015610bef57600080fd5b50518352604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8316916370a08231916024808301926020929190829003018186803b158015610c5f57600080fd5b505afa158015610c73573d6000803e3d6000fd5b505050506040513d6020811015610c8957600080fd5b505160208401528415610cef57835183516040860151610cc09291610cb4919063ffffffff61283416565b9063ffffffff6128a816565b6040840152602080850151908401516060860151610ce99291610cb4919063ffffffff61283416565b60608401525b5050815181516000918a900310610d07576000610d12565b82518251908a900390035b9050600088846020015103836020015111610d2e576000610d3c565b888460200151038360200151035b90506000821180610d4d5750600081115b610db857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f444d4d3a20494e53554646494349454e545f494e5055545f414d4f554e540000604482015290519081900360640190fd5b6000610e12838388610dcb578751610dd1565b87604001515b89610de0578860200151610de6565b88606001515b8a610df2578851610df8565b88604001515b8b610e07578960200151610e0d565b89606001515b61291f565b9050610e1e8685612a9a565b60408051848152602081018490528082018d9052606081018c905260808101839052905173ffffffffffffffffffffffffffffffffffffffff8b169133917f606ecd02b3e3b4778f8e97b2e03351de14224efaa5fa64e62200afc9395c24999181900360a00190a350506001600855505050505050505050565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f425780601f10610f1757610100808354040283529160200191610f42565b820191906000526020600020905b815481529060010190602001808311610f2557829003601f168201915b5050505050905090565b600e546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610fb5610fae612c97565b8484612c9b565b5060015b92915050565b600954600a546fffffffffffffffffffffffffffffffff8083169370010000000000000000000000000000000093849004821693838316930490911690565b600c5473ffffffffffffffffffffffffffffffffffffffff1681565b60025490565b600061102d848484612de2565b6110bd84611039612c97565b6110b8856040518060600160405280602881526020016144c06028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020526040812090611084612c97565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002054919063ffffffff612fbe16565b612c9b565b5060015b9392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60055460ff1690565b6000610fb5611102612c97565b846110b88560016000611113612c97565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61283416565b600f5463ffffffff1681565b6000600260085414156111d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260085560006111e56143a1565b6111ed612710565b915091506111f96143a1565b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561126a57600080fd5b505afa15801561127e573d6000803e3d6000fd5b505050506040513d602081101561129457600080fd5b50518152600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561130957600080fd5b505afa15801561131d573d6000803e3d6000fd5b505050506040513d602081101561133357600080fd5b5051602082015281518151600091611351919063ffffffff6128a816565b90506000611370846020015184602001516128a890919063ffffffff16565b9050600061137e868661306f565b9050600061138a61101a565b90508061143e5786156113ed57600f54855163ffffffff91821691612710916113b59184906131f016565b816113bc57fe5b0460408701526020860151612710906113de9063ffffffff808516906131f016565b816113e557fe5b046060870152505b61140b6103e8610cb4611406878763ffffffff6131f016565b613263565b97506114397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6103e86132b4565b611503565b855161148190611454868463ffffffff6131f016565b8161145b57fe5b04876020015161147484876131f090919063ffffffff16565b8161147b57fe5b046133f1565b9750861561150357600061149b898363ffffffff61283416565b90506114ca826114b8838a604001516131f090919063ffffffff16565b816114bf57fe5b048760000151613407565b604087015260608701516114fc9083906114ea908463ffffffff6131f016565b816114f157fe5b048760200151613407565b6060870152505b6000881161155c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806144e86022913960400191505060405180910390fd5b61156689896132b4565b6115708786612a9a565b8115611584576115808786613417565b6010555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600855509395945050505050565b600b5473ffffffffffffffffffffffffffffffffffffffff16331461165657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f444d4d3a20464f5242494444454e000000000000000000000000000000000000604482015290519081900360640190fd5b600c80547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff95861617909155600d80549091169290931691909117909155600f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60105481565b60076020526000908152604090205481565b6000806002600854141561179b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260085560006117aa6143a1565b6117b2612710565b600c54600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561183357600080fd5b505afa158015611847573d6000803e3d6000fd5b505050506040513d602081101561185d57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b1580156118d157600080fd5b505afa1580156118e5573d6000803e3d6000fd5b505050506040513d60208110156118fb57600080fd5b505185519091508210801590611915575084602001518110155b61198057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f444d4d3a20554e53594e435f5245534552564553000000000000000000000000604482015290519081900360640190fd5b600061198b306116e2565b90506000611999888861306f565b905060006119a561101a565b9050806119b8848763ffffffff6131f016565b816119bf57fe5b049a50806119d3848663ffffffff6131f016565b816119da57fe5b04995060008b1180156119ed575060008a115b611a42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061447d6022913960400191505060405180910390fd5b611a4c308461343d565b611a7373ffffffffffffffffffffffffffffffffffffffff88168d8d63ffffffff6127a216565b611a9a73ffffffffffffffffffffffffffffffffffffffff87168d8c63ffffffff6127a216565b611aa26143a1565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611b0e57600080fd5b505afa158015611b22573d6000803e3d6000fd5b505050506040513d6020811015611b3857600080fd5b50518152604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b158015611ba857600080fd5b505afa158015611bbc573d6000803e3d6000fd5b505050506040513d6020811015611bd257600080fd5b505160208201528915611c865788518151600091611c1e91611bfa908663ffffffff6131f016565b81611c0157fe5b048b602001516114748686602001516131f090919063ffffffff16565b9050611c4d83611c3b838d604001516131f090919063ffffffff16565b81611c4257fe5b048360000151613407565b604083015260608a0151611c7f908490611c6d908463ffffffff6131f016565b81611c7457fe5b048360200151613407565b6060830152505b611c908a82612a9a565b8215611ca457611ca08a82613417565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001600881905550915091565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f425780601f10610f1757610100808354040283529160200191610f42565b6000610fb5611db4612c97565b846110b88560405180606001604052806025815260200161459e6025913960016000611dde612c97565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff612fbe16565b6000610fb5611e2f612c97565b8484612de2565b6103e881565b60026008541415611eae57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600855600e54600c54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fa1938593611f7b936dffffffffffffffffffffffffffff9092169273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b158015611f4357600080fd5b505afa158015611f57573d6000803e3d6000fd5b505050506040513d6020811015611f6d57600080fd5b50519063ffffffff6128a816565b600c5473ffffffffffffffffffffffffffffffffffffffff16919063ffffffff6127a216565b600e54600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051612068938593612042936e0100000000000000000000000000009092046dffffffffffffffffffffffffffff169273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b158015611f4357600080fd5b600d5473ffffffffffffffffffffffffffffffffffffffff16919063ffffffff6127a216565b506001600855565b600b5473ffffffffffffffffffffffffffffffffffffffff1681565b600d5473ffffffffffffffffffffffffffffffffffffffff1681565b4284101561211757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f45524332305065726d69743a2045585049524544000000000000000000000000604482015290519081900360640190fd5b60065473ffffffffffffffffffffffffffffffffffffffff80891660008181526007602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612278573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906122f357508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61235e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20494e56414c49445f5349474e41545552450000604482015290519081900360640190fd5b612369898989612c9b565b505050505050505050565b600e54600f546dffffffffffffffffffffffffffff808316926e0100000000000000000000000000009004811691640100000000810482169172010000000000000000000000000000000000008204169060009063ffffffff166127108114156123df578593508492505b60006123ea43613593565b90506123fe6123f882613749565b83613948565b925050509091929394565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60065481565b600260085414156124b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260085560006124c86143a1565b6124d0612710565b9150915060006124e0838361306f565b90506124ea6143a1565b600c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255b57600080fd5b505afa15801561256f573d6000803e3d6000fd5b505050506040513d602081101561258557600080fd5b50518152600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156125fa57600080fd5b505afa15801561260e573d6000803e3d6000fd5b505050506040513d602081101561262457600080fd5b5051602082015283156126e757600061263b61101a565b8451835191925060009161267e919061265a908563ffffffff6131f016565b8161266157fe5b0486602001516114748587602001516131f090919063ffffffff16565b90506126ad8261269b8388604001516131f090919063ffffffff16565b816126a257fe5b048460000151613407565b604084015260608501516126df9083906126cd908463ffffffff6131f016565b816126d457fe5b048460200151613407565b606084015250505b6126f18482612a9a565b8115612705576127018482613417565b6010555b505060016008555050565b600061271a6143a1565b600e546dffffffffffffffffffffffffffff80821683526e010000000000000000000000000000909104166020820152600f5463ffffffff16612710148015925061279e57600f546dffffffffffffffffffffffffffff64010000000082048116604084015272010000000000000000000000000000000000009091041660608201525b9091565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261282f9084906139a4565b505050565b6000828201838110156110c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561291957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080612952886129468761293a8a8c63ffffffff6131f016565b9063ffffffff613a7c16565b9063ffffffff61283416565b905060006129604383613afd565b905061297c61296e82613749565b600f5463ffffffff16613948565b9250600061299886670de0b6b3a764000063ffffffff6131f016565b90506129ba6129ad8b8663ffffffff6131f016565b829063ffffffff6128a816565b9050670de0b6b3a76400008104905060006129e386670de0b6b3a764000063ffffffff6131f016565b90506129f86129ad8b8763ffffffff6131f016565b670de0b6b3a764000090049050612a0f89896131f0565b612a1f838363ffffffff6131f016565b1015612a8c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f444d4d3a204b0000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050509695505050505050565b805163ffffffff421690612aad90613e56565b600e80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff929092169190911790556020820151612afa90613e56565b600e80547fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000006dffffffffffffffffffffffffffff9390931692909202919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff8416021790558215612c3e578151604083015110801590612bb557508160200151826060015110155b612bbb57fe5b612bc88260400151613e56565b600f60046101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550612c098260600151613e56565b600f60126101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055505b6040808301516060808501518551602080880151865195865290850192909252838501529082015290517f2f9d55abfefdfd4c3a83e00a1b419b3c2fe4b83100c559f0e2213e57f6e0bba99181900360800190a1505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316612d07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806145506024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612d73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061440f6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316612e4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061452b6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612eba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806143ca6023913960400191505060405180910390fd5b612ec583838361282f565b612f15816040518060600160405280602681526020016144316026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919063ffffffff612fbe16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054612f57908263ffffffff61283416565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115613067576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561302c578181015183820152602001613014565b50505050905090810190601f1680156130595780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5cb2e16040518163ffffffff1660e01b8152600401604080518083038186803b1580156130db57600080fd5b505afa1580156130ef573d6000803e3d6000fd5b505050506040513d604081101561310557600080fd5b50805160209091015160105473ffffffffffffffffffffffffffffffffffffffff83161580159650929450909250906131db5780156131d657600061314d6114068888613417565b9050600061315a83613263565b9050808211156131d357600061319561ffff8616613189613181868663ffffffff6128a816565b61318961101a565b9063ffffffff6131f016565b905060006131af611388613189868663ffffffff61283416565b905060008183816131bc57fe5b04905080156131cf576131cf88826132b4565b5050505b50505b6131e7565b80156131e75760006010555b50505092915050565b6000826131ff57506000610fb9565b8282028284828161320c57fe5b04146110c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061449f6021913960400191505060405180910390fd5b600060038211156132a6575080600160028204015b818110156132a05780915060028182858161328f57fe5b04018161329857fe5b049050613278565b50611709565b811561170957506001919050565b73ffffffffffffffffffffffffffffffffffffffff821661333657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6133426000838361282f565b600254613355908263ffffffff61283416565b60025573ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205461338e908263ffffffff61283416565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600081831061340057816110c1565b5090919050565b60008183101561340057816110c1565b60008261342b5760208201518251026110c1565b50606081015160409091015102919050565b73ffffffffffffffffffffffffffffffffffffffff82166134a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061450a6021913960400191505060405180910390fd5b6134b58260008361282f565b613505816040518060600160405280602281526020016143ed6022913973ffffffffffffffffffffffffffffffffffffffff8516600090815260208190526040902054919063ffffffff612fbe16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205560025461353e908263ffffffff6128a816565b60025560408051828152905160009173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600a5460009070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16820380613604576009546135fc906fffffffffffffffffffffffffffffffff80821691700100000000000000000000000000000000900416613ed9565b915050611709565b60095460009061364b906fffffffffffffffffffffffffffffffff16611519671bc16d674ec800005b600a54919004906fffffffffffffffffffffffffffffffff16613efb565b60095490915060009061368f9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16612a31671bc16d674ec8000061362d565b90506136eb6136de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501611519671bc16d674ec800005b04670de0b6b3a7640000039063ffffffff613f5c16565b839063ffffffff61402d16565b91506137346137277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501612a31671bc16d674ec800006136c7565b829063ffffffff61402d16565b90506137408282613ed9565b95945050505050565b6000671480cc142da92a8482106137685750661550f7dca70000611709565b670de0b6b3a76400008210613876576710a741a462780000821115613817577fffffffffffffffffffffffffffffffffffffffffffffffffef58be5b9d880000820160006137b7826003613f5c565b90506127106138066137dd846009680d8d726b7177a800005b049063ffffffff61402d16565b6129466137f685601b69043c33c19375648000006137d0565b6801fa48421ec7b1ed0990612834565b8161380d57fe5b0492505050611709565b6710a741a4627800008290036000613830826003613f5c565b905061271061380661384d846009680d8d726b7177a800006137d0565b610cb461386685601b69043c33c19375648000006137d0565b6801fa48421ec7b1ed09906128a8565b6000670b9a1192183a0000831161389857670b9a1192183a00008390036138bc565b7ffffffffffffffffffffffffffffffffffffffffffffffffff465ee6de7c6000083015b90506138cf81600263ffffffff613f5c16565b905060006138fe6138e68365b5e620f48000612834565b61293a674563918244f400008563ffffffff6131f016565b9050670b9a1192183a000084111561392c576127106138066801161163ae0de59a928363ffffffff61283416565b6127106138066801161163ae0de59a928363ffffffff6128a816565b6000614e208263ffffffff1611613960575081610fb9565b61c3508263ffffffff161161397e57601e601484025b049050610fb9565b62030d408263ffffffff161161399957601e600a8402613976565b601e60048402613976565b6060613a06826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661404f9092919063ffffffff16565b80519091501561282f57808060200190516020811015613a2557600080fd5b505161282f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614574602a913960400191505060405180910390fd5b6000808211613aec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613af557fe5b049392505050565b600a5460009070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16830380613bfe57600a54613b9490613b59906fffffffffffffffffffffffffffffffff168563ffffffff61283416565b6040518060400160405280601a81526020017f766f6c756d6520657863656564732076616c69642072616e6765000000000000815250614066565b600a80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff928316179055600954613bf69181811691700100000000000000000000000000000000900416613ed9565b915050610fb9565b600a546009546fffffffffffffffffffffffffffffffff91821691600091613c329116611519671bc16d674ec8000061362d565b600954909150600090613c769070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16612a31671bc16d674ec8000061362d565b9050613cb26136de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8601611519671bc16d674ec800006136c7565b9150613cee6137277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8601612a31671bc16d674ec800006136c7565b9050613cf9826140ea565b600980547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055613d43816140ea565b600980546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055613d7f866140ea565b600a80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055613dc9876140ea565b600a80546fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000290831617905560408051848152602081018490529185168282015260608201869052517f96e2c334d3c0fa98c8b728ee84471864ffe5b28e05f46e52f8a469d0ab3a8b8b9181900360800190a1613e4b8282613ed9565b979650505050505050565b60006dffffffffffffffffffffffffffff821115613ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f444d4d3a204f564552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b5090565b600081613ee857506000610fb9565b81670de0b6b3a7640000840281613af557fe5b6000670de0b6b3a76400008310613f0e57fe5b670de0b6b3a7640000826fffffffffffffffffffffffffffffffff168402856fffffffffffffffffffffffffffffffff1685670de0b6b3a764000003020181613f5357fe5b04949350505050565b6000670de0b6b3a7640000831115613fd557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d6174684578743a2078203e20505245434953494f4e00000000000000000000604482015290519081900360640190fd5b60028206613feb57670de0b6b3a7640000613fed565b825b90506002820491505b8115610fb957670de0b6b3a7640000838002049250600282061561402257670de0b6b3a7640000908302045b600282049150613ff6565b6000670de0b6b3a7640000614048848463ffffffff6131f016565b81613af557fe5b606061405e848460008561416b565b949350505050565b6000816fffffffffffffffffffffffffffffffff8411156140e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561302c578181015183820152602001613014565b509192915050565b60006fffffffffffffffffffffffffffffffff821115613ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f766572666c6f772075696e7431323800000000000000000000000000000000604482015290519081900360640190fd5b6060824710156141c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806144576026913960400191505060405180910390fd5b6141cf8561431b565b61423a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106142a457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614267565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614306576040519150601f19603f3d011682016040523d82523d6000602084013e61430b565b606091505b5091509150613e4b828286614321565b3b151590565b606083156143305750816110c1565b8251156143405782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561302c578181015183820152602001613014565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c444d4d3a20494e53554646494349454e545f4c49515549444954595f4255524e4544536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365444d4d3a20494e53554646494349454e545f4c49515549444954595f4d494e54454445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cb56648789a8901ff8aaad6b7bdfcbdbe30c867a00c2d27de7681e8dd02d0cf864736f6c63430006060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473a26469706673582212201e68d46e3fdffc918784252a1ea9bdfb03d79a370fc49d78a6b72cb4ff30546064736f6c63430006060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
