60a06040526001600660156101000a81548160ff02191690831515021790555060046007556002600855730e79482082550fee7da4a163d179552eb9dc0fbb600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507324988f6f6be17bc95b2a4dda150869eb8f8946b6600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732da26e79acebe73f98af42be0c8571001f13db2a600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a02523c83e6e09842a80000600c5569948f1a095ccc3cf80000600d5568d8d726b7177a800000600e553480156200015f57600080fd5b506040518060400160405280601481526020017f486170707920426972746864617920456c6f6e210000000000000000000000008152506040518060400160405280600381526020017f48424500000000000000000000000000000000000000000000000000000000008152508160039080519060200190620001e492919062000968565b508060049080519060200190620001fd92919062000968565b50505062000220620002146200051f60201b60201c565b6200052760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad919062000a82565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033b919062000a82565b6040518363ffffffff1660e01b81526004016200035a92919062000ac5565b6020604051808303816000875af11580156200037a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a0919062000a82565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620004396200042b620005ed60201b60201c565b60016200061760201b60201c565b6200046e600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200061760201b60201c565b620004a3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200061760201b60201c565b620004d8600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200061760201b60201c565b620004eb3060016200061760201b60201c565b62000517620004ff620005ed60201b60201c565b6a17365d42c63359e9580000620007e660201b60201c565b505062000de1565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620006276200051f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200064d620005ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200069d9062000b53565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036200073b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007329062000beb565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620007da919062000c2a565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000858576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084f9062000c97565b60405180910390fd5b6200086c600083836200095e60201b60201c565b806002600082825462000880919062000cf2565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620008d7919062000cf2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200093e919062000d60565b60405180910390a36200095a600083836200096360201b60201c565b5050565b505050565b505050565b828054620009769062000dac565b90600052602060002090601f0160209004810192826200099a5760008555620009e6565b82601f10620009b557805160ff1916838001178555620009e6565b82800160010185558215620009e6579182015b82811115620009e5578251825591602001919060010190620009c8565b5b509050620009f59190620009f9565b5090565b5b8082111562000a14576000816000905550600101620009fa565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a4a8262000a1d565b9050919050565b62000a5c8162000a3d565b811462000a6857600080fd5b50565b60008151905062000a7c8162000a51565b92915050565b60006020828403121562000a9b5762000a9a62000a18565b5b600062000aab8482850162000a6b565b91505092915050565b62000abf8162000a3d565b82525050565b600060408201905062000adc600083018562000ab4565b62000aeb602083018462000ab4565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000b3b60208362000af2565b915062000b488262000b03565b602082019050919050565b6000602082019050818103600083015262000b6e8162000b2c565b9050919050565b7f524549433a204163636f756e7420697320616c7265616479207468652076616c60008201527f7565206f6620276578636c756465642700000000000000000000000000000000602082015250565b600062000bd360308362000af2565b915062000be08262000b75565b604082019050919050565b6000602082019050818103600083015262000c068162000bc4565b9050919050565b60008115159050919050565b62000c248162000c0d565b82525050565b600060208201905062000c41600083018462000c19565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c7f601f8362000af2565b915062000c8c8262000c47565b602082019050919050565b6000602082019050818103600083015262000cb28162000c70565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000cff8262000cb9565b915062000d0c8362000cb9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d445762000d4362000cc3565b5b828201905092915050565b62000d5a8162000cb9565b82525050565b600060208201905062000d77600083018462000d4f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000dc557607f821691505b60208210810362000ddb5762000dda62000d7d565b5b50919050565b60805161361062000e1960003960008181610bd401528181611a6601528181611b5b01528181611c1d0152611c9b01526136106000f3fe6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063e01af92c1161006f578063e01af92c14610724578063e2f456051461074d578063e6c75f7114610778578063ec28438a146107a3578063f2fde38b146107cc576101f9565b8063a9059cbb14610658578063afa4f3b214610695578063c0246668146106be578063dd62ed3e146106e7576101f9565b80638ea5220f116100dc5780638ea5220f1461059c57806391d55f41146105c757806395d89b41146105f0578063a457c2d71461061b576101f9565b8063715018a61461050457806375f0a8741461051b5780638c0b5e22146105465780638da5cb5b14610571576101f9565b8063395093511161018557806352f7c9881161015457806352f7c9881461044857806359927044146104715780636ddd17131461049c57806370a08231146104c7576101f9565b8063395093511461037857806347062402146103b557806349bd5a5e146103e05780634fbee1931461040b576101f9565b806318160ddd116101c157806318160ddd146102ba57806323b872dd146102e55780632b14ca5614610322578063313ce5671461034d576101f9565b806306fdde03146101fe578063095ea7b314610229578063147c9f6d146102665780631694505e1461028f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107f5565b60405161022091906125d3565b60405180910390f35b34801561023557600080fd5b50610250600480360381019061024b919061268e565b610887565b60405161025d91906126e9565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612742565b6108a5565b005b34801561029b57600080fd5b506102a46109e9565b6040516102b191906127f4565b60405180910390f35b3480156102c657600080fd5b506102cf610a0f565b6040516102dc919061281e565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612839565b610a19565b60405161031991906126e9565b60405180910390f35b34801561032e57600080fd5b50610337610b11565b604051610344919061281e565b60405180910390f35b34801561035957600080fd5b50610362610b17565b60405161036f91906128a8565b60405180910390f35b34801561038457600080fd5b5061039f600480360381019061039a919061268e565b610b20565b6040516103ac91906126e9565b60405180910390f35b3480156103c157600080fd5b506103ca610bcc565b6040516103d7919061281e565b60405180910390f35b3480156103ec57600080fd5b506103f5610bd2565b60405161040291906128d2565b60405180910390f35b34801561041757600080fd5b50610432600480360381019061042d91906128ed565b610bf6565b60405161043f91906126e9565b60405180910390f35b34801561045457600080fd5b5061046f600480360381019061046a919061291a565b610c4c565b005b34801561047d57600080fd5b50610486610d2b565b6040516104939190612969565b60405180910390f35b3480156104a857600080fd5b506104b1610d51565b6040516104be91906126e9565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e991906128ed565b610d64565b6040516104fb919061281e565b60405180910390f35b34801561051057600080fd5b50610519610dac565b005b34801561052757600080fd5b50610530610e34565b60405161053d9190612969565b60405180910390f35b34801561055257600080fd5b5061055b610e5a565b604051610568919061281e565b60405180910390f35b34801561057d57600080fd5b50610586610e60565b60405161059391906128d2565b60405180910390f35b3480156105a857600080fd5b506105b1610e8a565b6040516105be9190612969565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e99190612984565b610eb0565b005b3480156105fc57600080fd5b50610605610f95565b60405161061291906125d3565b60405180910390f35b34801561062757600080fd5b50610642600480360381019061063d919061268e565b611027565b60405161064f91906126e9565b60405180910390f35b34801561066457600080fd5b5061067f600480360381019061067a919061268e565b611112565b60405161068c91906126e9565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190612984565b611130565b005b3480156106ca57600080fd5b506106e560048036038101906106e091906129dd565b6111b6565b005b3480156106f357600080fd5b5061070e60048036038101906107099190612a1d565b61136d565b60405161071b919061281e565b60405180910390f35b34801561073057600080fd5b5061074b60048036038101906107469190612a5d565b6113f4565b005b34801561075957600080fd5b506107626114c4565b60405161076f919061281e565b60405180910390f35b34801561078457600080fd5b5061078d6114ca565b60405161079a919061281e565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c59190612984565b6114d0565b005b3480156107d857600080fd5b506107f360048036038101906107ee91906128ed565b6115b5565b005b60606003805461080490612ab9565b80601f016020809104026020016040519081016040528092919081815260200182805461083090612ab9565b801561087d5780601f106108525761010080835404028352916020019161087d565b820191906000526020600020905b81548152906001019060200180831161086057829003601f168201915b5050505050905090565b600061089b6108946116ac565b84846116b4565b6001905092915050565b6108ad6116ac565b73ffffffffffffffffffffffffffffffffffffffff166108cb610e60565b73ffffffffffffffffffffffffffffffffffffffff1614610921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091890612b36565b60405180910390fd5b82600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000610a2684848461187d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a716116ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae890612bc8565b60405180910390fd5b610b0585610afd6116ac565b8584036116b4565b60019150509392505050565b60085481565b60006012905090565b6000610bc2610b2d6116ac565b848460016000610b3b6116ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bbd9190612c17565b6116b4565b6001905092915050565b60075481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c546116ac565b73ffffffffffffffffffffffffffffffffffffffff16610c72610e60565b73ffffffffffffffffffffffffffffffffffffffff1614610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612b36565b60405180910390fd5b600a8211158015610cda5750600a8111155b610d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1090612cb9565b60405180910390fd5b81600781905550806008819055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610db46116ac565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610e60565b73ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90612b36565b60405180910390fd5b610e326000611d4d565b565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610eb86116ac565b73ffffffffffffffffffffffffffffffffffffffff16610ed6610e60565b73ffffffffffffffffffffffffffffffffffffffff1614610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390612b36565b60405180910390fd5b80600d81905550610f4e6064610f40610a0f565b611e1390919063ffffffff16565b600d541015610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990612d25565b60405180910390fd5b50565b606060048054610fa490612ab9565b80601f0160208091040260200160405190810160405280929190818152602001828054610fd090612ab9565b801561101d5780601f10610ff25761010080835404028352916020019161101d565b820191906000526020600020905b81548152906001019060200180831161100057829003601f168201915b5050505050905090565b600080600160006110366116ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90612db7565b60405180910390fd5b6111076110fe6116ac565b858584036116b4565b600191505092915050565b600061112661111f6116ac565b848461187d565b6001905092915050565b6111386116ac565b73ffffffffffffffffffffffffffffffffffffffff16611156610e60565b73ffffffffffffffffffffffffffffffffffffffff16146111ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a390612b36565b60405180910390fd5b80600e8190555050565b6111be6116ac565b73ffffffffffffffffffffffffffffffffffffffff166111dc610e60565b73ffffffffffffffffffffffffffffffffffffffff1614611232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122990612b36565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036112c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bb90612e49565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161136191906126e9565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113fc6116ac565b73ffffffffffffffffffffffffffffffffffffffff1661141a610e60565b73ffffffffffffffffffffffffffffffffffffffff1614611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146790612b36565b60405180910390fd5b80600660156101000a81548160ff0219169083151502179055507f436b6cf978c7b6998fcce43dfe4d37e3a0dc2bb780144a2eb55d7138201e8a12816040516114b991906126e9565b60405180910390a150565b600e5481565b600d5481565b6114d86116ac565b73ffffffffffffffffffffffffffffffffffffffff166114f6610e60565b73ffffffffffffffffffffffffffffffffffffffff161461154c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154390612b36565b60405180910390fd5b80600c8190555061156e60c8611560610a0f565b611e1390919063ffffffff16565b600c5410156115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612d25565b60405180910390fd5b50565b6115bd6116ac565b73ffffffffffffffffffffffffffffffffffffffff166115db610e60565b73ffffffffffffffffffffffffffffffffffffffff1614611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890612b36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790612edb565b60405180910390fd5b6116a981611d4d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a90612f6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178990612fff565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611870919061281e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e390613091565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195290613123565b60405180910390fd5b600081036119745761196f83836000611e29565b611d48565b6000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a175750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905080611a6457600c54821115611a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5a906131b5565b60405180910390fd5b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611abd575080155b15611b21576000611acd84610d64565b9050600d548382611ade9190612c17565b1115611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1690613247565b60405180910390fd5b505b6000611b2c30610d64565b90506000600e548210159050808015611b525750600660149054906101000a900460ff16155b8015611ba957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611bc15750600660159054906101000a900460ff165b8015611c005750611bd0610e60565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611c1457600e549150611c13826120a8565b5b82611d395760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603611c9957611c966064611c886007548861250490919063ffffffff16565b611e1390919063ffffffff16565b90505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603611d1757611d146064611d066008548861250490919063ffffffff16565b611e1390919063ffffffff16565b90505b611d2a818661251a90919063ffffffff16565b9450611d37873083611e29565b505b611d44868686611e29565b5050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008183611e219190613296565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8f90613091565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe90613123565b60405180910390fd5b611f12838383612530565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8f90613339565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461202b9190612c17565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161208f919061281e565b60405180910390a36120a2848484612535565b50505050565b6001600660146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120e0576120df613359565b5b60405190808252806020026020018201604052801561210e5781602001602082028036833780820191505090505b509050308160008151811061212657612125613388565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f191906133cc565b8160018151811061220557612204613388565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508161226c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661136d565b10156122a2576122a130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196116b4565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123069594939291906134f2565b600060405180830381600087803b15801561232057600080fd5b505af1158015612334573d6000803e3d6000fd5b50505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61239b606461238d60324761250490919063ffffffff16565b611e1390919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123c6573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61242a606461241c601e4761250490919063ffffffff16565b611e1390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612455573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124b960646124ab60144761250490919063ffffffff16565b611e1390919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124e4573d6000803e3d6000fd5b50506000600660146101000a81548160ff02191690831515021790555050565b60008183612512919061354c565b905092915050565b6000818361252891906135a6565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612574578082015181840152602081019050612559565b83811115612583576000848401525b50505050565b6000601f19601f8301169050919050565b60006125a58261253a565b6125af8185612545565b93506125bf818560208601612556565b6125c881612589565b840191505092915050565b600060208201905081810360008301526125ed818461259a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612625826125fa565b9050919050565b6126358161261a565b811461264057600080fd5b50565b6000813590506126528161262c565b92915050565b6000819050919050565b61266b81612658565b811461267657600080fd5b50565b60008135905061268881612662565b92915050565b600080604083850312156126a5576126a46125f5565b5b60006126b385828601612643565b92505060206126c485828601612679565b9150509250929050565b60008115159050919050565b6126e3816126ce565b82525050565b60006020820190506126fe60008301846126da565b92915050565b600061270f826125fa565b9050919050565b61271f81612704565b811461272a57600080fd5b50565b60008135905061273c81612716565b92915050565b60008060006060848603121561275b5761275a6125f5565b5b60006127698682870161272d565b935050602061277a8682870161272d565b925050604061278b8682870161272d565b9150509250925092565b6000819050919050565b60006127ba6127b56127b0846125fa565b612795565b6125fa565b9050919050565b60006127cc8261279f565b9050919050565b60006127de826127c1565b9050919050565b6127ee816127d3565b82525050565b600060208201905061280960008301846127e5565b92915050565b61281881612658565b82525050565b6000602082019050612833600083018461280f565b92915050565b600080600060608486031215612852576128516125f5565b5b600061286086828701612643565b935050602061287186828701612643565b925050604061288286828701612679565b9150509250925092565b600060ff82169050919050565b6128a28161288c565b82525050565b60006020820190506128bd6000830184612899565b92915050565b6128cc8161261a565b82525050565b60006020820190506128e760008301846128c3565b92915050565b600060208284031215612903576129026125f5565b5b600061291184828501612643565b91505092915050565b60008060408385031215612931576129306125f5565b5b600061293f85828601612679565b925050602061295085828601612679565b9150509250929050565b61296381612704565b82525050565b600060208201905061297e600083018461295a565b92915050565b60006020828403121561299a576129996125f5565b5b60006129a884828501612679565b91505092915050565b6129ba816126ce565b81146129c557600080fd5b50565b6000813590506129d7816129b1565b92915050565b600080604083850312156129f4576129f36125f5565b5b6000612a0285828601612643565b9250506020612a13858286016129c8565b9150509250929050565b60008060408385031215612a3457612a336125f5565b5b6000612a4285828601612643565b9250506020612a5385828601612643565b9150509250929050565b600060208284031215612a7357612a726125f5565b5b6000612a81848285016129c8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ad157607f821691505b602082108103612ae457612ae3612a8a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b20602083612545565b9150612b2b82612aea565b602082019050919050565b60006020820190508181036000830152612b4f81612b13565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612bb2602883612545565b9150612bbd82612b56565b604082019050919050565b60006020820190508181036000830152612be181612ba5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c2282612658565b9150612c2d83612658565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c6257612c61612be8565b5b828201905092915050565b7f74617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000612ca3600c83612545565b9150612cae82612c6d565b602082019050919050565b60006020820190508181036000830152612cd281612c96565b9050919050565b7f76616c756520746f6f206c6f7700000000000000000000000000000000000000600082015250565b6000612d0f600d83612545565b9150612d1a82612cd9565b602082019050919050565b60006020820190508181036000830152612d3e81612d02565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612da1602583612545565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f524549433a204163636f756e7420697320616c7265616479207468652076616c60008201527f7565206f6620276578636c756465642700000000000000000000000000000000602082015250565b6000612e33603083612545565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ec5602683612545565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f57602483612545565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fe9602283612545565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061307b602583612545565b91506130868261301f565b604082019050919050565b600060208201905081810360008301526130aa8161306e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061310d602383612545565b9150613118826130b1565b604082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b7f7472616e73616374696f6e20616d6f756e74206d757374206265206c6573732060008201527f7468616e20657175616c20746f204d6178547820616d6f756e74000000000000602082015250565b600061319f603a83612545565b91506131aa82613143565b604082019050919050565b600060208201905081810360008301526131ce81613192565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b6000613231602483612545565b915061323c826131d5565b604082019050919050565b6000602082019050818103600083015261326081613224565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132a182612658565b91506132ac83612658565b9250826132bc576132bb613267565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613323602683612545565b915061332e826132c7565b604082019050919050565b6000602082019050818103600083015261335281613316565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506133c68161262c565b92915050565b6000602082840312156133e2576133e16125f5565b5b60006133f0848285016133b7565b91505092915050565b6000819050919050565b600061341e613419613414846133f9565b612795565b612658565b9050919050565b61342e81613403565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134698161261a565b82525050565b600061347b8383613460565b60208301905092915050565b6000602082019050919050565b600061349f82613434565b6134a9818561343f565b93506134b483613450565b8060005b838110156134e55781516134cc888261346f565b97506134d783613487565b9250506001810190506134b8565b5085935050505092915050565b600060a082019050613507600083018861280f565b6135146020830187613425565b81810360408301526135268186613494565b905061353560608301856128c3565b613542608083018461280f565b9695505050505050565b600061355782612658565b915061356283612658565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561359b5761359a612be8565b5b828202905092915050565b60006135b182612658565b91506135bc83612658565b9250828210156135cf576135ce612be8565b5b82820390509291505056fea2646970667358221220bbd192b745affa1ca131cbbad7186cf36a021661ded90f1258c9027b24fe923e64736f6c634300080e0033