0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152503480156200004457600080fd5b50620000556200005b60201b60201c565b62000205565b600060019054906101000a900460ff1615620000ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a590620001a8565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff16146200011f5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620001169190620001e8565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200019060278362000121565b91506200019d8262000132565b604082019050919050565b60006020820190508181036000830152620001c38162000181565b9050919050565b600060ff82169050919050565b620001e281620001ca565b82525050565b6000602082019050620001ff6000830184620001d7565b92915050565b6080516150386200023d6000396000818161087b0152818161090901528181610a7601528181610b040152610bb401526150386000f3fe6080604052600436106101d85760003560e01c8063613255ab116101025780638da5cb5b11610095578063d505accf11610064578063d505accf146106a7578063d9d98ce4146106d0578063dd62ed3e1461070d578063f2fde38b1461074a576101d8565b80638da5cb5b146105d757806395d89b4114610602578063a457c2d71461062d578063a9059cbb1461066a576101d8565b80637ecebe00116100d15780637ecebe001461053b5780638129fc1c146105785780638456cb591461058f57806384b0196e146105a6576101d8565b8063613255ab1461048157806370a08231146104be578063715018a6146104fb57806379cc679014610512576101d8565b8063395093511161017a5780634f1ef286116101495780634f1ef286146103d257806352d1902d146103ee5780635c975abb146104195780635cffe9de14610444576101d8565b8063395093511461032c5780633f4ba83a1461036957806340c10f191461038057806342966c68146103a9576101d8565b806323b872dd116101b657806323b872dd14610270578063313ce567146102ad5780633644e515146102d85780633659cfe614610303576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245575b600080fd5b3480156101e957600080fd5b506101f2610773565b6040516101ff919061311c565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a91906131e6565b610805565b60405161023c9190613241565b60405180910390f35b34801561025157600080fd5b5061025a610828565b604051610267919061326b565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613286565b610832565b6040516102a49190613241565b60405180910390f35b3480156102b957600080fd5b506102c2610861565b6040516102cf91906132f5565b60405180910390f35b3480156102e457600080fd5b506102ed61086a565b6040516102fa9190613329565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190613344565b610879565b005b34801561033857600080fd5b50610353600480360381019061034e91906131e6565b610a01565b6040516103609190613241565b60405180910390f35b34801561037557600080fd5b5061037e610a38565b005b34801561038c57600080fd5b506103a760048036038101906103a291906131e6565b610a4a565b005b3480156103b557600080fd5b506103d060048036038101906103cb9190613371565b610a60565b005b6103ec60048036038101906103e791906134d3565b610a74565b005b3480156103fa57600080fd5b50610403610bb0565b6040516104109190613329565b60405180910390f35b34801561042557600080fd5b5061042e610c69565b60405161043b9190613241565b60405180910390f35b34801561045057600080fd5b5061046b600480360381019061046691906135cd565b610c80565b6040516104789190613241565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190613344565b610e6d565b6040516104b5919061326b565b60405180910390f35b3480156104ca57600080fd5b506104e560048036038101906104e09190613344565b610ee4565b6040516104f2919061326b565b60405180910390f35b34801561050757600080fd5b50610510610f2d565b005b34801561051e57600080fd5b50610539600480360381019061053491906131e6565b610f41565b005b34801561054757600080fd5b50610562600480360381019061055d9190613344565b610f61565b60405161056f919061326b565b60405180910390f35b34801561058457600080fd5b5061058d610fb2565b005b34801561059b57600080fd5b506105a46111c2565b005b3480156105b257600080fd5b506105bb6111d4565b6040516105ce979695949392919061375d565b60405180910390f35b3480156105e357600080fd5b506105ec6112d5565b6040516105f991906137e1565b60405180910390f35b34801561060e57600080fd5b506106176112ff565b604051610624919061311c565b60405180910390f35b34801561063957600080fd5b50610654600480360381019061064f91906131e6565b611391565b6040516106619190613241565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c91906131e6565b611408565b60405161069e9190613241565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c99190613854565b61142b565b005b3480156106dc57600080fd5b506106f760048036038101906106f291906131e6565b61156d565b604051610704919061326b565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f91906138f6565b6115ef565b604051610741919061326b565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c9190613344565b611676565b005b60606036805461078290613965565b80601f01602080910402602001604051908101604052809291908181526020018280546107ae90613965565b80156107fb5780601f106107d0576101008083540402835291602001916107fb565b820191906000526020600020905b8154815290600101906020018083116107de57829003601f168201915b5050505050905090565b6000806108106116f9565b905061081d818585611701565b600191505092915050565b6000603554905090565b60008061083d6116f9565b905061084a8582856118ca565b610855858585611956565b60019150509392505050565b60006012905090565b6000610874611bcf565b905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1603610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fe90613a08565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610946611bde565b73ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099390613a9a565b60405180910390fd5b6109a581611c35565b6109fe81600067ffffffffffffffff8111156109c4576109c36133a8565b5b6040519080825280601f01601f1916602001820160405280156109f65781602001600182028036833780820191505090505b506000611c40565b50565b600080610a0c6116f9565b9050610a2d818585610a1e85896115ef565b610a289190613ae9565b611701565b600191505092915050565b610a40611dae565b610a48611e2c565b565b610a52611dae565b610a5c8282611e8f565b5050565b610a71610a6b6116f9565b82611fe6565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1603610b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af990613a08565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b41611bde565b73ffffffffffffffffffffffffffffffffffffffff1614610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e90613a9a565b60405180910390fd5b610ba082611c35565b610bac82826001611c40565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790613b8f565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b6000609760009054906101000a900460ff16905090565b6000610c8b85610e6d565b841115610ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc490613c21565b60405180910390fd5b6000610cd9868661156d565b9050610ce58786611e8f565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b338989868a8a6040518763ffffffff1660e01b8152600401610d4996959493929190613c7f565b6020604051808303816000875af1158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c9190613cf0565b14610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc390613d8f565b60405180910390fd5b6000610dd66121b5565b9050610dee88308489610de99190613ae9565b6118ca565b6000821480610e295750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610e4857610e43888388610e3e9190613ae9565b611fe6565b610e5e565b610e528887611fe6565b610e5d888284611956565b5b60019250505095945050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ea9576000610edd565b610eb1610828565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610edc9190613daf565b5b9050919050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f35611dae565b610f3f60006121ba565b565b610f5382610f4d6116f9565b836118ca565b610f5d8282611fe6565b5050565b6000610fab61012f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612280565b9050919050565b60008060019054906101000a900460ff16159050808015610fe35750600160008054906101000a900460ff1660ff16105b806110105750610ff23061228e565b15801561100f5750600160008054906101000a900460ff1660ff16145b5b61104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690613e55565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561108c576001600060016101000a81548160ff0219169083151502179055505b6111006040518060400160405280600781526020017f426974636f696e000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f42544300000000000000000000000000000000000000000000000000000000008152506122b1565b61110861230e565b61111061235f565b6111186123b8565b6111566040518060400160405280600781526020017f426974636f696e00000000000000000000000000000000000000000000000000815250612411565b61115e6124a2565b6111666124f3565b80156111bf5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516111b69190613eba565b60405180910390a15b50565b6111ca611dae565b6111d2612544565b565b6000606080600080600060606000801b60fb541480156111f857506000801b60fc54145b611237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122e90613f21565b60405180910390fd5b61123f6125a7565b611247612639565b46306000801b600067ffffffffffffffff811115611268576112676133a8565b5b6040519080825280602002602001820160405280156112965781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b600060c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606037805461130e90613965565b80601f016020809104026020016040519081016040528092919081815260200182805461133a90613965565b80156113875780601f1061135c57610100808354040283529160200191611387565b820191906000526020600020905b81548152906001019060200180831161136a57829003601f168201915b5050505050905090565b60008061139c6116f9565b905060006113aa82866115ef565b9050838110156113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690613fb3565b60405180910390fd5b6113fc8286868403611701565b60019250505092915050565b6000806114136116f9565b9050611420818585611956565b600191505092915050565b8342111561146e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114659061401f565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861149d8c6126cb565b896040516020016114b39695949392919061403f565b60405160208183030381529060405280519060200120905060006114d68261272a565b905060006114e682878787612744565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d906140ec565b60405180910390fd5b6115618a8a8a611701565b50505050505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490614158565b60405180910390fd5b6115e7838361276f565b905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61167e611dae565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e4906141ea565b60405180910390fd5b6116f6816121ba565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611770576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117679061427c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d69061430e565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118bd919061326b565b60405180910390a3505050565b60006118d684846115ef565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119505781811015611942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119399061437a565b60405180910390fd5b61194f8484848403611701565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc9061440c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b9061449e565b60405180910390fd5b611a3f838383612777565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90614530565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb6919061326b565b60405180910390a3611bc984848461278f565b50505050565b6000611bd9612794565b905090565b6000611c0c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6127f8565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611c3d611dae565b50565b611c6c7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612802565b60000160009054906101000a900460ff1615611c9057611c8b8361280c565b611da9565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611cf857506040513d601f19601f82011682018060405250810190611cf59190613cf0565b60015b611d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2e906145c2565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390614654565b60405180910390fd5b50611da88383836128c5565b5b505050565b611db66116f9565b73ffffffffffffffffffffffffffffffffffffffff16611dd46112d5565b73ffffffffffffffffffffffffffffffffffffffff1614611e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e21906146c0565b60405180910390fd5b565b611e346128f1565b6000609760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e786116f9565b604051611e8591906137e1565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef59061472c565b60405180910390fd5b611f0a60008383612777565b8060356000828254611f1c9190613ae9565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fce919061326b565b60405180910390a3611fe26000838361278f565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204c906147be565b60405180910390fd5b61206182600083612777565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120df90614850565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161219c919061326b565b60405180910390a36121b08360008461278f565b505050565b600090565b600060c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081600001549050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f7906148e2565b60405180910390fd5b61230a828261293a565b5050565b600060019054906101000a900460ff1661235d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612354906148e2565b60405180910390fd5b565b600060019054906101000a900460ff166123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a5906148e2565b60405180910390fd5b6123b66129ad565b565b600060019054906101000a900460ff16612407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fe906148e2565b60405180910390fd5b61240f612a19565b565b600060019054906101000a900460ff16612460576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612457906148e2565b60405180910390fd5b61249f816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250612a7a565b50565b600060019054906101000a900460ff166124f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e8906148e2565b60405180910390fd5b565b600060019054906101000a900460ff16612542576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612539906148e2565b60405180910390fd5b565b61254c612b01565b6001609760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125906116f9565b60405161259d91906137e1565b60405180910390a1565b606060fd80546125b690613965565b80601f01602080910402602001604051908101604052809291908181526020018280546125e290613965565b801561262f5780601f106126045761010080835404028352916020019161262f565b820191906000526020600020905b81548152906001019060200180831161261257829003601f168201915b5050505050905090565b606060fe805461264890613965565b80601f016020809104026020016040519081016040528092919081815260200182805461267490613965565b80156126c15780601f10612696576101008083540402835291602001916126c1565b820191906000526020600020905b8154815290600101906020018083116126a457829003601f168201915b5050505050905090565b60008061012f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061271981612280565b915061272481612b4b565b50919050565b600061273d612737611bcf565b83612b61565b9050919050565b600080600061275587878787612ba2565b9150915061276281612c84565b8192505050949350505050565b600092915050565b61277f612b01565b61278a838383612dea565b505050565b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6127bf612def565b6127c7612e5a565b46306040516020016127dd959493929190614902565b60405160208183030381529060405280519060200120905090565b6000819050919050565b6000819050919050565b6128158161228e565b612854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284b906149c7565b60405180910390fd5b806128817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6127f8565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6128ce83612ec5565b6000825111806128db5750805b156128ec576128ea8383612f14565b505b505050565b6128f9610c69565b612938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292f90614a33565b60405180910390fd5b565b600060019054906101000a900460ff16612989576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612980906148e2565b60405180910390fd5b81603690816129989190614bf5565b5080603790816129a89190614bf5565b505050565b600060019054906101000a900460ff166129fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129f3906148e2565b60405180910390fd5b6000609760006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff16612a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5f906148e2565b60405180910390fd5b612a78612a736116f9565b6121ba565b565b600060019054906101000a900460ff16612ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac0906148e2565b60405180910390fd5b8160fd9081612ad89190614bf5565b508060fe9081612ae89190614bf5565b506000801b60fb819055506000801b60fc819055505050565b612b09610c69565b15612b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4090614d13565b60405180910390fd5b565b6001816000016000828254019250508190555050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612bdd576000600391509150612c7b565b600060018787878760405160008152602001604052604051612c029493929190614d33565b6020604051602081039080840390855afa158015612c24573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612c7257600060019250925050612c7b565b80600092509250505b94509492505050565b60006004811115612c9857612c97614d78565b5b816004811115612cab57612caa614d78565b5b0315612de75760016004811115612cc557612cc4614d78565b5b816004811115612cd857612cd7614d78565b5b03612d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0f90614df3565b60405180910390fd5b60026004811115612d2c57612d2b614d78565b5b816004811115612d3f57612d3e614d78565b5b03612d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7690614e5f565b60405180910390fd5b60036004811115612d9357612d92614d78565b5b816004811115612da657612da5614d78565b5b03612de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddd90614ef1565b60405180910390fd5b5b50565b505050565b600080612dfa6125a7565b9050600081511115612e16578080519060200120915050612e57565b600060fb5490506000801b8114612e31578092505050612e57565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470925050505b90565b600080612e65612639565b9050600081511115612e81578080519060200120915050612ec2565b600060fc5490506000801b8114612e9c578092505050612ec2565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470925050505b90565b612ece8161280c565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b6060612f398383604051806060016040528060278152602001614fdc60279139612f41565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051612f6b9190614f58565b600060405180830381855af49150503d8060008114612fa6576040519150601f19603f3d011682016040523d82523d6000602084013e612fab565b606091505b5091509150612fbc86838387612fc7565b925050509392505050565b6060831561302957600083510361302157612fe18561228e565b613020576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301790614fbb565b60405180910390fd5b5b829050613034565b613033838361303c565b5b949350505050565b60008251111561304f5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613083919061311c565b60405180910390fd5b600081519050919050565b600082825260208201905092915050565b60005b838110156130c65780820151818401526020810190506130ab565b60008484015250505050565b6000601f19601f8301169050919050565b60006130ee8261308c565b6130f88185613097565b93506131088185602086016130a8565b613111816130d2565b840191505092915050565b6000602082019050818103600083015261313681846130e3565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061317d82613152565b9050919050565b61318d81613172565b811461319857600080fd5b50565b6000813590506131aa81613184565b92915050565b6000819050919050565b6131c3816131b0565b81146131ce57600080fd5b50565b6000813590506131e0816131ba565b92915050565b600080604083850312156131fd576131fc613148565b5b600061320b8582860161319b565b925050602061321c858286016131d1565b9150509250929050565b60008115159050919050565b61323b81613226565b82525050565b60006020820190506132566000830184613232565b92915050565b613265816131b0565b82525050565b6000602082019050613280600083018461325c565b92915050565b60008060006060848603121561329f5761329e613148565b5b60006132ad8682870161319b565b93505060206132be8682870161319b565b92505060406132cf868287016131d1565b9150509250925092565b600060ff82169050919050565b6132ef816132d9565b82525050565b600060208201905061330a60008301846132e6565b92915050565b6000819050919050565b61332381613310565b82525050565b600060208201905061333e600083018461331a565b92915050565b60006020828403121561335a57613359613148565b5b60006133688482850161319b565b91505092915050565b60006020828403121561338757613386613148565b5b6000613395848285016131d1565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6133e0826130d2565b810181811067ffffffffffffffff821117156133ff576133fe6133a8565b5b80604052505050565b600061341261313e565b905061341e82826133d7565b919050565b600067ffffffffffffffff82111561343e5761343d6133a8565b5b613447826130d2565b9050602081019050919050565b82818337600083830152505050565b600061347661347184613423565b613408565b905082815260208101848484011115613492576134916133a3565b5b61349d848285613454565b509392505050565b600082601f8301126134ba576134b961339e565b5b81356134ca848260208601613463565b91505092915050565b600080604083850312156134ea576134e9613148565b5b60006134f88582860161319b565b925050602083013567ffffffffffffffff8111156135195761351861314d565b5b613525858286016134a5565b9150509250929050565b600061353a82613172565b9050919050565b61354a8161352f565b811461355557600080fd5b50565b60008135905061356781613541565b92915050565b600080fd5b600080fd5b60008083601f84011261358d5761358c61339e565b5b8235905067ffffffffffffffff8111156135aa576135a961356d565b5b6020830191508360018202830111156135c6576135c5613572565b5b9250929050565b6000806000806000608086880312156135e9576135e8613148565b5b60006135f788828901613558565b95505060206136088882890161319b565b9450506040613619888289016131d1565b935050606086013567ffffffffffffffff81111561363a5761363961314d565b5b61364688828901613577565b92509250509295509295909350565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61368a81613655565b82525050565b61369981613172565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d4816131b0565b82525050565b60006136e683836136cb565b60208301905092915050565b6000602082019050919050565b600061370a8261369f565b61371481856136aa565b935061371f836136bb565b8060005b8381101561375057815161373788826136da565b9750613742836136f2565b925050600181019050613723565b5085935050505092915050565b600060e082019050613772600083018a613681565b818103602083015261378481896130e3565b9050818103604083015261379881886130e3565b90506137a7606083018761325c565b6137b46080830186613690565b6137c160a083018561331a565b81810360c08301526137d381846136ff565b905098975050505050505050565b60006020820190506137f66000830184613690565b92915050565b613805816132d9565b811461381057600080fd5b50565b600081359050613822816137fc565b92915050565b61383181613310565b811461383c57600080fd5b50565b60008135905061384e81613828565b92915050565b600080600080600080600060e0888a03121561387357613872613148565b5b60006138818a828b0161319b565b97505060206138928a828b0161319b565b96505060406138a38a828b016131d1565b95505060606138b48a828b016131d1565b94505060806138c58a828b01613813565b93505060a06138d68a828b0161383f565b92505060c06138e78a828b0161383f565b91505092959891949750929550565b6000806040838503121561390d5761390c613148565b5b600061391b8582860161319b565b925050602061392c8582860161319b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061397d57607f821691505b6020821081036139905761398f613936565b5b50919050565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b60006139f2602c83613097565b91506139fd82613996565b604082019050919050565b60006020820190508181036000830152613a21816139e5565b9050919050565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b6000613a84602c83613097565b9150613a8f82613a28565b604082019050919050565b60006020820190508181036000830152613ab381613a77565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613af4826131b0565b9150613aff836131b0565b9250828201905080821115613b1757613b16613aba565b5b92915050565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b6000613b79603883613097565b9150613b8482613b1d565b604082019050919050565b60006020820190508181036000830152613ba881613b6c565b9050919050565b7f4552433230466c6173684d696e743a20616d6f756e742065786365656473206d60008201527f6178466c6173684c6f616e000000000000000000000000000000000000000000602082015250565b6000613c0b602b83613097565b9150613c1682613baf565b604082019050919050565b60006020820190508181036000830152613c3a81613bfe565b9050919050565b600082825260208201905092915050565b6000613c5e8385613c41565b9350613c6b838584613454565b613c74836130d2565b840190509392505050565b600060a082019050613c946000830189613690565b613ca16020830188613690565b613cae604083018761325c565b613cbb606083018661325c565b8181036080830152613cce818486613c52565b9050979650505050505050565b600081519050613cea81613828565b92915050565b600060208284031215613d0657613d05613148565b5b6000613d1484828501613cdb565b91505092915050565b7f4552433230466c6173684d696e743a20696e76616c69642072657475726e207660008201527f616c756500000000000000000000000000000000000000000000000000000000602082015250565b6000613d79602483613097565b9150613d8482613d1d565b604082019050919050565b60006020820190508181036000830152613da881613d6c565b9050919050565b6000613dba826131b0565b9150613dc5836131b0565b9250828203905081811115613ddd57613ddc613aba565b5b92915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613e3f602e83613097565b9150613e4a82613de3565b604082019050919050565b60006020820190508181036000830152613e6e81613e32565b9050919050565b6000819050919050565b6000819050919050565b6000613ea4613e9f613e9a84613e75565b613e7f565b6132d9565b9050919050565b613eb481613e89565b82525050565b6000602082019050613ecf6000830184613eab565b92915050565b7f4549503731323a20556e696e697469616c697a65640000000000000000000000600082015250565b6000613f0b601583613097565b9150613f1682613ed5565b602082019050919050565b60006020820190508181036000830152613f3a81613efe565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613f9d602583613097565b9150613fa882613f41565b604082019050919050565b60006020820190508181036000830152613fcc81613f90565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000614009601d83613097565b915061401482613fd3565b602082019050919050565b6000602082019050818103600083015261403881613ffc565b9050919050565b600060c082019050614054600083018961331a565b6140616020830188613690565b61406e6040830187613690565b61407b606083018661325c565b614088608083018561325c565b61409560a083018461325c565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b60006140d6601e83613097565b91506140e1826140a0565b602082019050919050565b60006020820190508181036000830152614105816140c9565b9050919050565b7f4552433230466c6173684d696e743a2077726f6e6720746f6b656e0000000000600082015250565b6000614142601b83613097565b915061414d8261410c565b602082019050919050565b6000602082019050818103600083015261417181614135565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006141d4602683613097565b91506141df82614178565b604082019050919050565b60006020820190508181036000830152614203816141c7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614266602483613097565b91506142718261420a565b604082019050919050565b6000602082019050818103600083015261429581614259565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142f8602283613097565b91506143038261429c565b604082019050919050565b60006020820190508181036000830152614327816142eb565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614364601d83613097565b915061436f8261432e565b602082019050919050565b6000602082019050818103600083015261439381614357565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006143f6602583613097565b91506144018261439a565b604082019050919050565b60006020820190508181036000830152614425816143e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614488602383613097565b91506144938261442c565b604082019050919050565b600060208201905081810360008301526144b78161447b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061451a602683613097565b9150614525826144be565b604082019050919050565b600060208201905081810360008301526145498161450d565b9050919050565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b60006145ac602e83613097565b91506145b782614550565b604082019050919050565b600060208201905081810360008301526145db8161459f565b9050919050565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b600061463e602983613097565b9150614649826145e2565b604082019050919050565b6000602082019050818103600083015261466d81614631565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006146aa602083613097565b91506146b582614674565b602082019050919050565b600060208201905081810360008301526146d98161469d565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000614716601f83613097565b9150614721826146e0565b602082019050919050565b6000602082019050818103600083015261474581614709565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006147a8602183613097565b91506147b38261474c565b604082019050919050565b600060208201905081810360008301526147d78161479b565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600061483a602283613097565b9150614845826147de565b604082019050919050565b600060208201905081810360008301526148698161482d565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60006148cc602b83613097565b91506148d782614870565b604082019050919050565b600060208201905081810360008301526148fb816148bf565b9050919050565b600060a082019050614917600083018861331a565b614924602083018761331a565b614931604083018661331a565b61493e606083018561325c565b61494b6080830184613690565b9695505050505050565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b60006149b1602d83613097565b91506149bc82614955565b604082019050919050565b600060208201905081810360008301526149e0816149a4565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000614a1d601483613097565b9150614a28826149e7565b602082019050919050565b60006020820190508181036000830152614a4c81614a10565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614ab57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a78565b614abf8683614a78565b95508019841693508086168417925050509392505050565b6000614af2614aed614ae8846131b0565b613e7f565b6131b0565b9050919050565b6000819050919050565b614b0c83614ad7565b614b20614b1882614af9565b848454614a85565b825550505050565b600090565b614b35614b28565b614b40818484614b03565b505050565b5b81811015614b6457614b59600082614b2d565b600181019050614b46565b5050565b601f821115614ba957614b7a81614a53565b614b8384614a68565b81016020851015614b92578190505b614ba6614b9e85614a68565b830182614b45565b50505b505050565b600082821c905092915050565b6000614bcc60001984600802614bae565b1980831691505092915050565b6000614be58383614bbb565b9150826002028217905092915050565b614bfe8261308c565b67ffffffffffffffff811115614c1757614c166133a8565b5b614c218254613965565b614c2c828285614b68565b600060209050601f831160018114614c5f5760008415614c4d578287015190505b614c578582614bd9565b865550614cbf565b601f198416614c6d86614a53565b60005b82811015614c9557848901518255600182019150602085019450602081019050614c70565b86831015614cb25784890151614cae601f891682614bbb565b8355505b6001600288020188555050505b505050505050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000614cfd601083613097565b9150614d0882614cc7565b602082019050919050565b60006020820190508181036000830152614d2c81614cf0565b9050919050565b6000608082019050614d48600083018761331a565b614d5560208301866132e6565b614d62604083018561331a565b614d6f606083018461331a565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000614ddd601883613097565b9150614de882614da7565b602082019050919050565b60006020820190508181036000830152614e0c81614dd0565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000614e49601f83613097565b9150614e5482614e13565b602082019050919050565b60006020820190508181036000830152614e7881614e3c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000614edb602283613097565b9150614ee682614e7f565b604082019050919050565b60006020820190508181036000830152614f0a81614ece565b9050919050565b600081519050919050565b600081905092915050565b6000614f3282614f11565b614f3c8185614f1c565b9350614f4c8185602086016130a8565b80840191505092915050565b6000614f648284614f27565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000614fa5601d83613097565b9150614fb082614f6f565b602082019050919050565b60006020820190508181036000830152614fd481614f98565b905091905056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d07be5344308434395ccccdb081845a33b0a3db7e19dee37db66e97baf3f328764736f6c63430008120033