60806040526c054f529ca52576bc6892000000600a556064600a546005620000289190620007a7565b62000034919062000821565b600b556064600a5460056200004a9190620007a7565b62000056919062000821565b600c55612710600a5460056200006d9190620007a7565b62000079919062000821565b600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506000600f556000601055600060115560016012556064601355348015620000d857600080fd5b506040518060400160405280601281526020017f456c6f6e204461726b204d6167612048617400000000000000000000000000008152506040518060400160405280600681526020017f45444d4147410000000000000000000000000000000000000000000000000000815250816003908162000156919062000ac9565b50806004908162000168919062000ac9565b5050506200018b6200017f6200034860201b60201c565b6200035060201b60201c565b6200019b6200034860201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507331a33a2ad1051020fc2b763c179610f575b8c6e1600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000252620002446200041660201b60201c565b60016200044060201b60201c565b62000287600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200044060201b60201c565b6200029a3060016200044060201b60201c565b620002af61dead60016200044060201b60201c565b620002c2306001620004fb60201b60201c565b620002e4620002d66200041660201b60201c565b6001620004fb60201b60201c565b62000319600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004fb60201b60201c565b6200032e61dead6001620004fb60201b60201c565b6200034233600a546200056660201b60201c565b62000d48565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000450620006d360201b60201c565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620004ef919062000bcd565b60405180910390a25050565b6200050b620006d360201b60201c565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005cf9062000c4b565b60405180910390fd5b620005ec600083836200076460201b60201c565b806002600082825462000600919062000c6d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b3919062000cb9565b60405180910390a3620006cf600083836200076960201b60201c565b5050565b620006e36200034860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007096200041660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000762576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007599062000d26565b60405180910390fd5b565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b4826200076e565b9150620007c1836200076e565b9250828202620007d1816200076e565b91508282048414831517620007eb57620007ea62000778565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200082e826200076e565b91506200083b836200076e565b9250826200084e576200084d620007f2565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008db57607f821691505b602082108103620008f157620008f062000893565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200095b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091c565b6200096786836200091c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009aa620009a46200099e846200076e565b6200097f565b6200076e565b9050919050565b6000819050919050565b620009c68362000989565b620009de620009d582620009b1565b84845462000929565b825550505050565b600090565b620009f5620009e6565b62000a02818484620009bb565b505050565b5b8181101562000a2a5762000a1e600082620009eb565b60018101905062000a08565b5050565b601f82111562000a795762000a4381620008f7565b62000a4e846200090c565b8101602085101562000a5e578190505b62000a7662000a6d856200090c565b83018262000a07565b50505b505050565b600082821c905092915050565b600062000a9e6000198460080262000a7e565b1980831691505092915050565b600062000ab9838362000a8b565b9150826002028217905092915050565b62000ad48262000859565b67ffffffffffffffff81111562000af05762000aef62000864565b5b62000afc8254620008c2565b62000b0982828562000a2e565b600060209050601f83116001811462000b41576000841562000b2c578287015190505b62000b38858262000aab565b86555062000ba8565b601f19841662000b5186620008f7565b60005b8281101562000b7b5784890151825560018201915060208501945060208101905062000b54565b8683101562000b9b578489015162000b97601f89168262000a8b565b8355505b6001600288020188555050505b505050505050565b60008115159050919050565b62000bc78162000bb0565b82525050565b600060208201905062000be4600083018462000bbc565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c33601f8362000bea565b915062000c408262000bfb565b602082019050919050565b6000602082019050818103600083015262000c668162000c24565b9050919050565b600062000c7a826200076e565b915062000c87836200076e565b925082820190508082111562000ca25762000ca162000778565b5b92915050565b62000cb3816200076e565b82525050565b600060208201905062000cd0600083018462000ca8565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d0e60208362000bea565b915062000d1b8262000cd6565b602082019050919050565b6000602082019050818103600083015262000d418162000cff565b9050919050565b613d898062000d586000396000f3fe6080604052600436106102295760003560e01c80637571336a11610123578063c8c8ebe4116100ab578063dd8546521161006f578063dd854652146107d1578063e2f45605146107fc578063f2fde38b14610827578063f8b45b0514610850578063ffb54a991461087b57610230565b8063c8c8ebe4146106fe578063c8ce76fe14610729578063cf9522fd14610740578063d7c4c7c51461076b578063dd62ed3e1461079457610230565b80639a7a23d6116100f25780639a7a23d614610609578063a457c2d714610632578063a9059cbb1461066f578063afa4f3b2146106ac578063c0246668146106d557610230565b80637571336a14610561578063881dce601461058a5780638da5cb5b146105b357806395d89b41146105de57610230565b8063414a8786116101b157806351cd7cc31161017557806351cd7cc3146104a0578063583e0568146104b75780636ddd1713146104e257806370a082311461050d578063715018a61461054a57610230565b8063414a8786146103ec578063414afa601461041757806349bd5a5e146104215780634ab0c04a1461044c5780634fbee1931461046357610230565b806323b872dd116101f857806323b872dd146102f1578063311028af1461032e578063313ce5671461035957806339509351146103845780633ff52513146103c157610230565b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029d5780631816467f146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108a6565b6040516102579190612bc5565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612c80565b610938565b6040516102949190612cdb565b60405180910390f35b3480156102a957600080fd5b506102b261095b565b6040516102bf9190612d05565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190612d20565b610965565b005b3480156102fd57600080fd5b5061031860048036038101906103139190612d4d565b610a2d565b6040516103259190612cdb565b60405180910390f35b34801561033a57600080fd5b50610343610a5c565b6040516103509190612d05565b60405180910390f35b34801561036557600080fd5b5061036e610a62565b60405161037b9190612dbc565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a69190612c80565b610a6b565b6040516103b89190612cdb565b60405180910390f35b3480156103cd57600080fd5b506103d6610aa2565b6040516103e39190612d05565b60405180910390f35b3480156103f857600080fd5b50610401610aa8565b60405161040e9190612d05565b60405180910390f35b61041f610aae565b005b34801561042d57600080fd5b50610436610dbf565b6040516104439190612de6565b60405180910390f35b34801561045857600080fd5b50610461610de5565b005b34801561046f57600080fd5b5061048a60048036038101906104859190612d20565b610ed2565b6040516104979190612cdb565b60405180910390f35b3480156104ac57600080fd5b506104b5610f28565b005b3480156104c357600080fd5b506104cc610fb8565b6040516104d99190612e60565b60405180910390f35b3480156104ee57600080fd5b506104f7610fde565b6040516105049190612cdb565b60405180910390f35b34801561051957600080fd5b50610534600480360381019061052f9190612d20565b610ff1565b6040516105419190612d05565b60405180910390f35b34801561055657600080fd5b5061055f611039565b005b34801561056d57600080fd5b5061058860048036038101906105839190612ea7565b61104d565b005b34801561059657600080fd5b506105b160048036038101906105ac9190612ee7565b6110b0565b005b3480156105bf57600080fd5b506105c8611198565b6040516105d59190612de6565b60405180910390f35b3480156105ea57600080fd5b506105f36111c2565b6040516106009190612bc5565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b9190612ea7565b611254565b005b34801561063e57600080fd5b5061065960048036038101906106549190612c80565b6112fa565b6040516106669190612cdb565b60405180910390f35b34801561067b57600080fd5b5061069660048036038101906106919190612c80565b611371565b6040516106a39190612cdb565b60405180910390f35b3480156106b857600080fd5b506106d360048036038101906106ce9190612ee7565b611394565b005b3480156106e157600080fd5b506106fc60048036038101906106f79190612ea7565b6113b9565b005b34801561070a57600080fd5b5061071361146a565b6040516107209190612d05565b60405180910390f35b34801561073557600080fd5b5061073e611470565b005b34801561074c57600080fd5b50610755611495565b6040516107629190612d05565b60405180910390f35b34801561077757600080fd5b50610792600480360381019061078d9190612f52565b61149b565b005b3480156107a057600080fd5b506107bb60048036038101906107b69190612f92565b6114bd565b6040516107c89190612d05565b60405180910390f35b3480156107dd57600080fd5b506107e6611544565b6040516107f39190612d05565b60405180910390f35b34801561080857600080fd5b5061081161154a565b60405161081e9190612d05565b60405180910390f35b34801561083357600080fd5b5061084e60048036038101906108499190612d20565b611550565b005b34801561085c57600080fd5b506108656115d3565b6040516108729190612d05565b60405180910390f35b34801561088757600080fd5b506108906115d9565b60405161089d9190612cdb565b60405180910390f35b6060600380546108b590613001565b80601f01602080910402602001604051908101604052809291908181526020018280546108e190613001565b801561092e5780601f106109035761010080835404028352916020019161092e565b820191906000526020600020905b81548152906001019060200180831161091157829003601f168201915b5050505050905090565b6000806109436115ec565b90506109508185856115f4565b600191505092915050565b6000600254905090565b61096d6117bd565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610a386115ec565b9050610a4585828561183b565b610a508585856118c7565b60019150509392505050565b600a5481565b60006012905090565b600080610a766115ec565b9050610a97818585610a8885896114bd565b610a929190613061565b6115f4565b600191505092915050565b60125481565b60115481565b610ab66117bd565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b38600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161104d565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc991906130aa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906130aa565b6040518363ffffffff1660e01b8152600401610c939291906130d7565b6020604051808303816000875af1158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd691906130aa565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d43600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161104d565b610d70600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612209565b610dbd30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6115f4565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f9061314c565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e696115ec565b73ffffffffffffffffffffffffffffffffffffffff1614610e8957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610ecf573d6000803e3d6000fd5b50565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610f306117bd565b600e60009054906101000a900460ff1615610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f77906131b8565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110416117bd565b61104b60006122aa565b565b6110556117bd565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f16115ec565b73ffffffffffffffffffffffffffffffffffffffff161461111157600080fd5b600061111b61095b565b9050600061112830610ff1565b905060006064848461113a91906131d8565b6111449190613249565b905080821015611189576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611180906132c6565b60405180910390fd5b61119281612370565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111d190613001565b80601f01602080910402602001604051908101604052809291908181526020018280546111fd90613001565b801561124a5780601f1061121f5761010080835404028352916020019161124a565b820191906000526020600020905b81548152906001019060200180831161122d57829003601f168201915b5050505050905090565b61125c6117bd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390613358565b60405180910390fd5b6112f68282612209565b5050565b6000806113056115ec565b9050600061131382866114bd565b905083811015611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134f906133ea565b60405180910390fd5b61136582868684036115f4565b60019250505092915050565b60008061137c6115ec565b90506113898185856118c7565b600191505092915050565b61139c6117bd565b670de0b6b3a7640000816113b091906131d8565b600d8190555050565b6113c16117bd565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161145e9190612cdb565b60405180910390a25050565b600b5481565b6114786117bd565b600061148261095b565b905080600b8190555080600c8190555050565b60105481565b336114a581610ed2565b6114ae57600080fd5b6114b883836125d5565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b6115586117bd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be9061347c565b60405180910390fd5b6115d0816122aa565b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165a9061350e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c9906135a0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117b09190612d05565b60405180910390a3505050565b6117c56115ec565b73ffffffffffffffffffffffffffffffffffffffff166117e3611198565b73ffffffffffffffffffffffffffffffffffffffff1614611839576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118309061360c565b60405180910390fd5b565b600061184784846114bd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118c157818110156118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa90613678565b60405180910390fd5b6118c084848484036115f4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d9061370a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c9061379c565b60405180910390fd5b600081036119be576119b9838360006127a2565b612204565b6119c6611198565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a345750611a04611198565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a6d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ac05750600960149054906101000a900460ff16155b15611ea357600e60009054906101000a900460ff16611bba57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b7a5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb090613808565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c5d5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0457600b54811115611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e9061389a565b60405180910390fd5b600c54611cb383610ff1565b82611cbe9190613061565b1115611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690613906565b60405180910390fd5b611ea2565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611da75750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611df657600b54811115611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de890613998565b60405180910390fd5b611ea1565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ea057600c54611e5383610ff1565b82611e5e9190613061565b1115611e9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9690613906565b60405180910390fd5b5b5b5b5b6000611eae30610ff1565b905060008082119050808015611ed05750600e60019054906101000a900460ff165b8015611ee95750600960149054906101000a900460ff16155b8015611f3f5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f955750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611feb5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612030576001600960146101000a81548160ff02191690831515021790555061201483612a18565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120e65750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120f057600090505b600081156121f457601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561218f5761218860135461215b601254612ab6565b61216591906131d8565b61217a60105488612aff90919063ffffffff16565b612b1590919063ffffffff16565b90506121d0565b6121cd6013546121a0601154612ab6565b6121aa91906131d8565b6121bf600f5488612aff90919063ffffffff16565b612b1590919063ffffffff16565b90505b60008111156121e5576121e48730836127a2565b5b80856121f191906139b8565b94505b6121ff8787876127a2565b505050505b505050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff81111561238d5761238c6139ec565b5b6040519080825280602002602001820160405280156123bb5781602001602082028036833780820191505090505b50905030816000815181106123d3576123d2613a1b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561247a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249e91906130aa565b816001815181106124b2576124b1613a1b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061251930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115f4565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161259f959493929190613b43565b600060405180830381600087803b1580156125b957600080fd5b505af11580156125cd573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263b90613c0f565b60405180910390fd5b61265082600083612b2b565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd90613ca1565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127899190612d05565b60405180910390a361279d83600084612b30565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128089061370a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128779061379c565b60405180910390fd5b61288b838383612b2b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290890613d33565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129ff9190612d05565b60405180910390a3612a12848484612b30565b50505050565b6000612a2330610ff1565b90506000808203612a35575050612ab3565b600082118015612a465750600d5482105b15612a5357819050612aa7565b6000612a7d6064612a6f60105487612aff90919063ffffffff16565b612b1590919063ffffffff16565b90508084612a8b91906139b8565b9350600d54841115612aa157600d549150612aa5565b8391505b505b612ab081612370565b50505b50565b600080612ac461dead610ff1565b118015612ad15750600082115b612adc576001612af8565b60646001601354612aed91906139b8565b612af79190613249565b5b9050919050565b60008183612b0d91906131d8565b905092915050565b60008183612b239190613249565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b6f578082015181840152602081019050612b54565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b9782612b35565b612ba18185612b40565b9350612bb1818560208601612b51565b612bba81612b7b565b840191505092915050565b60006020820190508181036000830152612bdf8184612b8c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c1782612bec565b9050919050565b612c2781612c0c565b8114612c3257600080fd5b50565b600081359050612c4481612c1e565b92915050565b6000819050919050565b612c5d81612c4a565b8114612c6857600080fd5b50565b600081359050612c7a81612c54565b92915050565b60008060408385031215612c9757612c96612be7565b5b6000612ca585828601612c35565b9250506020612cb685828601612c6b565b9150509250929050565b60008115159050919050565b612cd581612cc0565b82525050565b6000602082019050612cf06000830184612ccc565b92915050565b612cff81612c4a565b82525050565b6000602082019050612d1a6000830184612cf6565b92915050565b600060208284031215612d3657612d35612be7565b5b6000612d4484828501612c35565b91505092915050565b600080600060608486031215612d6657612d65612be7565b5b6000612d7486828701612c35565b9350506020612d8586828701612c35565b9250506040612d9686828701612c6b565b9150509250925092565b600060ff82169050919050565b612db681612da0565b82525050565b6000602082019050612dd16000830184612dad565b92915050565b612de081612c0c565b82525050565b6000602082019050612dfb6000830184612dd7565b92915050565b6000819050919050565b6000612e26612e21612e1c84612bec565b612e01565b612bec565b9050919050565b6000612e3882612e0b565b9050919050565b6000612e4a82612e2d565b9050919050565b612e5a81612e3f565b82525050565b6000602082019050612e756000830184612e51565b92915050565b612e8481612cc0565b8114612e8f57600080fd5b50565b600081359050612ea181612e7b565b92915050565b60008060408385031215612ebe57612ebd612be7565b5b6000612ecc85828601612c35565b9250506020612edd85828601612e92565b9150509250929050565b600060208284031215612efd57612efc612be7565b5b6000612f0b84828501612c6b565b91505092915050565b6000612f1f82612c0c565b9050919050565b612f2f81612f14565b8114612f3a57600080fd5b50565b600081359050612f4c81612f26565b92915050565b60008060408385031215612f6957612f68612be7565b5b6000612f7785828601612f3d565b9250506020612f8885828601612c6b565b9150509250929050565b60008060408385031215612fa957612fa8612be7565b5b6000612fb785828601612c35565b9250506020612fc885828601612c35565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061301957607f821691505b60208210810361302c5761302b612fd2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061306c82612c4a565b915061307783612c4a565b925082820190508082111561308f5761308e613032565b5b92915050565b6000815190506130a481612c1e565b92915050565b6000602082840312156130c0576130bf612be7565b5b60006130ce84828501613095565b91505092915050565b60006040820190506130ec6000830185612dd7565b6130f96020830184612dd7565b9392505050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613136601683612b40565b915061314182613100565b602082019050919050565b6000602082019050818103600083015261316581613129565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006131a2601783612b40565b91506131ad8261316c565b602082019050919050565b600060208201905081810360008301526131d181613195565b9050919050565b60006131e382612c4a565b91506131ee83612c4a565b92508282026131fc81612c4a565b9150828204841483151761321357613212613032565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061325482612c4a565b915061325f83612c4a565b92508261326f5761326e61321a565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b60006132b0601183612b40565b91506132bb8261327a565b602082019050919050565b600060208201905081810360008301526132df816132a3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613342603983612b40565b915061334d826132e6565b604082019050919050565b6000602082019050818103600083015261337181613335565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006133d4602583612b40565b91506133df82613378565b604082019050919050565b60006020820190508181036000830152613403816133c7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613466602683612b40565b91506134718261340a565b604082019050919050565b6000602082019050818103600083015261349581613459565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134f8602483612b40565b91506135038261349c565b604082019050919050565b60006020820190508181036000830152613527816134eb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061358a602283612b40565b91506135958261352e565b604082019050919050565b600060208201905081810360008301526135b98161357d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135f6602083612b40565b9150613601826135c0565b602082019050919050565b60006020820190508181036000830152613625816135e9565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613662601d83612b40565b915061366d8261362c565b602082019050919050565b6000602082019050818103600083015261369181613655565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136f4602583612b40565b91506136ff82613698565b604082019050919050565b60006020820190508181036000830152613723816136e7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613786602383612b40565b91506137918261372a565b604082019050919050565b600060208201905081810360008301526137b581613779565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006137f2601683612b40565b91506137fd826137bc565b602082019050919050565b60006020820190508181036000830152613821816137e5565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613884603583612b40565b915061388f82613828565b604082019050919050565b600060208201905081810360008301526138b381613877565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006138f0601383612b40565b91506138fb826138ba565b602082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613982603683612b40565b915061398d82613926565b604082019050919050565b600060208201905081810360008301526139b181613975565b9050919050565b60006139c382612c4a565b91506139ce83612c4a565b92508282039050818111156139e6576139e5613032565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613a6f613a6a613a6584613a4a565b612e01565b612c4a565b9050919050565b613a7f81613a54565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613aba81612c0c565b82525050565b6000613acc8383613ab1565b60208301905092915050565b6000602082019050919050565b6000613af082613a85565b613afa8185613a90565b9350613b0583613aa1565b8060005b83811015613b36578151613b1d8882613ac0565b9750613b2883613ad8565b925050600181019050613b09565b5085935050505092915050565b600060a082019050613b586000830188612cf6565b613b656020830187613a76565b8181036040830152613b778186613ae5565b9050613b866060830185612dd7565b613b936080830184612cf6565b9695505050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bf9602183612b40565b9150613c0482613b9d565b604082019050919050565b60006020820190508181036000830152613c2881613bec565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c8b602283612b40565b9150613c9682613c2f565b604082019050919050565b60006020820190508181036000830152613cba81613c7e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613d1d602683612b40565b9150613d2882613cc1565b604082019050919050565b60006020820190508181036000830152613d4c81613d10565b905091905056fea264697066735822122003b2739e9058b033cae61d95e8981d209a2fcef108e00335017060310bd7dc8464736f6c63430008120033