60806040527351ab74f8b03f0305d8dce936b473ab587911aec46000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739c9f28672c4a8ad5fb2c9aca6d8d68b02eafd552600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507344949636f778fad2b139e665aee11a2dc84a2976600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555072a55649e597d463fd212fbe48a3b40f0e227d06600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ada66a8722b5cdfe3bc504007a5d793e7100ad09600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735071c003bb45e49110a905c1915ebdd2383a89df600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073deaddeaddeaddeaddeaddeaddeaddeaddead1111600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507309bc4e0d864854c6afb6eb9a9cdf58ac190d0df9600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073201eba5cc46d216ce6dc03f6a759e8e766e956ae600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735be26527e817998a7206475496fde1e68957c5a6600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cda86a272531e8640cd7f1a92c01839911b90bb0600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073972bcb0284cca0152527c4f70f8f689852bcafc5600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730a7318a9c540d23a0809f299dcce4cf44b0a097c600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d924ddc08f1c06d2d8d64ab12772d6638a2a3c60600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e3e02531ea0502a856bf02e84fc40ce5df4e6a24600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735cc2104d825696aa383398ff48c6ec3d66531749600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600881526020017f62746b746f6b656e000000000000000000000000000000000000000000000000815250601390805190602001906200059f9291906200066f565b506040518060400160405280600381526020017f42544b000000000000000000000000000000000000000000000000000000000081525060149080519060200190620005ed9291906200066f565b506012601560006101000a81548160ff021916908360ff1602179055506b204fce5e3e250261100000006016553480156200062757600080fd5b5033601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000784565b8280546200067d906200074e565b90600052602060002090601f016020900481019282620006a15760008555620006ed565b82601f10620006bc57805160ff1916838001178555620006ed565b82800160010185558215620006ed579182015b82811115620006ec578251825591602001919060010190620006cf565b5b509050620006fc919062000700565b5090565b5b808211156200071b57600081600090555060010162000701565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200076757607f821691505b602082108114156200077e576200077d6200071f565b5b50919050565b61372580620007946000396000f3fe6080604052600436106101025760003560e01c80636065c24511610095578063a9059cbb11610064578063a9059cbb14610363578063bc99b4a8146103a0578063ce822bbe146103cb578063da6a77db146103f4578063dd62ed3e1461042657610109565b80636065c2451461029557806370a08231146102be57806395d89b41146102fb578063a457c2d71461032657610109565b80632871b534116100d15780632871b534146101db578063313ce56714610204578063395093511461022f57806353050c2c1461026c57610109565b806306fdde031461010b578063095ea7b31461013657806318160ddd1461017357806323b872dd1461019e57610109565b3661010957005b005b34801561011757600080fd5b50610120610463565b60405161012d91906124ea565b60405180910390f35b34801561014257600080fd5b5061015d600480360381019061015891906125aa565b6104f1565b60405161016a9190612605565b60405180910390f35b34801561017f57600080fd5b5061018861069e565b604051610195919061262f565b60405180910390f35b3480156101aa57600080fd5b506101c560048036038101906101c0919061264a565b6106a4565b6040516101d29190612605565b60405180910390f35b3480156101e757600080fd5b5061020260048036038101906101fd91906127ae565b610996565b005b34801561021057600080fd5b50610219611233565b604051610226919061287e565b60405180910390f35b34801561023b57600080fd5b50610256600480360381019061025191906125aa565b611246565b6040516102639190612605565b60405180910390f35b34801561027857600080fd5b50610293600480360381019061028e9190612899565b611467565b005b3480156102a157600080fd5b506102bc60048036038101906102b791906125aa565b61146c565b005b3480156102ca57600080fd5b506102e560048036038101906102e091906128f9565b6116f7565b6040516102f2919061262f565b60405180910390f35b34801561030757600080fd5b50610310611740565b60405161031d91906124ea565b60405180910390f35b34801561033257600080fd5b5061034d600480360381019061034891906125aa565b6117ce565b60405161035a9190612605565b60405180910390f35b34801561036f57600080fd5b5061038a600480360381019061038591906125aa565b611a0d565b6040516103979190612605565b60405180910390f35b3480156103ac57600080fd5b506103b5611bac565b6040516103c29190612935565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed9190612950565b611bd2565b005b34801561040057600080fd5b50610409611bd9565b60405161041d9897969594939291906129d8565b60405180910390f35b34801561043257600080fd5b5061044d60048036038101906104489190612a56565b611c8f565b60405161045a919061262f565b60405180910390f35b6013805461047090612ac5565b80601f016020809104026020016040519081016040528092919081815260200182805461049c90612ac5565b80156104e95780601f106104be576101008083540402835291602001916104e9565b820191906000526020600020905b8154815290600101906020018083116104cc57829003601f168201915b505050505081565b600081601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620f424082111561062f57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a695230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016105fc9190612935565b600060405180830381600087803b15801561061657600080fd5b505af115801561062a573d6000803e3d6000fd5b505050505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161068c919061262f565b60405180910390a36001905092915050565b60165481565b6000601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612b43565b60405180910390fd5b601a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de90612baf565b60405180910390fd5b81601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108369190612bfe565b9250508190555081601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461088c9190612c32565b9250508190555081601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461091f9190612bfe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610983919061262f565b60405180910390a3600190509392505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612cd4565b60405180910390fd5b6000808383810190610a389190612d32565b91509150600060405180606001604052806001815260200160008152602001838152509050610a6683611d16565b506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b204fce5e3e2502611000000030604051602001610aac93929190612df5565b6040516020818303038152906040529050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e40000006040518363ffffffff1660e01b8152600401610b47929190612e7a565b6020604051808303816000875af1158015610b66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8a9190612ecf565b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663aab96e2283836040518363ffffffff1660e01b8152600401610be8929190612fa2565b6020604051808303816000875af1158015610c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2b9190612fe7565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166509184e72a0006040518363ffffffff1660e01b8152600401610cce92919061304f565b6020604051808303816000875af1158015610ced573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d119190612ecf565b503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166509184e72a0006040518363ffffffff1660e01b8152600401610d7592919061304f565b6020604051808303816000875af1158015610d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db89190612ecf565b50610dc16123fd565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816040018181525050604051806020016040528060008152508160600181905250600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637fe850aa826040518263ffffffff1660e01b8152600401610ed09190613134565b600060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6000818110610f5457610f53613156565b5b9050602002016020810190610f6991906128f9565b8b8b6000818110610f7d57610f7c613156565b5b905060200201356040518363ffffffff1660e01b8152600401610fa1929190613185565b6020604051808303816000875af1158015610fc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe49190612ecf565b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c600181811061103757611036613156565b5b905060200201602081019061104c91906128f9565b8b8b60018181106110605761105f613156565b5b905060200201356040518363ffffffff1660e01b8152600401611084929190613185565b6020604051808303816000875af11580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190612ecf565b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111849190612935565b602060405180830381865afa1580156111a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c591906131c3565b6040518363ffffffff1660e01b81526004016111e2929190613185565b6020604051808303816000875af1158015611201573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112259190612ecf565b505050505050505050505050565b601560009054906101000a900460ff1681565b600081601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112d49190612c32565b92505081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a6952307340c44b91e3fd45cdbd860d81e123c73871a9cc3d6040518263ffffffff1660e01b815260040161134a9190612935565b600060405180830381600087803b15801561136457600080fd5b505af1158015611378573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051611455919061262f565b60405180910390a36001905092915050565b505050565b60008282604051602001611481929190613185565b60405160208183030381529060405290506000600267ffffffffffffffff8111156114af576114ae6131f0565b5b6040519080825280602002602001820160405280156114dd5781602001602082028036833780820191505090505b5090506000600267ffffffffffffffff8111156114fd576114fc6131f0565b5b60405190808252806020026020018201604052801561152b5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061156557611564613156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106115d6576115d5613156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505064174876e8008260008151811061162a57611629613156565b5b602002602001018181525050678ac7230489e800008260018151811061165357611652613156565b5b602002602001018181525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630bd964828284866040518463ffffffff1660e01b81526004016116be9392919061337d565b600060405180830381600087803b1580156116d857600080fd5b505af11580156116ec573d6000803e3d6000fd5b505050505050505050565b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6014805461174d90612ac5565b80601f016020809104026020016040519081016040528092919081815260200182805461177990612ac5565b80156117c65780601f1061179b576101008083540402835291602001916117c6565b820191906000526020600020905b8154815290600101906020018083116117a957829003601f168201915b505050505081565b600081601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561188f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188690613415565b60405180910390fd5b81601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461191b9190612bfe565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516119fb919061262f565b60405180910390a36001905092915050565b600081601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890612b43565b60405180910390fd5b81601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae09190612bfe565b9250508190555081601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b369190612c32565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b9a919061262f565b60405180910390a36001905092915050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5050505050565b601b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050154908060060154908060070154905088565b6000601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000611d2182612371565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663901c4e4f6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611d90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db49190612fe7565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611dfc6123b5565b3073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166509184e72a0006040518363ffffffff1660e01b8152600401611e5f92919061304f565b6020604051808303816000875af1158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea29190612ecf565b506040518061010001604052803073ffffffffffffffffffffffffffffffffffffffff168152602001601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001670de0b6b3a76400008152602001633b9aca00815260200160008152602001620f424042611f919190612c32565b815250601b60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816004015560a0820151816005015560c0820151816006015560e082015181600701559050506023600181600181540180825580915050039060005260206000209050506000602360016023805490506121119190612bfe565b8154811061212257612121613156565b5b90600052602060002090600702019050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550308160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600081600201819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81600301819055506301e133804261221d9190612c32565b816004018190555060018160050160006101000a81548160ff02191690831515021790555060006040518060600160405280633b9aca00815260200166038d7ea4c68000815260200169021e19e0c9bab240000081525090508160060181908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000155602082015181600101556040820151816002015550506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382bb9e94846040518263ffffffff1660e01b815260040161232191906136cd565b6020604051808303816000875af1158015612340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236491906131c3565b9050809350505050919050565b80601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601654601960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561248b578082015181840152602081019050612470565b8381111561249a576000848401525b50505050565b6000601f19601f8301169050919050565b60006124bc82612451565b6124c6818561245c565b93506124d681856020860161246d565b6124df816124a0565b840191505092915050565b6000602082019050818103600083015261250481846124b1565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254182612516565b9050919050565b61255181612536565b811461255c57600080fd5b50565b60008135905061256e81612548565b92915050565b6000819050919050565b61258781612574565b811461259257600080fd5b50565b6000813590506125a48161257e565b92915050565b600080604083850312156125c1576125c061250c565b5b60006125cf8582860161255f565b92505060206125e085828601612595565b9150509250929050565b60008115159050919050565b6125ff816125ea565b82525050565b600060208201905061261a60008301846125f6565b92915050565b61262981612574565b82525050565b60006020820190506126446000830184612620565b92915050565b6000806000606084860312156126635761266261250c565b5b60006126718682870161255f565b93505060206126828682870161255f565b925050604061269386828701612595565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126126c2576126c161269d565b5b8235905067ffffffffffffffff8111156126df576126de6126a2565b5b6020830191508360208202830111156126fb576126fa6126a7565b5b9250929050565b60008083601f8401126127185761271761269d565b5b8235905067ffffffffffffffff811115612735576127346126a2565b5b602083019150836020820283011115612751576127506126a7565b5b9250929050565b60008083601f84011261276e5761276d61269d565b5b8235905067ffffffffffffffff81111561278b5761278a6126a2565b5b6020830191508360018202830111156127a7576127a66126a7565b5b9250929050565b600080600080600080606087890312156127cb576127ca61250c565b5b600087013567ffffffffffffffff8111156127e9576127e8612511565b5b6127f589828a016126ac565b9650965050602087013567ffffffffffffffff81111561281857612817612511565b5b61282489828a01612702565b9450945050604087013567ffffffffffffffff81111561284757612846612511565b5b61285389828a01612758565b92509250509295509295509295565b600060ff82169050919050565b61287881612862565b82525050565b6000602082019050612893600083018461286f565b92915050565b6000806000604084860312156128b2576128b161250c565b5b60006128c08682870161255f565b935050602084013567ffffffffffffffff8111156128e1576128e0612511565b5b6128ed86828701612758565b92509250509250925092565b60006020828403121561290f5761290e61250c565b5b600061291d8482850161255f565b91505092915050565b61292f81612536565b82525050565b600060208201905061294a6000830184612926565b92915050565b60008060008060006080868803121561296c5761296b61250c565b5b600061297a8882890161255f565b955050602061298b8882890161255f565b945050604061299c88828901612595565b935050606086013567ffffffffffffffff8111156129bd576129bc612511565b5b6129c988828901612758565b92509250509295509295909350565b6000610100820190506129ee600083018b612926565b6129fb602083018a612926565b612a086040830189612926565b612a156060830188612926565b612a226080830187612620565b612a2f60a0830186612620565b612a3c60c0830185612620565b612a4960e0830184612620565b9998505050505050505050565b60008060408385031215612a6d57612a6c61250c565b5b6000612a7b8582860161255f565b9250506020612a8c8582860161255f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b60208210811415612af157612af0612a96565b5b50919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000612b2d60148361245c565b9150612b3882612af7565b602082019050919050565b60006020820190508181036000830152612b5c81612b20565b9050919050565b7f416c6c6f77616e63652065786365656465640000000000000000000000000000600082015250565b6000612b9960128361245c565b9150612ba482612b63565b602082019050919050565b60006020820190508181036000830152612bc881612b8c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c0982612574565b9150612c1483612574565b925082821015612c2757612c26612bcf565b5b828203905092915050565b6000612c3d82612574565b9150612c4883612574565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c7d57612c7c612bcf565b5b828201905092915050565b7f43616c6c6572206d75737420626520496e697420636f6e747261637400000000600082015250565b6000612cbe601c8361245c565b9150612cc982612c88565b602082019050919050565b60006020820190508181036000830152612ced81612cb1565b9050919050565b6000612cff82612516565b9050919050565b612d0f81612cf4565b8114612d1a57600080fd5b50565b600081359050612d2c81612d06565b92915050565b60008060408385031215612d4957612d4861250c565b5b6000612d5785828601612d1d565b9250506020612d6885828601612595565b9150509250929050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612db9612db4612daf84612d72565b612d94565b612d7c565b9050919050565b612dc981612d9e565b82525050565b50565b6000612ddf60008361245c565b9150612dea82612dcf565b600082019050919050565b6000608082019050612e0a6000830186612926565b612e176020830185612dc0565b612e246040830184612926565b8181036060830152612e3581612dd2565b9050949350505050565b6000819050919050565b6000612e64612e5f612e5a84612e3f565b612d94565b612574565b9050919050565b612e7481612e49565b82525050565b6000604082019050612e8f6000830185612926565b612e9c6020830184612e6b565b9392505050565b612eac816125ea565b8114612eb757600080fd5b50565b600081519050612ec981612ea3565b92915050565b600060208284031215612ee557612ee461250c565b5b6000612ef384828501612eba565b91505092915050565b612f0581612574565b82525050565b606082016000820151612f216000850182612efc565b506020820151612f346020850182612efc565b506040820151612f476040850182612efc565b50505050565b600081519050919050565b600082825260208201905092915050565b6000612f7482612f4d565b612f7e8185612f58565b9350612f8e81856020860161246d565b612f97816124a0565b840191505092915050565b6000608082019050612fb76000830185612f0b565b8181036060830152612fc98184612f69565b90509392505050565b600081519050612fe181612548565b92915050565b600060208284031215612ffd57612ffc61250c565b5b600061300b84828501612fd2565b91505092915050565b6000819050919050565b600061303961303461302f84613014565b612d94565b612574565b9050919050565b6130498161301e565b82525050565b60006040820190506130646000830185612926565b6130716020830184613040565b9392505050565b61308181612536565b82525050565b600082825260208201905092915050565b60006130a382612f4d565b6130ad8185613087565b93506130bd81856020860161246d565b6130c6816124a0565b840191505092915050565b60006080830160008301516130e96000860182613078565b5060208301516130fc6020860182613078565b50604083015161310f6040860182612efc565b50606083015184820360608601526131278282613098565b9150508091505092915050565b6000602082019050818103600083015261314e81846130d1565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060408201905061319a6000830185612926565b6131a76020830184612620565b9392505050565b6000815190506131bd8161257e565b92915050565b6000602082840312156131d9576131d861250c565b5b60006131e7848285016131ae565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006132578383613078565b60208301905092915050565b6000602082019050919050565b600061327b8261321f565b613285818561322a565b93506132908361323b565b8060005b838110156132c15781516132a8888261324b565b97506132b383613263565b925050600181019050613294565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006133068383612efc565b60208301905092915050565b6000602082019050919050565b600061332a826132ce565b61333481856132d9565b935061333f836132ea565b8060005b8381101561337057815161335788826132fa565b975061336283613312565b925050600181019050613343565b5085935050505092915050565b600060608201905081810360008301526133978186613270565b905081810360208301526133ab818561331f565b905081810360408301526133bf8184612f69565b9050949350505050565b7f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000600082015250565b60006133ff601e8361245c565b915061340a826133c9565b602082019050919050565b6000602082019050818103600083015261342e816133f2565b9050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061347561347083613435565b613442565b9050919050565b6000819050919050565b600061349961349483613435565b61347c565b9050919050565b600060ff82169050919050565b60006134c06134bb83613435565b6134a0565b9050919050565b6134d0816125ea565b82525050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60608201600080830154905061351c81613486565b6135296000860182612efc565b506001830154905061353a81613486565b6135476020860182612efc565b506002830154905061355881613486565b6135656040860182612efc565b5050505050565b60006135788383613507565b60608301905092915050565b6000600382019050919050565b600061359c826134d6565b6135a681856134e1565b93506135b1836134f2565b8060005b838110156135e157816135c8888261356c565b97506135d383613584565b9250506001810190506135b5565b5085935050505092915050565b600060e08301600080840154905061360581613462565b6136126000870182613078565b506001840154905061362381613462565b6136306020870182613078565b506002840154905061364181613486565b61364e6040870182612efc565b506003840154905061365f81613486565b61366c6060870182612efc565b506004840154905061367d81613486565b61368a6080870182612efc565b506005840154905061369b816134ad565b6136a860a08701826134c7565b506006840185830360c08701526136bf8382613591565b925050819250505092915050565b600060208201905081810360008301526136e781846135ee565b90509291505056fea26469706673582212205121f62e9b4e66fe92978b243f868f0a2de093b6887cc5f3714a369960123ce464736f6c634300080a0033