60c060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506000600b60026101000a81548160ff021916908315150217905550348015620000b757600080fd5b506040518060400160405280600c81526020017f444f204e4f5420434f554e5400000000000000000000000000000000000000008152506040518060400160405280600581526020017f635a65726f000000000000000000000000000000000000000000000000000000815250816003908162000135919062000c84565b50806004908162000147919062000c84565b5050506200016a6200015e6200056c60201b60201c565b6200057460201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001968160016200063a60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c919062000dd5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016200029a92919062000e18565b6020604051808303816000875af1158015620002ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e0919062000dd5565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200032860a05160016200063a60201b60201c565b60006004905060008060049050600080670de0b6b3a764000090506103e860058262000355919062000e74565b62000361919062000eee565b6008819055506103e860058262000379919062000e74565b62000385919062000eee565b600a819055506127106005826200039d919062000e74565b620003a9919062000eee565b60098190555084600d8190555083600e81905550600e54600d54620003cf919062000f26565b600c819055508260108190555081601181905550601154601054620003f5919062000f26565b600f8190555073343e2d02caa472c36b7e8dd897f9a48ab5a423e5600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000472620004646200072460201b60201c565b60016200074e60201b60201c565b620004a7600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200074e60201b60201c565b620004ba3060016200074e60201b60201c565b620004cf61dead60016200074e60201b60201c565b620004f1620004e36200072460201b60201c565b60016200063a60201b60201c565b62000526600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200063a60201b60201c565b620005393060016200063a60201b60201c565b6200054e61dead60016200063a60201b60201c565b6200056033826200088860201b60201c565b505050505050620010be565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200064a6200056c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006706200072460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c09062000fc2565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200075e6200056c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007846200072460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d49062000fc2565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200087c919062001001565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008f1906200106e565b60405180910390fd5b6200090e6000838362000a0060201b60201c565b806002600082825462000922919062000f26565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000979919062000f26565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009e09190620010a1565b60405180910390a3620009fc6000838362000a0560201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a8c57607f821691505b60208210810362000aa25762000aa162000a44565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b0c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000acd565b62000b18868362000acd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b6562000b5f62000b598462000b30565b62000b3a565b62000b30565b9050919050565b6000819050919050565b62000b818362000b44565b62000b9962000b908262000b6c565b84845462000ada565b825550505050565b600090565b62000bb062000ba1565b62000bbd81848462000b76565b505050565b5b8181101562000be55762000bd960008262000ba6565b60018101905062000bc3565b5050565b601f82111562000c345762000bfe8162000aa8565b62000c098462000abd565b8101602085101562000c19578190505b62000c3162000c288562000abd565b83018262000bc2565b50505b505050565b600082821c905092915050565b600062000c596000198460080262000c39565b1980831691505092915050565b600062000c74838362000c46565b9150826002028217905092915050565b62000c8f8262000a0a565b67ffffffffffffffff81111562000cab5762000caa62000a15565b5b62000cb7825462000a73565b62000cc482828562000be9565b600060209050601f83116001811462000cfc576000841562000ce7578287015190505b62000cf3858262000c66565b86555062000d63565b601f19841662000d0c8662000aa8565b60005b8281101562000d365784890151825560018201915060208501945060208101905062000d0f565b8683101562000d56578489015162000d52601f89168262000c46565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d9d8262000d70565b9050919050565b62000daf8162000d90565b811462000dbb57600080fd5b50565b60008151905062000dcf8162000da4565b92915050565b60006020828403121562000dee5762000ded62000d6b565b5b600062000dfe8482850162000dbe565b91505092915050565b62000e128162000d90565b82525050565b600060408201905062000e2f600083018562000e07565b62000e3e602083018462000e07565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e818262000b30565b915062000e8e8362000b30565b925082820262000e9e8162000b30565b9150828204841483151762000eb85762000eb762000e45565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000efb8262000b30565b915062000f088362000b30565b92508262000f1b5762000f1a62000ebf565b5b828204905092915050565b600062000f338262000b30565b915062000f408362000b30565b925082820190508082111562000f5b5762000f5a62000e45565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000faa60208362000f61565b915062000fb78262000f72565b602082019050919050565b6000602082019050818103600083015262000fdd8162000f9b565b9050919050565b60008115159050919050565b62000ffb8162000fe4565b82525050565b600060208201905062001018600083018462000ff0565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001056601f8362000f61565b915062001063826200101e565b602082019050919050565b60006020820190508181036000830152620010898162001047565b9050919050565b6200109b8162000b30565b82525050565b6000602082019050620010b8600083018462001090565b92915050565b60805160a051613c076200111560003960008181610efa01528181611f60015281816121a9015281816123b40152818161247f0152612569015260008181610b8101528181612a940152612abb0152613c076000f3fe6080604052600436106102555760003560e01c80638a8c523c11610139578063c0246668116100b6578063dd62ed3e1161007a578063dd62ed3e146108b3578063e2f45605146108f0578063f11a24d31461091b578063f2fde38b14610946578063f63743421461096f578063f8b45b051461099a5761025c565b8063c0246668146107ce578063c18bc195146107f7578063c8c8ebe414610820578063d257b34f1461084b578063d85ba063146108885761025c565b80639c3b4fdc116100fd5780639c3b4fdc146106e5578063a0d82dc514610710578063a9059cbb1461073b578063ad5c464814610778578063bbc0c742146107a35761025c565b80638a8c523c146106245780638da5cb5b1461063b5780638ea5220f14610666578063924de9b71461069157806395d89b41146106ba5761025c565b8063313ce567116101d25780636a486a8e116101965780636a486a8e146105265780636ddd17131461055157806370a082311461057c578063715018a6146105b9578063751039fc146105d05780637571336a146105fb5761025c565b8063313ce5671461043f57806349bd5a5e1461046a5780634a62bb65146104955780634fbee193146104c057806366ca9b83146104fd5761025c565b806318160ddd1161021957806318160ddd1461035a5780631816467f14610385578063203e727e146103ae57806323b872dd146103d757806327c8f835146104145761025c565b806302dbd8f81461026157806306fdde031461028a578063095ea7b3146102b557806310d5de53146102f25780631694505e1461032f5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b5061028860048036038101906102839190612bae565b6109c5565b005b34801561029657600080fd5b5061029f610aaf565b6040516102ac9190612c7e565b60405180910390f35b3480156102c157600080fd5b506102dc60048036038101906102d79190612cfe565b610b41565b6040516102e99190612d59565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612d74565b610b5f565b6040516103269190612d59565b60405180910390f35b34801561033b57600080fd5b50610344610b7f565b6040516103519190612e00565b60405180910390f35b34801561036657600080fd5b5061036f610ba3565b60405161037c9190612e2a565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190612d74565b610bad565b005b3480156103ba57600080fd5b506103d560048036038101906103d09190612e45565b610ce9565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612e72565b610df1565b60405161040b9190612d59565b60405180910390f35b34801561042057600080fd5b50610429610ee9565b6040516104369190612ed4565b60405180910390f35b34801561044b57600080fd5b50610454610eef565b6040516104619190612f0b565b60405180910390f35b34801561047657600080fd5b5061047f610ef8565b60405161048c9190612ed4565b60405180910390f35b3480156104a157600080fd5b506104aa610f1c565b6040516104b79190612d59565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e29190612d74565b610f2f565b6040516104f49190612d59565b60405180910390f35b34801561050957600080fd5b50610524600480360381019061051f9190612bae565b610f85565b005b34801561053257600080fd5b5061053b61106f565b6040516105489190612e2a565b60405180910390f35b34801561055d57600080fd5b50610566611075565b6040516105739190612d59565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e9190612d74565b611088565b6040516105b09190612e2a565b60405180910390f35b3480156105c557600080fd5b506105ce6110d0565b005b3480156105dc57600080fd5b506105e5611158565b6040516105f29190612d59565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d9190612f52565b6111f8565b005b34801561063057600080fd5b506106396112cf565b005b34801561064757600080fd5b50610650611383565b60405161065d9190612ed4565b60405180910390f35b34801561067257600080fd5b5061067b6113ad565b6040516106889190612ed4565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612f92565b6113d3565b005b3480156106c657600080fd5b506106cf61146c565b6040516106dc9190612c7e565b60405180910390f35b3480156106f157600080fd5b506106fa6114fe565b6040516107079190612e2a565b60405180910390f35b34801561071c57600080fd5b50610725611504565b6040516107329190612e2a565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190612cfe565b61150a565b60405161076f9190612d59565b60405180910390f35b34801561078457600080fd5b5061078d611528565b60405161079a9190612ed4565b60405180910390f35b3480156107af57600080fd5b506107b861154e565b6040516107c59190612d59565b60405180910390f35b3480156107da57600080fd5b506107f560048036038101906107f09190612f52565b611561565b005b34801561080357600080fd5b5061081e60048036038101906108199190612e45565b611686565b005b34801561082c57600080fd5b5061083561178e565b6040516108429190612e2a565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d9190612e45565b611794565b60405161087f9190612d59565b60405180910390f35b34801561089457600080fd5b5061089d6118e9565b6040516108aa9190612e2a565b60405180910390f35b3480156108bf57600080fd5b506108da60048036038101906108d59190612fbf565b6118ef565b6040516108e79190612e2a565b60405180910390f35b3480156108fc57600080fd5b50610905611976565b6040516109129190612e2a565b60405180910390f35b34801561092757600080fd5b5061093061197c565b60405161093d9190612e2a565b60405180910390f35b34801561095257600080fd5b5061096d60048036038101906109689190612d74565b611982565b005b34801561097b57600080fd5b50610984611a79565b6040516109919190612e2a565b60405180910390f35b3480156109a657600080fd5b506109af611a7f565b6040516109bc9190612e2a565b60405180910390f35b6109cd611a85565b73ffffffffffffffffffffffffffffffffffffffff166109eb611383565b73ffffffffffffffffffffffffffffffffffffffff1614610a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a389061304b565b60405180910390fd5b8160108190555080601181905550601154601054610a5f919061309a565b600f81905550600a600f541115610aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa29061311a565b60405180910390fd5b5050565b606060038054610abe90613169565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea90613169565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b6000610b55610b4e611a85565b8484611a8d565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610bb5611a85565b73ffffffffffffffffffffffffffffffffffffffff16610bd3611383565b73ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c209061304b565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cf1611a85565b73ffffffffffffffffffffffffffffffffffffffff16610d0f611383565b73ffffffffffffffffffffffffffffffffffffffff1614610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c9061304b565b60405180910390fd5b633b9aca00620186a06001610d78610ba3565b610d82919061319a565b610d8c919061320b565b610d96919061320b565b811015610dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcf906132ae565b60405180910390fd5b633b9aca0081610de8919061319a565b60088190555050565b6000610dfe848484611c56565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e49611a85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec090613340565b60405180910390fd5b610edd85610ed5611a85565b858403611a8d565b60019150509392505050565b61dead81565b60006009905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b60009054906101000a900460ff1681565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610f8d611a85565b73ffffffffffffffffffffffffffffffffffffffff16610fab611383565b73ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff89061304b565b60405180910390fd5b81600d8190555080600e81905550600e54600d5461101f919061309a565b600c81905550600a600c54111561106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110629061311a565b60405180910390fd5b5050565b600f5481565b600b60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110d8611a85565b73ffffffffffffffffffffffffffffffffffffffff166110f6611383565b73ffffffffffffffffffffffffffffffffffffffff161461114c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111439061304b565b60405180910390fd5b61115660006125b5565b565b6000611162611a85565b73ffffffffffffffffffffffffffffffffffffffff16611180611383565b73ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd9061304b565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b611200611a85565b73ffffffffffffffffffffffffffffffffffffffff1661121e611383565b73ffffffffffffffffffffffffffffffffffffffff1614611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b9061304b565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6112d7611a85565b73ffffffffffffffffffffffffffffffffffffffff166112f5611383565b73ffffffffffffffffffffffffffffffffffffffff161461134b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113429061304b565b60405180910390fd5b6001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113db611a85565b73ffffffffffffffffffffffffffffffffffffffff166113f9611383565b73ffffffffffffffffffffffffffffffffffffffff161461144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469061304b565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b60606004805461147b90613169565b80601f01602080910402602001604051908101604052809291908181526020018280546114a790613169565b80156114f45780601f106114c9576101008083540402835291602001916114f4565b820191906000526020600020905b8154815290600101906020018083116114d757829003601f168201915b5050505050905090565b600d5481565b60105481565b600061151e611517611a85565b8484611c56565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60019054906101000a900460ff1681565b611569611a85565b73ffffffffffffffffffffffffffffffffffffffff16611587611383565b73ffffffffffffffffffffffffffffffffffffffff16146115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d49061304b565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161167a9190612d59565b60405180910390a25050565b61168e611a85565b73ffffffffffffffffffffffffffffffffffffffff166116ac611383565b73ffffffffffffffffffffffffffffffffffffffff1614611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f99061304b565b60405180910390fd5b633b9aca00620186a06005611715610ba3565b61171f919061319a565b611729919061320b565b611733919061320b565b811015611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c906133d2565b60405180910390fd5b633b9aca0081611785919061319a565b600a8190555050565b60085481565b600061179e611a85565b73ffffffffffffffffffffffffffffffffffffffff166117bc611383565b73ffffffffffffffffffffffffffffffffffffffff1614611812576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118099061304b565b60405180910390fd5b620186a06001611820610ba3565b61182a919061319a565b611834919061320b565b821015611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d90613464565b60405180910390fd5b6103e86005611883610ba3565b61188d919061319a565b611897919061320b565b8211156118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d0906134f6565b60405180910390fd5b8160098190555060019050919050565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b600e5481565b61198a611a85565b73ffffffffffffffffffffffffffffffffffffffff166119a8611383565b73ffffffffffffffffffffffffffffffffffffffff16146119fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f59061304b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6490613588565b60405180910390fd5b611a76816125b5565b50565b60115481565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af39061361a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b62906136ac565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c499190612e2a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbc9061373e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b906137d0565b60405180910390fd5b60008103611d4d57611d488383600061267b565b6125b0565b600b60009054906101000a900460ff161561215757611d6a611383565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611dd85750611da8611383565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e115750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e4b575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e645750600660149054906101000a900460ff16155b1561215657600b60019054906101000a900460ff16611f5e57601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f1e5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f549061383c565b60405180910390fd5b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120035750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120aa5760085481111561204d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612044906138ce565b60405180910390fd5b600a5461205983611088565b82612064919061309a565b11156120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c9061393a565b60405180910390fd5b612155565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661215457600a5461210783611088565b82612112919061309a565b1115612153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214a9061393a565b60405180910390fd5b5b5b5b5b600061216230611088565b9050600060095482101590508080156121875750600b60029054906101000a900460ff165b80156121a05750600660149054906101000a900460ff16155b80156121f757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561224d5750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122a35750601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122e7576001600660146101000a81548160ff0219169083151502179055506122cb6128fa565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061239d5750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123a757600090505b6000806000831561259e577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614801561240f57506000600f54115b1561247d5761243c606461242e600f548a61294a90919063ffffffff16565b61296090919063ffffffff16565b9250600f546011548461244f919061319a565b612459919061320b565b9150600f546010548461246c919061319a565b612476919061320b565b9050612545565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161480156124da57506000600c54115b156125445761250760646124f9600c548a61294a90919063ffffffff16565b61296090919063ffffffff16565b9250600c54600e548461251a919061319a565b612524919061320b565b9150600c54600d5484612537919061319a565b612541919061320b565b90505b5b600083111561255a5761255989308561267b565b5b600082111561258f5761258e307f00000000000000000000000000000000000000000000000000000000000000008461267b565b5b828761259b919061395a565b96505b6125a989898961267b565b5050505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e19061373e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612759576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612750906137d0565b60405180910390fd5b612764838383612976565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156127ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e190613a00565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461287d919061309a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128e19190612e2a565b60405180910390a36128f484848461297b565b50505050565b600061290530611088565b9050600081036129155750612948565b6014600954612924919061319a565b81111561293d57601460095461293a919061319a565b90505b61294681612980565b505b565b60008183612958919061319a565b905092915050565b6000818361296e919061320b565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561299d5761299c613a20565b5b6040519080825280602002602001820160405280156129cb5781602001602082028036833780820191505090505b50905030816000815181106129e3576129e2613a4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612a5457612a53613a4f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ab9307f000000000000000000000000000000000000000000000000000000000000000084611a8d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612b3d959493929190613b77565b600060405180830381600087803b158015612b5757600080fd5b505af1158015612b6b573d6000803e3d6000fd5b505050505050565b600080fd5b6000819050919050565b612b8b81612b78565b8114612b9657600080fd5b50565b600081359050612ba881612b82565b92915050565b60008060408385031215612bc557612bc4612b73565b5b6000612bd385828601612b99565b9250506020612be485828601612b99565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c28578082015181840152602081019050612c0d565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c5082612bee565b612c5a8185612bf9565b9350612c6a818560208601612c0a565b612c7381612c34565b840191505092915050565b60006020820190508181036000830152612c988184612c45565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ccb82612ca0565b9050919050565b612cdb81612cc0565b8114612ce657600080fd5b50565b600081359050612cf881612cd2565b92915050565b60008060408385031215612d1557612d14612b73565b5b6000612d2385828601612ce9565b9250506020612d3485828601612b99565b9150509250929050565b60008115159050919050565b612d5381612d3e565b82525050565b6000602082019050612d6e6000830184612d4a565b92915050565b600060208284031215612d8a57612d89612b73565b5b6000612d9884828501612ce9565b91505092915050565b6000819050919050565b6000612dc6612dc1612dbc84612ca0565b612da1565b612ca0565b9050919050565b6000612dd882612dab565b9050919050565b6000612dea82612dcd565b9050919050565b612dfa81612ddf565b82525050565b6000602082019050612e156000830184612df1565b92915050565b612e2481612b78565b82525050565b6000602082019050612e3f6000830184612e1b565b92915050565b600060208284031215612e5b57612e5a612b73565b5b6000612e6984828501612b99565b91505092915050565b600080600060608486031215612e8b57612e8a612b73565b5b6000612e9986828701612ce9565b9350506020612eaa86828701612ce9565b9250506040612ebb86828701612b99565b9150509250925092565b612ece81612cc0565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b600060ff82169050919050565b612f0581612eef565b82525050565b6000602082019050612f206000830184612efc565b92915050565b612f2f81612d3e565b8114612f3a57600080fd5b50565b600081359050612f4c81612f26565b92915050565b60008060408385031215612f6957612f68612b73565b5b6000612f7785828601612ce9565b9250506020612f8885828601612f3d565b9150509250929050565b600060208284031215612fa857612fa7612b73565b5b6000612fb684828501612f3d565b91505092915050565b60008060408385031215612fd657612fd5612b73565b5b6000612fe485828601612ce9565b9250506020612ff585828601612ce9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613035602083612bf9565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130a582612b78565b91506130b083612b78565b92508282019050808211156130c8576130c761306b565b5b92915050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b6000613104601d83612bf9565b915061310f826130ce565b602082019050919050565b60006020820190508181036000830152613133816130f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061318157607f821691505b6020821081036131945761319361313a565b5b50919050565b60006131a582612b78565b91506131b083612b78565b92508282026131be81612b78565b915082820484148315176131d5576131d461306b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061321682612b78565b915061322183612b78565b925082613231576132306131dc565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613298602f83612bf9565b91506132a38261323c565b604082019050919050565b600060208201905081810360008301526132c78161328b565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061332a602883612bf9565b9150613335826132ce565b604082019050919050565b600060208201905081810360008301526133598161331d565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006133bc602483612bf9565b91506133c782613360565b604082019050919050565b600060208201905081810360008301526133eb816133af565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b600061344e603583612bf9565b9150613459826133f2565b604082019050919050565b6000602082019050818103600083015261347d81613441565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006134e0603483612bf9565b91506134eb82613484565b604082019050919050565b6000602082019050818103600083015261350f816134d3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613572602683612bf9565b915061357d82613516565b604082019050919050565b600060208201905081810360008301526135a181613565565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613604602483612bf9565b915061360f826135a8565b604082019050919050565b60006020820190508181036000830152613633816135f7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613696602283612bf9565b91506136a18261363a565b604082019050919050565b600060208201905081810360008301526136c581613689565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613728602583612bf9565b9150613733826136cc565b604082019050919050565b600060208201905081810360008301526137578161371b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137ba602383612bf9565b91506137c58261375e565b604082019050919050565b600060208201905081810360008301526137e9816137ad565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613826601683612bf9565b9150613831826137f0565b602082019050919050565b6000602082019050818103600083015261385581613819565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006138b8603583612bf9565b91506138c38261385c565b604082019050919050565b600060208201905081810360008301526138e7816138ab565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613924601383612bf9565b915061392f826138ee565b602082019050919050565b6000602082019050818103600083015261395381613917565b9050919050565b600061396582612b78565b915061397083612b78565b92508282039050818111156139885761398761306b565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006139ea602683612bf9565b91506139f58261398e565b604082019050919050565b60006020820190508181036000830152613a19816139dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613aa3613a9e613a9984613a7e565b612da1565b612b78565b9050919050565b613ab381613a88565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613aee81612cc0565b82525050565b6000613b008383613ae5565b60208301905092915050565b6000602082019050919050565b6000613b2482613ab9565b613b2e8185613ac4565b9350613b3983613ad5565b8060005b83811015613b6a578151613b518882613af4565b9750613b5c83613b0c565b925050600181019050613b3d565b5085935050505092915050565b600060a082019050613b8c6000830188612e1b565b613b996020830187613aaa565b8181036040830152613bab8186613b19565b9050613bba6060830185612ec5565b613bc76080830184612e1b565b969550505050505056fea2646970667358221220b7d3a1c3fce422afb11432f63cd516a769b2012b8cdc463193e8335c8c285d2264736f6c63430008110033