0x608060405234801562000010575f80fd5b506040518060400160405280600381526020017f6e6f7700000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f6e6f77000000000000000000000000000000000000000000000000000000000081525081600390816200008e91906200048d565b508060049081620000a091906200048d565b505050620000c1336b02ae8f56287c6a6ffe000000620000c760201b60201c565b62000682565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000138576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012f90620005cf565b60405180910390fd5b6200014b5f83836200022460201b60201c565b8060025f8282546200015e91906200061c565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620001b291906200061c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000218919062000667565b60405180910390a35050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002a557607f821691505b602082108103620002bb57620002ba62000260565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200031f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002e2565b6200032b8683620002e2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003756200036f620003698462000343565b6200034c565b62000343565b9050919050565b5f819050919050565b620003908362000355565b620003a86200039f826200037c565b848454620002ee565b825550505050565b5f90565b620003be620003b0565b620003cb81848462000385565b505050565b5b81811015620003f257620003e65f82620003b4565b600181019050620003d1565b5050565b601f82111562000441576200040b81620002c1565b6200041684620002d3565b8101602085101562000426578190505b6200043e6200043585620002d3565b830182620003d0565b50505b505050565b5f82821c905092915050565b5f620004635f198460080262000446565b1980831691505092915050565b5f6200047d838362000452565b9150826002028217905092915050565b620004988262000229565b67ffffffffffffffff811115620004b457620004b362000233565b5b620004c082546200028d565b620004cd828285620003f6565b5f60209050601f83116001811462000503575f8415620004ee578287015190505b620004fa858262000470565b86555062000569565b601f1984166200051386620002c1565b5f5b828110156200053c5784890151825560018201915060208501945060208101905062000515565b868310156200055c578489015162000558601f89168262000452565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620005b7601f8362000571565b9150620005c48262000581565b602082019050919050565b5f6020820190508181035f830152620005e881620005a9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620006288262000343565b9150620006358362000343565b925082820190508082111562000650576200064f620005ef565b5b92915050565b620006618162000343565b82525050565b5f6020820190506200067c5f83018462000656565b92915050565b61151880620006905f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c806370a082311161006f57806370a08231146101a057806395d89b41146101d0578063a457c2d7146101ee578063a9059cbb1461021e578063d63c88a61461024e578063dd62ed3e14610258576100b2565b806306fdde03146100b6578063095ea7b3146100d457806318160ddd1461010457806323b872dd14610122578063313ce567146101525780633950935114610170575b5f80fd5b6100be610288565b6040516100cb9190610d71565b60405180910390f35b6100ee60048036038101906100e99190610e22565b610318565b6040516100fb9190610e7a565b60405180910390f35b61010c610335565b6040516101199190610ea2565b60405180910390f35b61013c60048036038101906101379190610ebb565b61033e565b6040516101499190610e7a565b60405180910390f35b61015a610439565b6040516101679190610f26565b60405180910390f35b61018a60048036038101906101859190610e22565b610441565b6040516101979190610e7a565b60405180910390f35b6101ba60048036038101906101b59190610f3f565b6104e8565b6040516101c79190610ea2565b60405180910390f35b6101d861052d565b6040516101e59190610d71565b60405180910390f35b61020860048036038101906102039190610e22565b6105bd565b6040516102159190610e7a565b60405180910390f35b61023860048036038101906102339190610e22565b6106ac565b6040516102459190610e7a565b60405180910390f35b6102566106c9565b005b610272600480360381019061026d9190610f6a565b6106d7565b60405161027f9190610ea2565b60405180910390f35b60606003805461029790610fd5565b80601f01602080910402602001604051908101604052809291908181526020018280546102c390610fd5565b801561030e5780601f106102e55761010080835404028352916020019161030e565b820191905f5260205f20905b8154815290600101906020018083116102f157829003601f168201915b5050505050905090565b5f61032b610324610759565b8484610760565b6001905092915050565b5f600254905090565b5f61034a848484610923565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610391610759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040790611075565b60405180910390fd5b61042d8561041c610759565b858461042891906110c0565b610760565b60019150509392505050565b5f6012905090565b5f6104de61044d610759565b848460015f61045a610759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546104d991906110f3565b610760565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461053c90610fd5565b80601f016020809104026020016040519081016040528092919081815260200182805461056890610fd5565b80156105b35780601f1061058a576101008083540402835291602001916105b3565b820191905f5260205f20905b81548152906001019060200180831161059657829003601f168201915b5050505050905090565b5f8060015f6105ca610759565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067b90611196565b60405180910390fd5b6106a161068f610759565b85858461069c91906110c0565b610760565b600191505092915050565b5f6106bf6106b8610759565b8484610923565b6001905092915050565b6106d5416103e8610b96565b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c590611224565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361083c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610833906112b2565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109169190610ea2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098890611340565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f6906113ce565b60405180910390fd5b610a0a838383610ce2565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a849061145c565b60405180910390fd5b8181610a9991906110c0565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b2491906110f3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b889190610ea2565b60405180910390a350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb906114c4565b60405180910390fd5b610c0f5f8383610ce2565b8060025f828254610c2091906110f3565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c7291906110f3565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cd69190610ea2565b60405180910390a35050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610d1e578082015181840152602081019050610d03565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610d4382610ce7565b610d4d8185610cf1565b9350610d5d818560208601610d01565b610d6681610d29565b840191505092915050565b5f6020820190508181035f830152610d898184610d39565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dbe82610d95565b9050919050565b610dce81610db4565b8114610dd8575f80fd5b50565b5f81359050610de981610dc5565b92915050565b5f819050919050565b610e0181610def565b8114610e0b575f80fd5b50565b5f81359050610e1c81610df8565b92915050565b5f8060408385031215610e3857610e37610d91565b5b5f610e4585828601610ddb565b9250506020610e5685828601610e0e565b9150509250929050565b5f8115159050919050565b610e7481610e60565b82525050565b5f602082019050610e8d5f830184610e6b565b92915050565b610e9c81610def565b82525050565b5f602082019050610eb55f830184610e93565b92915050565b5f805f60608486031215610ed257610ed1610d91565b5b5f610edf86828701610ddb565b9350506020610ef086828701610ddb565b9250506040610f0186828701610e0e565b9150509250925092565b5f60ff82169050919050565b610f2081610f0b565b82525050565b5f602082019050610f395f830184610f17565b92915050565b5f60208284031215610f5457610f53610d91565b5b5f610f6184828501610ddb565b91505092915050565b5f8060408385031215610f8057610f7f610d91565b5b5f610f8d85828601610ddb565b9250506020610f9e85828601610ddb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610fec57607f821691505b602082108103610fff57610ffe610fa8565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61105f602883610cf1565b915061106a82611005565b604082019050919050565b5f6020820190508181035f83015261108c81611053565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110ca82610def565b91506110d583610def565b92508282039050818111156110ed576110ec611093565b5b92915050565b5f6110fd82610def565b915061110883610def565b92508282019050808211156111205761111f611093565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611180602583610cf1565b915061118b82611126565b604082019050919050565b5f6020820190508181035f8301526111ad81611174565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61120e602483610cf1565b9150611219826111b4565b604082019050919050565b5f6020820190508181035f83015261123b81611202565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61129c602283610cf1565b91506112a782611242565b604082019050919050565b5f6020820190508181035f8301526112c981611290565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61132a602583610cf1565b9150611335826112d0565b604082019050919050565b5f6020820190508181035f8301526113578161131e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6113b8602383610cf1565b91506113c38261135e565b604082019050919050565b5f6020820190508181035f8301526113e5816113ac565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611446602683610cf1565b9150611451826113ec565b604082019050919050565b5f6020820190508181035f8301526114738161143a565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6114ae601f83610cf1565b91506114b98261147a565b602082019050919050565b5f6020820190508181035f8301526114db816114a2565b905091905056fea264697066735822122013091d74d44e244929a09fa69b635734851ea9bb8fc0c996c5983ebbfc91305e64736f6c63430008140033