6080604052601260035f6101000a81548160ff021916908360ff1602179055503480156200002b575f80fd5b50335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000a0575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200009791906200032b565b60405180910390fd5b620000b1816200022760201b60201c565b506040518060400160405280600c81526020017f542d54616c6b20546f6b656e000000000000000000000000000000000000000081525060019081620000f89190620005aa565b506040518060400160405280600581526020017f7454616c6b000000000000000000000000000000000000000000000000000000815250600290816200013f9190620005aa565b5060035f9054906101000a900460ff16600a6200015d919062000817565b631dcd65006200016e919062000867565b60068190555060065460045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620002199190620008c2565b60405180910390a3620008dd565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200031382620002e8565b9050919050565b620003258162000307565b82525050565b5f602082019050620003405f8301846200031a565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003c257607f821691505b602082108103620003d857620003d76200037d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200043c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003ff565b620004488683620003ff565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004926200048c620004868462000460565b62000469565b62000460565b9050919050565b5f819050919050565b620004ad8362000472565b620004c5620004bc8262000499565b8484546200040b565b825550505050565b5f90565b620004db620004cd565b620004e8818484620004a2565b505050565b5b818110156200050f57620005035f82620004d1565b600181019050620004ee565b5050565b601f8211156200055e576200052881620003de565b6200053384620003f0565b8101602085101562000543578190505b6200055b6200055285620003f0565b830182620004ed565b50505b505050565b5f82821c905092915050565b5f620005805f198460080262000563565b1980831691505092915050565b5f6200059a83836200056f565b9150826002028217905092915050565b620005b58262000346565b67ffffffffffffffff811115620005d157620005d062000350565b5b620005dd8254620003aa565b620005ea82828562000513565b5f60209050601f83116001811462000620575f84156200060b578287015190505b6200061785826200058d565b86555062000686565b601f1984166200063086620003de565b5f5b82811015620006595784890151825560018201915060208501945060208101905062000632565b8683101562000679578489015162000675601f8916826200056f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200071857808604811115620006f057620006ef6200068e565b5b6001851615620007005780820291505b80810290506200071085620006bb565b9450620006d0565b94509492505050565b5f8262000732576001905062000804565b8162000741575f905062000804565b81600181146200075a576002811462000765576200079b565b600191505062000804565b60ff8411156200077a57620007796200068e565b5b8360020a9150848211156200079457620007936200068e565b5b5062000804565b5060208310610133831016604e8410600b8410161715620007d55782820a905083811115620007cf57620007ce6200068e565b5b62000804565b620007e48484846001620006c7565b92509050818404811115620007fe57620007fd6200068e565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620008238262000460565b915062000830836200080b565b92506200085f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000721565b905092915050565b5f620008738262000460565b9150620008808362000460565b9250828202620008908162000460565b91508282048414831517620008aa57620008a96200068e565b5b5092915050565b620008bc8162000460565b82525050565b5f602082019050620008d75f830184620008b1565b92915050565b61179780620008eb5f395ff3fe608060405234801561000f575f80fd5b5060043610610109575f3560e01c80638da5cb5b116100a0578063bd7daadc1161006f578063bd7daadc146102cd578063cd9c157b146102fd578063dd62ed3e14610319578063ee488d8014610349578063f2fde38b1461036557610109565b80638da5cb5b1461023157806395d89b411461024f578063a457c2d71461026d578063a9059cbb1461029d57610109565b8063313ce567116100dc578063313ce567146101a957806339509351146101c757806370a08231146101f7578063715018a61461022757610109565b806306fdde031461010d578063095ea7b31461012b57806318160ddd1461015b57806323b872dd14610179575b5f80fd5b610115610381565b6040516101229190611056565b60405180910390f35b61014560048036038101906101409190611107565b61040d565b604051610152919061115f565b60405180910390f35b610163610423565b6040516101709190611187565b60405180910390f35b610193600480360381019061018e91906111a0565b61042c565b6040516101a0919061115f565b60405180910390f35b6101b16104d1565b6040516101be919061120b565b60405180910390f35b6101e160048036038101906101dc9190611107565b6104e3565b6040516101ee919061115f565b60405180910390f35b610211600480360381019061020c9190611224565b61057c565b60405161021e9190611187565b60405180910390f35b61022f6105c2565b005b6102396105d5565b604051610246919061125e565b60405180910390f35b6102576105fc565b6040516102649190611056565b60405180910390f35b61028760048036038101906102829190611107565b610688565b604051610294919061115f565b60405180910390f35b6102b760048036038101906102b29190611107565b610721565b6040516102c4919061115f565b60405180910390f35b6102e760048036038101906102e29190611224565b610737565b6040516102f4919061115f565b60405180910390f35b610317600480360381019061031291906112a1565b610754565b005b610333600480360381019061032e91906112df565b6107b4565b6040516103409190611187565b60405180910390f35b610363600480360381019061035e9190611107565b610836565b005b61037f600480360381019061037a9190611224565b6109ca565b005b6001805461038e9061134a565b80601f01602080910402602001604051908101604052809291908181526020018280546103ba9061134a565b80156104055780601f106103dc57610100808354040283529160200191610405565b820191905f5260205f20905b8154815290600101906020018083116103e857829003601f168201915b505050505081565b5f610419338484610a4e565b6001905092915050565b5f600654905090565b5f610438848484610c11565b6104c684338460055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546104c191906113a7565b610a4e565b600190509392505050565b60035f9054906101000a900460ff1681565b5f61057233848460055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461056d91906113da565b610a4e565b6001905092915050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105ca610e7d565b6105d35f610f04565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600280546106099061134a565b80601f01602080910402602001604051908101604052809291908181526020018280546106359061134a565b80156106805780601f1061065757610100808354040283529160200191610680565b820191905f5260205f20905b81548152906001019060200180831161066357829003601f168201915b505050505081565b5f61071733848460055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461071291906113a7565b610a4e565b6001905092915050565b5f61072d338484610c11565b6001905092915050565b6007602052805f5260405f205f915054906101000a900460ff1681565b61075c610e7d565b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610888575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ed9061147d565b60405180910390fd5b8060065f82825461090791906113da565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461095a91906113da565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109be9190611187565b60405180910390a35050565b6109d2610e7d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a42575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610a39919061125e565b60405180910390fd5b610a4b81610f04565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab39061150b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190611599565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c049190611187565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7690611627565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce4906116b5565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490611743565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610db991906113a7565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e0c91906113da565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e709190611187565b60405180910390a3505050565b610e85610fc5565b73ffffffffffffffffffffffffffffffffffffffff16610ea36105d5565b73ffffffffffffffffffffffffffffffffffffffff1614610f0257610ec6610fc5565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ef9919061125e565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611003578082015181840152602081019050610fe8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61102882610fcc565b6110328185610fd6565b9350611042818560208601610fe6565b61104b8161100e565b840191505092915050565b5f6020820190508181035f83015261106e818461101e565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110a38261107a565b9050919050565b6110b381611099565b81146110bd575f80fd5b50565b5f813590506110ce816110aa565b92915050565b5f819050919050565b6110e6816110d4565b81146110f0575f80fd5b50565b5f81359050611101816110dd565b92915050565b5f806040838503121561111d5761111c611076565b5b5f61112a858286016110c0565b925050602061113b858286016110f3565b9150509250929050565b5f8115159050919050565b61115981611145565b82525050565b5f6020820190506111725f830184611150565b92915050565b611181816110d4565b82525050565b5f60208201905061119a5f830184611178565b92915050565b5f805f606084860312156111b7576111b6611076565b5b5f6111c4868287016110c0565b93505060206111d5868287016110c0565b92505060406111e6868287016110f3565b9150509250925092565b5f60ff82169050919050565b611205816111f0565b82525050565b5f60208201905061121e5f8301846111fc565b92915050565b5f6020828403121561123957611238611076565b5b5f611246848285016110c0565b91505092915050565b61125881611099565b82525050565b5f6020820190506112715f83018461124f565b92915050565b61128081611145565b811461128a575f80fd5b50565b5f8135905061129b81611277565b92915050565b5f80604083850312156112b7576112b6611076565b5b5f6112c4858286016110c0565b92505060206112d58582860161128d565b9150509250929050565b5f80604083850312156112f5576112f4611076565b5b5f611302858286016110c0565b9250506020611313858286016110c0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061136157607f821691505b6020821081036113745761137361131d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6113b1826110d4565b91506113bc836110d4565b92508282039050818111156113d4576113d361137a565b5b92915050565b5f6113e4826110d4565b91506113ef836110d4565b92508282019050808211156114075761140661137a565b5b92915050565b7f45524332303a20616464722066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f611467602183610fd6565b91506114728261140d565b604082019050919050565b5f6020820190508181035f8301526114948161145b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6114f5602483610fd6565b91506115008261149b565b604082019050919050565b5f6020820190508181035f830152611522816114e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611583602283610fd6565b915061158e82611529565b604082019050919050565b5f6020820190508181035f8301526115b081611577565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611611602583610fd6565b915061161c826115b7565b604082019050919050565b5f6020820190508181035f83015261163e81611605565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61169f602383610fd6565b91506116aa82611645565b604082019050919050565b5f6020820190508181035f8301526116cc81611693565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61172d602683610fd6565b9150611738826116d3565b604082019050919050565b5f6020820190508181035f83015261175a81611721565b905091905056fea2646970667358221220a3dba113f7b4357295eb6ec9c5b19285b6b5ceac28fcb57cc29ce7f31cc30e6364736f6c63430008140033