6080604052620f42406006553480156200001857600080fd5b506040518060400160405280600b81526020017f4372696e6f2054636174690000000000000000000000000000000000000000008152506040518060400160405280600581526020017f544341544900000000000000000000000000000000000000000000000000000081525081600390805190602001906200009d929190620003cc565b508060049080519060200190620000b6929190620003cc565b505050620000d9620000cd6200017d60201b60201c565b6200018560201b60201c565b6200011733620000ee6200024b60201b60201c565b600a620000fc9190620005f4565b6006546200010b919062000731565b6200025460201b60201c565b6200017773d8da6bf26964af9d7eed9e03e53415d37aa96045620001406200024b60201b60201c565b600a6200014e9190620005f4565b60026006546200015f919062000561565b6200016b919062000731565b6200025460201b60201c565b620008a2565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002be90620004b4565b60405180910390fd5b620002db60008383620003c260201b60201c565b8060026000828254620002ef919062000504565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003a29190620004d6565b60405180910390a3620003be60008383620003c760201b60201c565b5050565b505050565b505050565b828054620003da90620007a9565b90600052602060002090601f016020900481019282620003fe57600085556200044a565b82601f106200041957805160ff19168380011785556200044a565b828001600101855582156200044a579182015b82811115620004495782518255916020019190600101906200042c565b5b5090506200045991906200045d565b5090565b5b80821115620004785760008160009055506001016200045e565b5090565b60006200048b601f83620004f3565b9150620004988262000879565b602082019050919050565b620004ae8162000792565b82525050565b60006020820190508181036000830152620004cf816200047c565b9050919050565b6000602082019050620004ed6000830184620004a3565b92915050565b600082825260208201905092915050565b6000620005118262000792565b91506200051e8362000792565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005565762000555620007df565b5b828201905092915050565b60006200056e8262000792565b91506200057b8362000792565b9250826200058e576200058d6200080e565b5b828204905092915050565b6000808291508390505b6001851115620005eb57808604811115620005c357620005c2620007df565b5b6001851615620005d35780820291505b8081029050620005e3856200086c565b9450620005a3565b94509492505050565b6000620006018262000792565b91506200060e836200079c565b92506200063d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000645565b905092915050565b6000826200065757600190506200072a565b816200066757600090506200072a565b81600181146200068057600281146200068b57620006c1565b60019150506200072a565b60ff841115620006a0576200069f620007df565b5b8360020a915084821115620006ba57620006b9620007df565b5b506200072a565b5060208310610133831016604e8410600b8410161715620006fb5782820a905083811115620006f557620006f4620007df565b5b6200072a565b6200070a848484600162000599565b92509050818404811115620007245762000723620007df565b5b81810290505b9392505050565b60006200073e8262000792565b91506200074b8362000792565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007875762000786620007df565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620007c257607f821691505b60208210811415620007d957620007d86200083d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61164180620008b26000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d714610278578063a9059cbb146102a8578063dd62ed3e146102d8578063f2fde38b14610308576100f5565b8063715018a61461021457806380fc5d171461021e5780638da5cb5b1461023c57806395d89b411461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610324565b60405161010f919061104a565b60405180910390f35b610132600480360381019061012d9190610e24565b6103b6565b60405161013f919061102f565b60405180910390f35b6101506103d9565b60405161015d919061118c565b60405180910390f35b610180600480360381019061017b9190610dd1565b6103e3565b60405161018d919061102f565b60405180910390f35b61019e610412565b6040516101ab91906111a7565b60405180910390f35b6101ce60048036038101906101c99190610e24565b61041b565b6040516101db919061102f565b60405180910390f35b6101fe60048036038101906101f99190610d64565b610452565b60405161020b919061118c565b60405180910390f35b61021c61049a565b005b6102266104ae565b604051610233919061118c565b60405180910390f35b6102446104b4565b6040516102519190611014565b60405180910390f35b6102626104de565b60405161026f919061104a565b60405180910390f35b610292600480360381019061028d9190610e24565b610570565b60405161029f919061102f565b60405180910390f35b6102c260048036038101906102bd9190610e24565b6105e7565b6040516102cf919061102f565b60405180910390f35b6102f260048036038101906102ed9190610d91565b61060a565b6040516102ff919061118c565b60405180910390f35b610322600480360381019061031d9190610d64565b610691565b005b606060038054610333906112bc565b80601f016020809104026020016040519081016040528092919081815260200182805461035f906112bc565b80156103ac5780601f10610381576101008083540402835291602001916103ac565b820191906000526020600020905b81548152906001019060200180831161038f57829003601f168201915b5050505050905090565b6000806103c1610715565b90506103ce81858561071d565b600191505092915050565b6000600254905090565b6000806103ee610715565b90506103fb8582856108e8565b610406858585610974565b60019150509392505050565b60006012905090565b600080610426610715565b9050610447818585610438858961060a565b61044291906111de565b61071d565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104a2610bec565b6104ac6000610c6a565b565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104ed906112bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610519906112bc565b80156105665780601f1061053b57610100808354040283529160200191610566565b820191906000526020600020905b81548152906001019060200180831161054957829003601f168201915b5050505050905090565b60008061057b610715565b90506000610589828661060a565b9050838110156105ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c59061116c565b60405180910390fd5b6105db828686840361071d565b60019250505092915050565b6000806105f2610715565b90506105ff818585610974565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610699610bec565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610709576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107009061108c565b60405180910390fd5b61071281610c6a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561078d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107849061114c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f4906110ac565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108db919061118c565b60405180910390a3505050565b60006108f4848461060a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461096e5781811015610960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610957906110cc565b60405180910390fd5b61096d848484840361071d565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109db9061112c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b9061106c565b60405180910390fd5b610a5f838383610d30565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906110ec565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bd3919061118c565b60405180910390a3610be6848484610d35565b50505050565b610bf4610715565b73ffffffffffffffffffffffffffffffffffffffff16610c126104b4565b73ffffffffffffffffffffffffffffffffffffffff1614610c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5f9061110c565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081359050610d49816115dd565b92915050565b600081359050610d5e816115f4565b92915050565b600060208284031215610d7a57610d7961134c565b5b6000610d8884828501610d3a565b91505092915050565b60008060408385031215610da857610da761134c565b5b6000610db685828601610d3a565b9250506020610dc785828601610d3a565b9150509250929050565b600080600060608486031215610dea57610de961134c565b5b6000610df886828701610d3a565b9350506020610e0986828701610d3a565b9250506040610e1a86828701610d4f565b9150509250925092565b60008060408385031215610e3b57610e3a61134c565b5b6000610e4985828601610d3a565b9250506020610e5a85828601610d4f565b9150509250929050565b610e6d81611234565b82525050565b610e7c81611246565b82525050565b6000610e8d826111c2565b610e9781856111cd565b9350610ea7818560208601611289565b610eb081611351565b840191505092915050565b6000610ec86023836111cd565b9150610ed382611362565b604082019050919050565b6000610eeb6026836111cd565b9150610ef6826113b1565b604082019050919050565b6000610f0e6022836111cd565b9150610f1982611400565b604082019050919050565b6000610f31601d836111cd565b9150610f3c8261144f565b602082019050919050565b6000610f546026836111cd565b9150610f5f82611478565b604082019050919050565b6000610f776020836111cd565b9150610f82826114c7565b602082019050919050565b6000610f9a6025836111cd565b9150610fa5826114f0565b604082019050919050565b6000610fbd6024836111cd565b9150610fc88261153f565b604082019050919050565b6000610fe06025836111cd565b9150610feb8261158e565b604082019050919050565b610fff81611272565b82525050565b61100e8161127c565b82525050565b60006020820190506110296000830184610e64565b92915050565b60006020820190506110446000830184610e73565b92915050565b600060208201905081810360008301526110648184610e82565b905092915050565b6000602082019050818103600083015261108581610ebb565b9050919050565b600060208201905081810360008301526110a581610ede565b9050919050565b600060208201905081810360008301526110c581610f01565b9050919050565b600060208201905081810360008301526110e581610f24565b9050919050565b6000602082019050818103600083015261110581610f47565b9050919050565b6000602082019050818103600083015261112581610f6a565b9050919050565b6000602082019050818103600083015261114581610f8d565b9050919050565b6000602082019050818103600083015261116581610fb0565b9050919050565b6000602082019050818103600083015261118581610fd3565b9050919050565b60006020820190506111a16000830184610ff6565b92915050565b60006020820190506111bc6000830184611005565b92915050565b600081519050919050565b600082825260208201905092915050565b60006111e982611272565b91506111f483611272565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611229576112286112ee565b5b828201905092915050565b600061123f82611252565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156112a757808201518184015260208101905061128c565b838111156112b6576000848401525b50505050565b600060028204905060018216806112d457607f821691505b602082108114156112e8576112e761131d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6115e681611234565b81146115f157600080fd5b50565b6115fd81611272565b811461160857600080fd5b5056fea2646970667358221220eaee4f8b44b867a2a91277ad743c619a71ae4585597e1acec7490752ae1232bf64736f6c63430008070033