0x60806040526103e86003553480156200001757600080fd5b506040518060400160405280600881526020017f4b756d6120496e750000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4b554d410000000000000000000000000000000000000000000000000000000081525081600490805190602001906200009c929190620002b8565b508060059080519060200190620000b5929190620002b8565b505050620000fe33620000cd6200014560201b60201c565b60ff16600a620000de9190620004c3565b66038d7ea4c68000620000f2919062000600565b6200014e60201b60201c565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200070c565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001b890620003bb565b60405180910390fd5b620001d560008383620002b360201b60201c565b8060026000828254620001e991906200040b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200024091906200040b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002a79190620003dd565b60405180910390a35050565b505050565b828054620002c6906200066b565b90600052602060002090601f016020900481019282620002ea576000855562000336565b82601f106200030557805160ff191683800117855562000336565b8280016001018555821562000336579182015b828111156200033557825182559160200191906001019062000318565b5b50905062000345919062000349565b5090565b5b80821115620003645760008160009055506001016200034a565b5090565b600062000377601f83620003fa565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620003b58162000661565b82525050565b60006020820190508181036000830152620003d68162000368565b9050919050565b6000602082019050620003f46000830184620003aa565b92915050565b600082825260208201905092915050565b6000620004188262000661565b9150620004258362000661565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200045d576200045c620006a1565b5b828201905092915050565b6000808291508390505b6001851115620004ba57808604811115620004925762000491620006a1565b5b6001851615620004a25780820291505b8081029050620004b285620006ff565b945062000472565b94509492505050565b6000620004d08262000661565b9150620004dd8362000661565b92506200050c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000514565b905092915050565b600082620005265760019050620005f9565b81620005365760009050620005f9565b81600181146200054f57600281146200055a5762000590565b6001915050620005f9565b60ff8411156200056f576200056e620006a1565b5b8360020a915084821115620005895762000588620006a1565b5b50620005f9565b5060208310610133831016604e8410600b8410161715620005ca5782820a905083811115620005c457620005c3620006a1565b5b620005f9565b620005d9848484600162000468565b92509050818404811115620005f357620005f2620006a1565b5b81810290505b9392505050565b60006200060d8262000661565b91506200061a8362000661565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006565762000655620006a1565b5b828202905092915050565b6000819050919050565b600060028204905060018216806200068457607f821691505b602082108114156200069b576200069a620006d0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b6117fb806200071c6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063715018a61161008c578063a457c2d711610066578063a457c2d71461024f578063a9059cbb1461027f578063d543dbeb146102af578063dd62ed3e146102cb576100ea565b8063715018a6146102095780638da5cb5b1461021357806395d89b4114610231576100ea565b806323b872dd116100c857806323b872dd1461015b578063313ce5671461018b57806339509351146101a957806370a08231146101d9576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd1461013d575b600080fd5b6100f76102fb565b6040516101049190611396565b60405180910390f35b61012760048036038101906101229190610f16565b61038d565b604051610134919061137b565b60405180910390f35b6101456103ab565b60405161015291906114d8565b60405180910390f35b61017560048036038101906101709190610ec7565b6103b5565b604051610182919061137b565b60405180910390f35b6101936104b6565b6040516101a091906114f3565b60405180910390f35b6101c360048036038101906101be9190610f16565b6104bf565b6040516101d0919061137b565b60405180910390f35b6101f360048036038101906101ee9190610e62565b61056b565b60405161020091906114d8565b60405180910390f35b6102116105b3565b005b61021b610687565b6040516102289190611360565b60405180910390f35b6102396106b1565b6040516102469190611396565b60405180910390f35b61026960048036038101906102649190610f16565b610743565b604051610276919061137b565b60405180910390f35b61029960048036038101906102949190610f16565b610837565b6040516102a6919061137b565b60405180910390f35b6102c960048036038101906102c49190610f52565b610855565b005b6102e560048036038101906102e09190610e8b565b6108f1565b6040516102f291906114d8565b60405180910390f35b60606004805461030a906116c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610336906116c7565b80156103835780601f1061035857610100808354040283529160200191610383565b820191906000526020600020905b81548152906001019060200180831161036657829003601f168201915b5050505050905090565b60006103a161039a610978565b8484610980565b6001905092915050565b6000600254905090565b60006103c2848484610b4b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061040d610978565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561048d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048490611458565b60405180910390fd5b6104aa85610499610978565b85846104a5919061160b565b610980565b60019150509392505050565b60006012905090565b60006105616104cc610978565b8484600160006104da610978565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461055c919061152a565b610980565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063a906113d8565b60405180910390fd5b6000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546106c0906116c7565b80601f01602080910402602001604051908101604052809291908181526020018280546106ec906116c7565b80156107395780601f1061070e57610100808354040283529160200191610739565b820191906000526020600020905b81548152906001019060200180831161071c57829003601f168201915b5050505050905090565b60008060016000610752610978565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561080f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610806906114b8565b60405180910390fd5b61082c61081a610978565b858584610827919061160b565b610980565b600191505092915050565b600061084b610844610978565b8484610b4b565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc906113d8565b60405180910390fd5b6108ee81610e29565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e790611498565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a57906113f8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b3e91906114d8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290611478565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c22906113b8565b60405180910390fd5b6103e8600354600254610c3e91906115b1565b610c489190611580565b811115610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8190611418565b60405180910390fd5b610c95838383610e33565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1290611438565b60405180910390fd5b8181610d27919061160b565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610db7919061152a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e1b91906114d8565b60405180910390a350505050565b8060038190555050565b505050565b600081359050610e4781611797565b92915050565b600081359050610e5c816117ae565b92915050565b600060208284031215610e7457600080fd5b6000610e8284828501610e38565b91505092915050565b60008060408385031215610e9e57600080fd5b6000610eac85828601610e38565b9250506020610ebd85828601610e38565b9150509250929050565b600080600060608486031215610edc57600080fd5b6000610eea86828701610e38565b9350506020610efb86828701610e38565b9250506040610f0c86828701610e4d565b9150509250925092565b60008060408385031215610f2957600080fd5b6000610f3785828601610e38565b9250506020610f4885828601610e4d565b9150509250929050565b600060208284031215610f6457600080fd5b6000610f7284828501610e4d565b91505092915050565b610f848161163f565b82525050565b610f9381611651565b82525050565b6000610fa48261150e565b610fae8185611519565b9350610fbe818560208601611694565b610fc781611786565b840191505092915050565b6000610fdf602383611519565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611045601783611519565b91507f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006000830152602082019050919050565b6000611085602283611519565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006110eb602f83611519565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61782060008301527f7472616e7366657220616d6f756e7400000000000000000000000000000000006020830152604082019050919050565b6000611151602683611519565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006111b7602883611519565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b600061121d602583611519565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611283602483611519565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006112e9602583611519565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61134b8161167d565b82525050565b61135a81611687565b82525050565b60006020820190506113756000830184610f7b565b92915050565b60006020820190506113906000830184610f8a565b92915050565b600060208201905081810360008301526113b08184610f99565b905092915050565b600060208201905081810360008301526113d181610fd2565b9050919050565b600060208201905081810360008301526113f181611038565b9050919050565b6000602082019050818103600083015261141181611078565b9050919050565b60006020820190508181036000830152611431816110de565b9050919050565b6000602082019050818103600083015261145181611144565b9050919050565b60006020820190508181036000830152611471816111aa565b9050919050565b6000602082019050818103600083015261149181611210565b9050919050565b600060208201905081810360008301526114b181611276565b9050919050565b600060208201905081810360008301526114d1816112dc565b9050919050565b60006020820190506114ed6000830184611342565b92915050565b60006020820190506115086000830184611351565b92915050565b600081519050919050565b600082825260208201905092915050565b60006115358261167d565b91506115408361167d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611575576115746116f9565b5b828201905092915050565b600061158b8261167d565b91506115968361167d565b9250826115a6576115a5611728565b5b828204905092915050565b60006115bc8261167d565b91506115c78361167d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611600576115ff6116f9565b5b828202905092915050565b60006116168261167d565b91506116218361167d565b925082821015611634576116336116f9565b5b828203905092915050565b600061164a8261165d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156116b2578082015181840152602081019050611697565b838111156116c1576000848401525b50505050565b600060028204905060018216806116df57607f821691505b602082108114156116f3576116f2611757565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6117a08161163f565b81146117ab57600080fd5b50565b6117b78161167d565b81146117c257600080fd5b5056fea2646970667358221220950d6a762a8fafd8cd492336592bcc167bcc2ce163dde352978c06ef55cca9aa64736f6c63430008000033