60a06040526a52b7d2dcc80cd2e4000000600255600060105560006011556000601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055503480156200006057600080fd5b50604051620052823803806200528283398181016040528101906200008691906200085b565b6040518060400160405280600c81526020017f424f4f4b204f46204d454d4500000000000000000000000000000000000000008152506040518060400160405280600481526020017f424f4d4500000000000000000000000000000000000000000000000000000000815250816005908162000103919062000b27565b50806006908162000115919062000b27565b5060025460018190555050506200014162000135620003fa60201b60201c565b6200040260201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505082601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001da620003fa60201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200026b620004c860201b60201c565b600a62000279919062000d9e565b641010b873a46200028b919062000def565b600c81905550806001600c54620002a3919062000def565b620002af919062000e69565b600e81905550806001600c54620002c7919062000def565b620002d3919062000e69565b600d81905550600e54600f8190555062000317600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004d160201b60201c565b6200034c600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004d160201b60201c565b6200036e62000360620003fa60201b60201c565b6001620004d160201b60201c565b62000381306001620004d160201b60201c565b6200039661dead6001620004d160201b60201c565b620003ab6080516001620004d160201b60201c565b620003e1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c546200053c60201b60201c565b620003f1620006a960201b60201c565b50505062000fff565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006009905090565b620004e1620006f160201b60201c565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005a59062000f02565b60405180910390fd5b620005c2600083836200078260201b60201c565b8060046000828254620005d6919062000f24565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000689919062000f70565b60405180910390a3620006a5600083836200078760201b60201c565b5050565b620006b9620006f160201b60201c565b6001601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff021916908315150217905550565b62000701620003fa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007276200078c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007779062000fdd565b60405180910390fd5b565b505050565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e882620007bb565b9050919050565b620007fa81620007db565b81146200080657600080fd5b50565b6000815190506200081a81620007ef565b92915050565b6000819050919050565b620008358162000820565b81146200084157600080fd5b50565b60008151905062000855816200082a565b92915050565b600080600060608486031215620008775762000876620007b6565b5b6000620008878682870162000809565b93505060206200089a8682870162000809565b9250506040620008ad8682870162000844565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200093957607f821691505b6020821081036200094f576200094e620008f1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200097a565b620009c586836200097a565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a0862000a02620009fc8462000820565b620009dd565b62000820565b9050919050565b6000819050919050565b62000a2483620009e7565b62000a3c62000a338262000a0f565b84845462000987565b825550505050565b600090565b62000a5362000a44565b62000a6081848462000a19565b505050565b5b8181101562000a885762000a7c60008262000a49565b60018101905062000a66565b5050565b601f82111562000ad75762000aa18162000955565b62000aac846200096a565b8101602085101562000abc578190505b62000ad462000acb856200096a565b83018262000a65565b50505b505050565b600082821c905092915050565b600062000afc6000198460080262000adc565b1980831691505092915050565b600062000b17838362000ae9565b9150826002028217905092915050565b62000b3282620008b7565b67ffffffffffffffff81111562000b4e5762000b4d620008c2565b5b62000b5a825462000920565b62000b6782828562000a8c565b600060209050601f83116001811462000b9f576000841562000b8a578287015190505b62000b96858262000b09565b86555062000c06565b601f19841662000baf8662000955565b60005b8281101562000bd95784890151825560018201915060208501945060208101905062000bb2565b8683101562000bf9578489015162000bf5601f89168262000ae9565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c9c5780860481111562000c745762000c7362000c0e565b5b600185161562000c845780820291505b808102905062000c948562000c3d565b945062000c54565b94509492505050565b60008262000cb7576001905062000d8a565b8162000cc7576000905062000d8a565b816001811462000ce0576002811462000ceb5762000d21565b600191505062000d8a565b60ff84111562000d005762000cff62000c0e565b5b8360020a91508482111562000d1a5762000d1962000c0e565b5b5062000d8a565b5060208310610133831016604e8410600b841016171562000d5b5782820a90508381111562000d555762000d5462000c0e565b5b62000d8a565b62000d6a848484600162000c4a565b9250905081840481111562000d845762000d8362000c0e565b5b81810290505b9392505050565b600060ff82169050919050565b600062000dab8262000820565b915062000db88362000d91565b925062000de77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ca5565b905092915050565b600062000dfc8262000820565b915062000e098362000820565b925082820262000e198162000820565b9150828204841483151762000e335762000e3262000c0e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e768262000820565b915062000e838362000820565b92508262000e965762000e9562000e3a565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000eea601f8362000ea1565b915062000ef78262000eb2565b602082019050919050565b6000602082019050818103600083015262000f1d8162000edb565b9050919050565b600062000f318262000820565b915062000f3e8362000820565b925082820190508082111562000f595762000f5862000c0e565b5b92915050565b62000f6a8162000820565b82525050565b600060208201905062000f87600083018462000f5f565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000fc560208362000ea1565b915062000fd28262000f8d565b602082019050919050565b6000602082019050818103600083015262000ff88162000fb6565b9050919050565b6080516142526200103060003960008181610e1f01528181612a2801528181612b090152612b3001526142526000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063c4590d3f116100a0578063e083e9221161006f578063e083e92214610798578063e2f45605146107c1578063f2fde38b146107ec578063f8b45b0514610815578063ffb54a99146108405761021a565b8063c4590d3f146106f0578063c8c8ebe414610719578063c9567bf914610744578063dd62ed3e1461075b5761021a565b806395d89b41116100e757806395d89b41146105f95780639a7a23d614610624578063a457c2d71461064d578063a9059cbb1461068a578063c2b7bbb6146106c75761021a565b806370a0823114610551578063715018a61461058e5780637571336a146105a55780638da5cb5b146105ce5761021a565b8063395093511161019b5780634fbee1931161016a5780634fbee1931461046c5780635074f36f146104a9578063583e0568146104d25780635d098b38146104fd5780636ddd1713146105265761021a565b806339509351146103c257806347062402146103ff57806349bd5a5e1461042a5780634d54557f146104555761021a565b806323b872dd116101e257806323b872dd146102db57806326ededb8146103185780632b14ca5614610341578063311028af1461036c578063313ce567146103975761021a565b806306fdde031461021f578063095ea7b31461024a5780631095793c1461028757806318160ddd146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461086b565b6040516102419190612c78565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612d42565b6108fd565b60405161027e9190612d9d565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190612db8565b610920565b005b3480156102bc57600080fd5b506102c5610995565b6040516102d29190612df4565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd9190612e0f565b61099f565b60405161030f9190612d9d565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612ec7565b6109ce565b005b34801561034d57600080fd5b50610356610b04565b6040516103639190612df4565b60405180910390f35b34801561037857600080fd5b50610381610b0a565b60405161038e9190612df4565b60405180910390f35b3480156103a357600080fd5b506103ac610b10565b6040516103b99190612f43565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612d42565b610b19565b6040516103f69190612d9d565b60405180910390f35b34801561040b57600080fd5b50610414610b50565b6040516104219190612df4565b60405180910390f35b34801561043657600080fd5b5061043f610b56565b60405161044c9190612f6d565b60405180910390f35b34801561046157600080fd5b5061046a610b7c565b005b34801561047857600080fd5b50610493600480360381019061048e9190612f88565b610c69565b6040516104a09190612d9d565b60405180910390f35b3480156104b557600080fd5b506104d060048036038101906104cb919061311f565b610cbf565b005b3480156104de57600080fd5b506104e7610e1d565b6040516104f491906131da565b60405180910390f35b34801561050957600080fd5b50610524600480360381019061051f9190612f88565b610e41565b005b34801561053257600080fd5b5061053b610ee6565b6040516105489190612d9d565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190612f88565b610ef9565b6040516105859190612df4565b60405180910390f35b34801561059a57600080fd5b506105a3610f41565b005b3480156105b157600080fd5b506105cc60048036038101906105c791906131f5565b610f55565b005b3480156105da57600080fd5b506105e3610fb8565b6040516105f09190612f6d565b60405180910390f35b34801561060557600080fd5b5061060e610fe2565b60405161061b9190612c78565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906131f5565b611074565b005b34801561065957600080fd5b50610674600480360381019061066f9190612d42565b61111a565b6040516106819190612d9d565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac9190612d42565b611191565b6040516106be9190612d9d565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190612f88565b6111b4565b005b3480156106fc57600080fd5b5061071760048036038101906107129190613235565b61125a565b005b34801561072557600080fd5b5061072e6112b0565b60405161073b9190612df4565b60405180910390f35b34801561075057600080fd5b506107596112b6565b005b34801561076757600080fd5b50610782600480360381019061077d9190613275565b6112f6565b60405161078f9190612df4565b60405180910390f35b3480156107a457600080fd5b506107bf60048036038101906107ba9190612f88565b61137d565b005b3480156107cd57600080fd5b506107d6611595565b6040516107e39190612df4565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612f88565b61159b565b005b34801561082157600080fd5b5061082a61161e565b6040516108379190612df4565b60405180910390f35b34801561084c57600080fd5b50610855611624565b6040516108629190612d9d565b60405180910390f35b60606005805461087a906132e4565b80601f01602080910402602001604051908101604052809291908181526020018280546108a6906132e4565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050905090565b600080610908611637565b905061091581858561163f565b600191505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610961611637565b73ffffffffffffffffffffffffffffffffffffffff161461098157600080fd5b61099261098c611637565b82611808565b50565b6000600454905090565b6000806109aa611637565b90506109b78582856119dd565b6109c2858585611a69565b60019150509392505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0f611637565b73ffffffffffffffffffffffffffffffffffffffff1614610a2f57600080fd5b60005b83839050811015610afe57838382818110610a5057610a4f613315565b5b9050602002016020810190610a659190612f88565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ae39190612df4565b60405180910390a38080610af690613373565b915050610a32565b50505050565b60105481565b600c5481565b60006009905090565b600080610b24611637565b9050610b45818585610b3685896112f6565b610b4091906133bb565b61163f565b600191505092915050565b60115481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60004711610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb69061343b565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c00611637565b73ffffffffffffffffffffffffffffffffffffffff1614610c2057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c66573d6000803e3d6000fd5b50565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d00611637565b73ffffffffffffffffffffffffffffffffffffffff1614610d2057600080fd5b60005b8251811015610e18578160156000858481518110610d4457610d43613315565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828181518110610db057610daf613315565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167ff10e7bfea79f2a3906807d771530f59091e012c7bd49efe59b080793384e563083604051610dfd9190612d9d565b60405180910390a28080610e1090613373565b915050610d23565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e82611637565b73ffffffffffffffffffffffffffffffffffffffff1614610ea257600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f496124ba565b610f536000612538565b565b610f5d6124ba565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610ff1906132e4565b80601f016020809104026020016040519081016040528092919081815260200182805461101d906132e4565b801561106a5780601f1061103f5761010080835404028352916020019161106a565b820191906000526020600020905b81548152906001019060200180831161104d57829003601f168201915b5050505050905090565b61107c6124ba565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361110c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611103906134cd565b60405180910390fd5b61111682826125fe565b5050565b600080611125611637565b9050600061113382866112f6565b905083811015611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f9061355f565b60405180910390fd5b611185828686840361163f565b60019250505092915050565b60008061119c611637565b90506111a9818585611a69565b600191505092915050565b6111bc6124ba565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061122a600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f55565b611257600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016125fe565b50565b6112626124ba565b61126a610b10565b600a61127691906136b2565b8261128191906136fd565b600f8190555061128f610b10565b600a61129b91906136b2565b816112a691906136fd565b600e819055505050565b600f5481565b6112be6124ba565b6001601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff021916908315150217905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113be611637565b73ffffffffffffffffffffffffffffffffffffffff16146113de57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114199190612f6d565b602060405180830381865afa158015611436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145a9190613754565b1161149a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611491906137cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114f09190612f6d565b602060405180830381865afa15801561150d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115319190613754565b6040518363ffffffff1660e01b815260040161154e9291906137ed565b6020604051808303816000875af115801561156d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611591919061382b565b5050565b600d5481565b6115a36124ba565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611612576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611609906138ca565b60405180910390fd5b61161b81612538565b50565b600e5481565b601260019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a59061395c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361171d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611714906139ee565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117fb9190612df4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186e90613a80565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f490613b12565b60405180910390fd5b8160015461190b9190613b32565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600082825461195f9190613b32565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119c49190612df4565b60405180910390a36119d88360008461269f565b505050565b60006119e984846112f6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a635781811015611a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4c90613bb2565b60405180910390fd5b611a62848484840361163f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf90613c44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e90613cd6565b60405180910390fd5b60008103611b6057611b5b838360006126a4565b6124b5565b43601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bac610fb8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1a5750611bea610fb8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c8d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca65750600a60149054906101000a900460ff16155b1561208957601260019054906101000a900460ff16611da057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d605750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9690613d42565b60405180910390fd5b5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e435750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eea57600f54811115611e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8490613dd4565b60405180910390fd5b600e54611e9983610ef9565b82611ea491906133bb565b1115611ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edc90613e40565b60405180910390fd5b612088565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f8d5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fdc57600f54811115611fd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fce90613ed2565b60405180910390fd5b612087565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661208657600e5461203983610ef9565b8261204491906133bb565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613e40565b60405180910390fd5b5b5b5b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b81526004016120e893929190613ef2565b6020604051808303816000875af1158015612107573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212b919061382b565b50600061213730610ef9565b90506000600d548211905080801561215b5750601260009054906101000a900460ff165b80156121745750600a60149054906101000a900460ff16155b80156121ca5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122205750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122765750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122ba576001600a60146101000a81548160ff02191690831515021790555061229e61291a565b6000600a60146101000a81548160ff0219169083151502179055505b6000600a60149054906101000a900460ff161580156123225750601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156123785750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050600081156124a557601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612403576123fc60646123ee6010548861295890919063ffffffff16565b61296e90919063ffffffff16565b9050612481565b601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124805761247d606461246f6011548861295890919063ffffffff16565b61296e90919063ffffffff16565b90505b5b6000811115612496576124958730836126a4565b5b80856124a29190613b32565b94505b6124b08787876126a4565b505050505b505050565b6124c2611637565b73ffffffffffffffffffffffffffffffffffffffff166124e0610fb8565b73ffffffffffffffffffffffffffffffffffffffff1614612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252d90613f75565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270a90613cd6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277990613c44565b60405180910390fd5b61278d838383612984565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280a90614007565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129019190612df4565b60405180910390a361291484848461269f565b50505050565b600061292530610ef9565b9050600081036129355750612956565b6000819050600d5481111561294a57600d5490505b61295381612989565b50505b565b6000818361296691906136fd565b905092915050565b6000818361297c9190614056565b905092915050565b505050565b6000600267ffffffffffffffff8111156129a6576129a5612fb5565b5b6040519080825280602002602001820160405280156129d45781602001602082028036833780820191505090505b50905030816000815181106129ec576129eb613315565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab5919061409c565b81600181518110612ac957612ac8613315565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b2e307f00000000000000000000000000000000000000000000000000000000000000008461163f565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612bb29594939291906141c2565b600060405180830381600087803b158015612bcc57600080fd5b505af1158015612be0573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c22578082015181840152602081019050612c07565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c4a82612be8565b612c548185612bf3565b9350612c64818560208601612c04565b612c6d81612c2e565b840191505092915050565b60006020820190508181036000830152612c928184612c3f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cd982612cae565b9050919050565b612ce981612cce565b8114612cf457600080fd5b50565b600081359050612d0681612ce0565b92915050565b6000819050919050565b612d1f81612d0c565b8114612d2a57600080fd5b50565b600081359050612d3c81612d16565b92915050565b60008060408385031215612d5957612d58612ca4565b5b6000612d6785828601612cf7565b9250506020612d7885828601612d2d565b9150509250929050565b60008115159050919050565b612d9781612d82565b82525050565b6000602082019050612db26000830184612d8e565b92915050565b600060208284031215612dce57612dcd612ca4565b5b6000612ddc84828501612d2d565b91505092915050565b612dee81612d0c565b82525050565b6000602082019050612e096000830184612de5565b92915050565b600080600060608486031215612e2857612e27612ca4565b5b6000612e3686828701612cf7565b9350506020612e4786828701612cf7565b9250506040612e5886828701612d2d565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612e8757612e86612e62565b5b8235905067ffffffffffffffff811115612ea457612ea3612e67565b5b602083019150836020820283011115612ec057612ebf612e6c565b5b9250929050565b600080600060408486031215612ee057612edf612ca4565b5b600084013567ffffffffffffffff811115612efe57612efd612ca9565b5b612f0a86828701612e71565b93509350506020612f1d86828701612d2d565b9150509250925092565b600060ff82169050919050565b612f3d81612f27565b82525050565b6000602082019050612f586000830184612f34565b92915050565b612f6781612cce565b82525050565b6000602082019050612f826000830184612f5e565b92915050565b600060208284031215612f9e57612f9d612ca4565b5b6000612fac84828501612cf7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fed82612c2e565b810181811067ffffffffffffffff8211171561300c5761300b612fb5565b5b80604052505050565b600061301f612c9a565b905061302b8282612fe4565b919050565b600067ffffffffffffffff82111561304b5761304a612fb5565b5b602082029050602081019050919050565b600061306f61306a84613030565b613015565b9050808382526020820190506020840283018581111561309257613091612e6c565b5b835b818110156130bb57806130a78882612cf7565b845260208401935050602081019050613094565b5050509392505050565b600082601f8301126130da576130d9612e62565b5b81356130ea84826020860161305c565b91505092915050565b6130fc81612d82565b811461310757600080fd5b50565b600081359050613119816130f3565b92915050565b6000806040838503121561313657613135612ca4565b5b600083013567ffffffffffffffff81111561315457613153612ca9565b5b613160858286016130c5565b92505060206131718582860161310a565b9150509250929050565b6000819050919050565b60006131a061319b61319684612cae565b61317b565b612cae565b9050919050565b60006131b282613185565b9050919050565b60006131c4826131a7565b9050919050565b6131d4816131b9565b82525050565b60006020820190506131ef60008301846131cb565b92915050565b6000806040838503121561320c5761320b612ca4565b5b600061321a85828601612cf7565b925050602061322b8582860161310a565b9150509250929050565b6000806040838503121561324c5761324b612ca4565b5b600061325a85828601612d2d565b925050602061326b85828601612d2d565b9150509250929050565b6000806040838503121561328c5761328b612ca4565b5b600061329a85828601612cf7565b92505060206132ab85828601612cf7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132fc57607f821691505b60208210810361330f5761330e6132b5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061337e82612d0c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133b0576133af613344565b5b600182019050919050565b60006133c682612d0c565b91506133d183612d0c565b92508282019050808211156133e9576133e8613344565b5b92915050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b6000613425601683612bf3565b9150613430826133ef565b602082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006134b7603983612bf3565b91506134c28261345b565b604082019050919050565b600060208201905081810360008301526134e6816134aa565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613549602583612bf3565b9150613554826134ed565b604082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156135d6578086048111156135b2576135b1613344565b5b60018516156135c15780820291505b80810290506135cf8561357f565b9450613596565b94509492505050565b6000826135ef57600190506136ab565b816135fd57600090506136ab565b8160018114613613576002811461361d5761364c565b60019150506136ab565b60ff84111561362f5761362e613344565b5b8360020a91508482111561364657613645613344565b5b506136ab565b5060208310610133831016604e8410600b84101617156136815782820a90508381111561367c5761367b613344565b5b6136ab565b61368e848484600161358c565b925090508184048111156136a5576136a4613344565b5b81810290505b9392505050565b60006136bd82612d0c565b91506136c883612f27565b92506136f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846135df565b905092915050565b600061370882612d0c565b915061371383612d0c565b925082820261372181612d0c565b9150828204841483151761373857613737613344565b5b5092915050565b60008151905061374e81612d16565b92915050565b60006020828403121561376a57613769612ca4565b5b60006137788482850161373f565b91505092915050565b7f43616e2774207769746864726177203000000000000000000000000000000000600082015250565b60006137b7601083612bf3565b91506137c282613781565b602082019050919050565b600060208201905081810360008301526137e6816137aa565b9050919050565b60006040820190506138026000830185612f5e565b61380f6020830184612de5565b9392505050565b600081519050613825816130f3565b92915050565b60006020828403121561384157613840612ca4565b5b600061384f84828501613816565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006138b4602683612bf3565b91506138bf82613858565b604082019050919050565b600060208201905081810360008301526138e3816138a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613946602483612bf3565b9150613951826138ea565b604082019050919050565b6000602082019050818103600083015261397581613939565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139d8602283612bf3565b91506139e38261397c565b604082019050919050565b60006020820190508181036000830152613a07816139cb565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a6a602183612bf3565b9150613a7582613a0e565b604082019050919050565b60006020820190508181036000830152613a9981613a5d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613afc602283612bf3565b9150613b0782613aa0565b604082019050919050565b60006020820190508181036000830152613b2b81613aef565b9050919050565b6000613b3d82612d0c565b9150613b4883612d0c565b9250828203905081811115613b6057613b5f613344565b5b92915050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613b9c601d83612bf3565b9150613ba782613b66565b602082019050919050565b60006020820190508181036000830152613bcb81613b8f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c2e602383612bf3565b9150613c3982613bd2565b604082019050919050565b60006020820190508181036000830152613c5d81613c21565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613cc0602583612bf3565b9150613ccb82613c64565b604082019050919050565b60006020820190508181036000830152613cef81613cb3565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613d2c601683612bf3565b9150613d3782613cf6565b602082019050919050565b60006020820190508181036000830152613d5b81613d1f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613dbe603583612bf3565b9150613dc982613d62565b604082019050919050565b60006020820190508181036000830152613ded81613db1565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613e2a601383612bf3565b9150613e3582613df4565b602082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613ebc603683612bf3565b9150613ec782613e60565b604082019050919050565b60006020820190508181036000830152613eeb81613eaf565b9050919050565b6000606082019050613f076000830186612f5e565b613f146020830185612f5e565b613f216040830184612de5565b949350505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613f5f602083612bf3565b9150613f6a82613f29565b602082019050919050565b60006020820190508181036000830152613f8e81613f52565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ff1602683612bf3565b9150613ffc82613f95565b604082019050919050565b6000602082019050818103600083015261402081613fe4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061406182612d0c565b915061406c83612d0c565b92508261407c5761407b614027565b5b828204905092915050565b60008151905061409681612ce0565b92915050565b6000602082840312156140b2576140b1612ca4565b5b60006140c084828501614087565b91505092915050565b6000819050919050565b60006140ee6140e96140e4846140c9565b61317b565b612d0c565b9050919050565b6140fe816140d3565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61413981612cce565b82525050565b600061414b8383614130565b60208301905092915050565b6000602082019050919050565b600061416f82614104565b614179818561410f565b935061418483614120565b8060005b838110156141b557815161419c888261413f565b97506141a783614157565b925050600181019050614188565b5085935050505092915050565b600060a0820190506141d76000830188612de5565b6141e460208301876140f5565b81810360408301526141f68186614164565b90506142056060830185612f5e565b6142126080830184612de5565b969550505050505056fea26469706673582212206b6e88bd483fb62be000394d58cc6e7ae1008a227b57cae402ef769b01f5245c64736f6c634300081300330000000000000000000000000e39ce856fd7e4d19b0e50738081e0e3e9a0096a000000000000000000000000696f479bdd74aeaea228d6efe4cacbadd0b046230000000000000000000000000000000000000000000000000000000000000001