@towns-protocol/generated 0.0.242 → 0.0.245

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/config/deployments.json +12 -4
  2. package/dev/abis/Channels.abi.json +0 -51
  3. package/dev/abis/Channels.abi.ts +0 -51
  4. package/dev/abis/EntitlementsManager.abi.json +0 -51
  5. package/dev/abis/EntitlementsManager.abi.ts +0 -51
  6. package/dev/abis/IAppRegistry.abi.json +244 -59
  7. package/dev/abis/IAppRegistry.abi.ts +244 -59
  8. package/dev/abis/IAppRegistryBase.abi.json +80 -0
  9. package/dev/abis/IAppRegistryBase.abi.ts +80 -0
  10. package/dev/abis/ISpaceDelegation.abi.json +3 -122
  11. package/dev/abis/ISpaceDelegation.abi.ts +3 -122
  12. package/dev/abis/ISpaceDelegationBase.abi.json +3 -44
  13. package/dev/abis/ISpaceDelegationBase.abi.ts +3 -44
  14. package/dev/abis/PrepayFacet.abi.json +0 -51
  15. package/dev/abis/PrepayFacet.abi.ts +0 -51
  16. package/dev/abis/Roles.abi.json +0 -51
  17. package/dev/abis/Roles.abi.ts +0 -51
  18. package/dev/typings/Channels.ts +0 -23
  19. package/dev/typings/EntitlementsManager.ts +0 -23
  20. package/dev/typings/IAppRegistry.ts +299 -73
  21. package/dev/typings/ISpaceDelegation.ts +0 -203
  22. package/dev/typings/PrepayFacet.ts +0 -23
  23. package/dev/typings/Roles.ts +0 -23
  24. package/dev/typings/factories/Channels__factory.ts +1 -52
  25. package/dev/typings/factories/DropFacet__factory.ts +1 -1
  26. package/dev/typings/factories/EntitlementsManager__factory.ts +1 -52
  27. package/dev/typings/factories/IAppRegistry__factory.ts +244 -59
  28. package/dev/typings/factories/ISpaceDelegation__factory.ts +3 -122
  29. package/dev/typings/factories/MembershipFacet__factory.ts +1 -1
  30. package/dev/typings/factories/PrepayFacet__factory.ts +0 -51
  31. package/dev/typings/factories/Roles__factory.ts +1 -52
  32. package/dev/typings/factories/mainnet/Towns__factory.ts +1 -1
  33. package/package.json +2 -2
  34. /package/deployments/alpha/base/addresses/{towns.json → utils/towns.json} +0 -0
  35. /package/deployments/delta/base/addresses/{towns.json → utils/towns.json} +0 -0
  36. /package/deployments/gamma/base/addresses/{towns.json → utils/towns.json} +0 -0
  37. /package/deployments/omega/base/addresses/{towns.json → utils/towns.json} +0 -0
@@ -761,7 +761,7 @@ const _abi = [
761
761
  ] as const;
762
762
 
763
763
  const _bytecode =
764
- "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6124ea806100ca5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b9575f3560e01c806381045e3611610072578063c68907de11610058578063c68907de146101b6578063c9ac9368146101be578063fff96374146101d1575f5ffd5b806381045e361461018e578063a1550b2f146101a1575f5ffd5b806364843393116100a257806364843393146100f85780636f8934f41461010b5780637a05557c1461012b575f5ffd5b806314c9fcbc146100bd57806333d42dc6146100d2575b5f5ffd5b6100d06100cb366004611c72565b6101e4565b005b6100e56100e0366004611c8d565b61027c565b6040519081526020015b60405180910390f35b6100d0610106366004611cb7565b6102d1565b61011e610119366004611cd0565b610351565b6040516100ef9190611ce7565b6100e5610139366004611c8d565b5f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020908152604080832073ffffffffffffffffffffffffffffffffffffffff949094168352929052206001015490565b6100e561019c366004611d91565b61047b565b6101a9610614565b6040516100ef9190611de0565b6100e5610623565b6100d06101cc366004611e94565b61062c565b6100e56101df366004611f05565b6106ac565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610247576040517f77a399b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102707f9251dd060000000000000000000000000000000000000000000000000000000061090f565b61027981610a64565b50565b5f8181527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff163314610348576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b61027981610a6d565b604080515f80825260208201819052818301819052606082018190526080820181905260a0820181905260c0820152908190526103ba825f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902060010190565b6040805160e081018252825473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810464ffffffffff9081166020840152790100000000000000000000000000000000000000000000000000820416928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260018201546080820152600282015460a082015260039091015460c082015292915050565b81355f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040808220600181015490916104e69190860135907e01000000000000000000000000000000000000000000000000000000000000900461ffff1685610cca565b91506104f28183610d2a565b6004810154610502908590610ef7565b61051d6105156040860160208701611c72565b829084610f4b565b7f25a22d57af6f735dc617e9781981413da3bc5a71376b4237270a04c144aaf70061055d6105516040870160208801611c72565b82906060880135610fbf565b6105926105706040870160208801611c72565b600184015473ffffffffffffffffffffffffffffffffffffffff169085610fdb565b6105a26040860160208701611c72565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16865f01357f970af01ab25e63f8131277859b2c17e9a07c2eb257e6db87449000d91c0f84018660405161060491815260200190565b60405180910390a4505092915050565b606061061e61102e565b905090565b5f61061e61128a565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff16331461069e576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161033f565b6106a88282611445565b5050565b84355f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0160205260409081902090860135906106eb8183610d2a565b60048101546106fb908890610ef7565b61070e6105156040890160208a01611c72565b7f25a22d57af6f735dc617e9781981413da3bc5a71376b4237270a04c144aaf70061074e61074260408a0160208b01611c72565b829060608b0135610fbf565b60018201546107739073ffffffffffffffffffffffffffffffffffffffff168461171b565b5f7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005473ffffffffffffffffffffffffffffffffffffffff1663e69f94956107ba86611760565b8a6107cb60408e0160208f01611c72565b8d60200160208101906107de9190611c72565b8c8c8c6040518863ffffffff1660e01b81526004016108039796959493929190611fb6565b6020604051808303815f875af115801561081f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108439190612075565b90505f838161085860408d0160208e01611c72565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f2060018101859055925061089891908c01908c01611c72565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168b5f01357ff08f338c8905e343697a35fef11af2f611a36658016e0653521354c865373ea7886040516108fa91815260200190565b60405180910390a45050505095945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff166109e3577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610a15565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b61027981611781565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005465ffffffffffff7401000000000000000000000000000000000000000082048116917a0100000000000000000000000000000000000000000000000000009004165f610adb82846120b9565b905065ffffffffffff821615610bae5765ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201165f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab01602052604081206001019050610b5760408601602087016120e9565b815464ffffffffff9182167401000000000000000000000000000000000000000090910490911610610bac57610bac7f7b10269c0000000000000000000000000000000000000000000000000000000061182b565b505b610bc8610bbe6020860186611c72565b8560800135611833565b83610c048265ffffffffffff165f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902090565b600101610c11828261211c565b50610c1f90508260016120b9565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab00805479ffffffffffffffffffffffffffffffffffffffffffffffffffff167a01000000000000000000000000000000000000000000000000000065ffffffffffff93841602179055604051908216907fb2d7f7a48138c995ec7024ac4e176fad4415d42377559f3178e3830941b0484190610cbc908790612325565b60405180910390a250505050565b5f8161ffff168361ffff1614610d0357610d037f70566c000000000000000000000000000000000000000000000000000000000061182b565b61ffff831615610d22575f610d1c858561ffff16611883565b90940393505b509192915050565b60048201546001830190610d6157610d617ff235dd010000000000000000000000000000000000000000000000000000000061182b565b815f03610d9157610d917fdf4e56a50000000000000000000000000000000000000000000000000000000061182b565b805473ffffffffffffffffffffffffffffffffffffffff16610dd657610dd67fe211c34c0000000000000000000000000000000000000000000000000000000061182b565b8060010154828260020154610deb9190612333565b1115610e1a57610e1a7fb0b4e6d40000000000000000000000000000000000000000000000000000000061182b565b805474010000000000000000000000000000000000000000900464ffffffffff16421015610e6b57610e6b7f4b3950d80000000000000000000000000000000000000000000000000000000061182b565b8054790100000000000000000000000000000000000000000000000000900464ffffffffff1615801590610ec457508054790100000000000000000000000000000000000000000000000000900464ffffffffff164210155b15610ef257610ef27fd87c5b1d0000000000000000000000000000000000000000000000000000000061182b565b505050565b5f610f0183611934565b9050610f1e8282610f156080870187612346565b90929091611972565b610ef257610ef27f592fca340000000000000000000000000000000000000000000000000000000061182b565b73ffffffffffffffffffffffffffffffffffffffff82165f908152602084905260409020805415610f9f57610f9f7f7f76444f0000000000000000000000000000000000000000000000000000000061182b565b81846001016002015f828254610fb59190612333565b9091555050555050565b610fca8383836119aa565b600290920180549290920390915550565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661102457803d853b151710611024576390b8ec185f526004601cfd5b505f603452505050565b60605f5f61109d7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005474010000000000000000000000000000000000000000810465ffffffffffff908116927a0100000000000000000000000000000000000000000000000000009092041690565b915091508065ffffffffffff1667ffffffffffffffff8111156110c2576110c26123b1565b60405190808252806020026020018201604052801561114657816020015b6040805160e0810182525f8082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816110e05790505b5092505f5b8165ffffffffffff16811015611284576111a26111708265ffffffffffff8616612333565b5f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902060010190565b6040805160e081018252825473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810464ffffffffff9081166020840152790100000000000000000000000000000000000000000000000000820416928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260018201546080820152600282015460a082015260039091015460c08201528451859083908110611271576112716123de565b602090810291909101015260010161114b565b50505090565b5f5f5f6112f87feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005474010000000000000000000000000000000000000000810465ffffffffffff908116927a0100000000000000000000000000000000000000000000000000009092041690565b915091508065ffffffffffff165f03611334576113347f44d5f0940000000000000000000000000000000000000000000000000000000061182b565b65ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8383010116805b8365ffffffffffff16811061141b575f8181527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0160205260409020600101805464ffffffffff79010000000000000000000000000000000000000000000000000082048116917401000000000000000000000000000000000000000090041642108015906113f857508015806113f857508042105b1561140857509095945050505050565b5050806114149061240b565b9050611363565b506112847f44d5f0940000000000000000000000000000000000000000000000000000000061182b565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab00805465ffffffffffff7401000000000000000000000000000000000000000082048116917a01000000000000000000000000000000000000000000000000000090048116906114b58584612333565b11156114e4576114e47fae4eeeb10000000000000000000000000000000000000000000000000000000061182b565b835f80805b8365ffffffffffff16811015611620573689898381811061150c5761150c6123de565b905060e00201905080602001602081019061152791906120e9565b64ffffffffff168465ffffffffffff1610611565576115657f7b10269c0000000000000000000000000000000000000000000000000000000061182b565b5f600189018161157d8565ffffffffffff8c16612333565b815260208101919091526040015f20600381015490915060808301358111156115c9576115c97fae4eeeb10000000000000000000000000000000000000000000000000000000061182b565b6115d38284611a20565b6115e360408401602085016120e9565b64ffffffffff1695506115fa608084013586612333565b945061161261160c6020850185611c72565b86611833565b5050508060010190506114e9565b50855465ffffffffffff8085167a010000000000000000000000000000000000000000000000000000810279ffffffffffffffffffffffffffffffffffffffffffffffffffff909316929092178855851611156116cf5765ffffffffffff83165b8465ffffffffffff168110156116cd5765ffffffffffff861681015f90815260018089016020526040822080820183905560028101839055600381018390556004019190915501611681565b505b8465ffffffffffff167ff91c9c864018770f197086e7e64354d3a54259e85887953cbbe7d02ba32aba8e898960405161170992919061243f565b60405180910390a25050505050505050565b6106a87feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005473ffffffffffffffffffffffffffffffffffffffff848116911683611ba1565b5f6c01000000000000000000000000821061177d5761177d611bea565b5090565b73ffffffffffffffffffffffffffffffffffffffff81166117c5576117c57fe3224c780000000000000000000000000000000000000000000000000000000061182b565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b805f5260045ffd5b61185373ffffffffffffffffffffffffffffffffffffffff831630611bf7565b8111156106a8576106a87f42e1bedf0000000000000000000000000000000000000000000000000000000061182b565b5f612710821115611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f303060448201527f3000000000000000000000000000000000000000000000000000000000000000606482015260840161033f565b6127106119238385612480565b61192d9190612497565b9392505050565b5f806119466040840160208501611c72565b604080515f92835281860135602090815260609687013583529583208352949091209390525090919050565b5f83156119a2578360051b8501855b803580851160051b94855260209485185260405f2093018181106119815750505b501492915050565b5f5f6119b7858585611c2a565b915091508115611a19576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602481018290526044810184905260640161033f565b5050505050565b60018201611a3460408301602084016120e9565b815464ffffffffff9190911674010000000000000000000000000000000000000000027fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff909116178155611a8e60608301604084016120e9565b815464ffffffffff91909116790100000000000000000000000000000000000000000000000000027fffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff9091161781556080820135600182015560c08201356003820155611afe6020830183611c72565b81547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff91909116178155611b4e60808301606084016124cf565b815461ffff919091167e01000000000000000000000000000000000000000000000000000000000000027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790555050565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f51141661102457803d853b15171061102457633e3f8f735f526004601cfd5b6335278d125f526004601cfd5b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f82815260208490526040902080548281109182611c485783820381555b50935093915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610279575f5ffd5b5f60208284031215611c82575f5ffd5b813561192d81611c51565b5f5f60408385031215611c9e575f5ffd5b8235611ca981611c51565b946020939093013593505050565b5f60e0828403128015611cc8575f5ffd5b509092915050565b5f60208284031215611ce0575f5ffd5b5035919050565b60e081016102cb828473ffffffffffffffffffffffffffffffffffffffff815116825264ffffffffff602082015116602083015264ffffffffff604082015116604083015261ffff60608201511660608301526080810151608083015260a081015160a083015260c081015160c08301525050565b5f60a08284031215611d6c575f5ffd5b50919050565b61ffff81168114610279575f5ffd5b8035611d8c81611d72565b919050565b5f5f60408385031215611da2575f5ffd5b823567ffffffffffffffff811115611db8575f5ffd5b611dc485828601611d5c565b9250506020830135611dd581611d72565b809150509250929050565b602080825282518282018190525f918401906040840190835b81811015611e8957611e7383855173ffffffffffffffffffffffffffffffffffffffff815116825264ffffffffff602082015116602083015264ffffffffff604082015116604083015261ffff60608201511660608301526080810151608083015260a081015160a083015260c081015160c08301525050565b6020939093019260e09290920191600101611df9565b509095945050505050565b5f5f60208385031215611ea5575f5ffd5b823567ffffffffffffffff811115611ebb575f5ffd5b8301601f81018513611ecb575f5ffd5b803567ffffffffffffffff811115611ee1575f5ffd5b85602060e083028401011115611ef5575f5ffd5b6020919091019590945092505050565b5f5f5f5f5f60808688031215611f19575f5ffd5b853567ffffffffffffffff811115611f2f575f5ffd5b611f3b88828901611d5c565b9550506020860135611f4c81611c51565b935060408601359250606086013567ffffffffffffffff811115611f6e575f5ffd5b8601601f81018813611f7e575f5ffd5b803567ffffffffffffffff811115611f94575f5ffd5b886020828401011115611fa5575f5ffd5b959894975092955050506020019190565b6bffffffffffffffffffffffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015273ffffffffffffffffffffffffffffffffffffffff8616604082015273ffffffffffffffffffffffffffffffffffffffff8516606082015283608082015260c060a08201528160c0820152818360e08301375f81830160e090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019695505050505050565b5f60208284031215612085575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b65ffffffffffff81811683821601908111156102cb576102cb61208c565b64ffffffffff81168114610279575f5ffd5b5f602082840312156120f9575f5ffd5b813561192d816120d7565b5f81356102cb816120d7565b5f81356102cb81611d72565b813561212781611c51565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff0000000000000000000000000000000000000000835416178255506020820135612174816120d7565b81547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff1660a09190911b78ffffffffff00000000000000000000000000000000000000001617815561221a6121cb60408401612104565b82547fffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff1660c89190911b7dffffffffff0000000000000000000000000000000000000000000000000016178255565b61227861222960608401612110565b82547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f09190911b7fffff00000000000000000000000000000000000000000000000000000000000016178255565b6080820135600182015560a0820135600282015560c090910135600390910155565b80356122a581611c51565b73ffffffffffffffffffffffffffffffffffffffff16825260208101356122cb816120d7565b64ffffffffff16602083015260408101356122e5816120d7565b64ffffffffff1660408301526122fd60608201611d81565b61ffff1660608301526080818101359083015260a0808201359083015260c090810135910152565b60e081016102cb828461229a565b808201808211156102cb576102cb61208c565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612379575f5ffd5b83018035915067ffffffffffffffff821115612393575f5ffd5b6020019150600581901b36038213156123aa575f5ffd5b9250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f816124195761241961208c565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b602080825281018290525f8360408301825b8581101561247657612463828461229a565b60e0928301929190910190600101612451565b5095945050505050565b80820281158282048414176102cb576102cb61208c565b5f826124ca577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f602082840312156124df575f5ffd5b813561192d81611d7256";
764
+ "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b612498806100ca5f395ff3fe608060405234801561000f575f5ffd5b50600436106100b9575f3560e01c806381045e3611610072578063c68907de11610058578063c68907de146101b6578063c9ac9368146101be578063fff96374146101d1575f5ffd5b806381045e361461018e578063a1550b2f146101a1575f5ffd5b806364843393116100a257806364843393146100f85780636f8934f41461010b5780637a05557c1461012b575f5ffd5b806314c9fcbc146100bd57806333d42dc6146100d2575b5f5ffd5b6100d06100cb366004611c20565b6101e4565b005b6100e56100e0366004611c3b565b61027c565b6040519081526020015b60405180910390f35b6100d0610106366004611c65565b6102d1565b61011e610119366004611c7e565b610351565b6040516100ef9190611c95565b6100e5610139366004611c3b565b5f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020908152604080832073ffffffffffffffffffffffffffffffffffffffff949094168352929052206001015490565b6100e561019c366004611d3f565b61047b565b6101a9610614565b6040516100ef9190611d8e565b6100e5610623565b6100d06101cc366004611e42565b61062c565b6100e56101df366004611eb3565b6106ac565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610247576040517f77a399b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102707f9251dd060000000000000000000000000000000000000000000000000000000061090f565b61027981610a64565b50565b5f8181527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff163314610348576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b61027981610a6d565b604080515f80825260208201819052818301819052606082018190526080820181905260a0820181905260c0820152908190526103ba825f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902060010190565b6040805160e081018252825473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810464ffffffffff9081166020840152790100000000000000000000000000000000000000000000000000820416928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260018201546080820152600282015460a082015260039091015460c082015292915050565b81355f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040808220600181015490916104e69190860135907e01000000000000000000000000000000000000000000000000000000000000900461ffff1685610cca565b91506104f28183610d2a565b6004810154610502908590610ef7565b61051d6105156040860160208701611c20565b829084610f4b565b7f25a22d57af6f735dc617e9781981413da3bc5a71376b4237270a04c144aaf70061055d6105516040870160208801611c20565b82906060880135610fbf565b6105926105706040870160208801611c20565b600184015473ffffffffffffffffffffffffffffffffffffffff169085610fdb565b6105a26040860160208701611c20565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16865f01357f970af01ab25e63f8131277859b2c17e9a07c2eb257e6db87449000d91c0f84018660405161060491815260200190565b60405180910390a4505092915050565b606061061e61102e565b905090565b5f61061e61128a565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae3005473ffffffffffffffffffffffffffffffffffffffff16331461069e576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161033f565b6106a88282611445565b5050565b84355f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0160205260409081902090860135906106eb8183610d2a565b60048101546106fb908890610ef7565b61070e6105156040890160208a01611c20565b7f25a22d57af6f735dc617e9781981413da3bc5a71376b4237270a04c144aaf70061074e61074260408a0160208b01611c20565b829060608b0135610fbf565b60018201546107739073ffffffffffffffffffffffffffffffffffffffff168461171b565b5f7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005473ffffffffffffffffffffffffffffffffffffffff1663e69f94956107ba86611760565b8a6107cb60408e0160208f01611c20565b8d60200160208101906107de9190611c20565b8c8c8c6040518863ffffffff1660e01b81526004016108039796959493929190611f64565b6020604051808303815f875af115801561081f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108439190612023565b90505f838161085860408d0160208e01611c20565b73ffffffffffffffffffffffffffffffffffffffff16815260208082019290925260409081015f2060018101859055925061089891908c01908c01611c20565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168b5f01357ff08f338c8905e343697a35fef11af2f611a36658016e0653521354c865373ea7886040516108fa91815260200190565b60405180910390a45050505095945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff166109e3577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610a15565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b61027981611781565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005465ffffffffffff7401000000000000000000000000000000000000000082048116917a0100000000000000000000000000000000000000000000000000009004165f610adb8284612067565b905065ffffffffffff821615610bae5765ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201165f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab01602052604081206001019050610b576040860160208701612097565b815464ffffffffff9182167401000000000000000000000000000000000000000090910490911610610bac57610bac7f7b10269c0000000000000000000000000000000000000000000000000000000061182b565b505b610bc8610bbe6020860186611c20565b8560800135611833565b83610c048265ffffffffffff165f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902090565b600101610c1182826120ca565b50610c1f9050826001612067565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab00805479ffffffffffffffffffffffffffffffffffffffffffffffffffff167a01000000000000000000000000000000000000000000000000000065ffffffffffff93841602179055604051908216907fb2d7f7a48138c995ec7024ac4e176fad4415d42377559f3178e3830941b0484190610cbc9087906122d3565b60405180910390a250505050565b5f8161ffff168361ffff1614610d0357610d037f70566c000000000000000000000000000000000000000000000000000000000061182b565b61ffff831615610d22575f610d1c858561ffff16611883565b90940393505b509192915050565b60048201546001830190610d6157610d617ff235dd010000000000000000000000000000000000000000000000000000000061182b565b815f03610d9157610d917fdf4e56a50000000000000000000000000000000000000000000000000000000061182b565b805473ffffffffffffffffffffffffffffffffffffffff16610dd657610dd67fe211c34c0000000000000000000000000000000000000000000000000000000061182b565b8060010154828260020154610deb91906122e1565b1115610e1a57610e1a7fb0b4e6d40000000000000000000000000000000000000000000000000000000061182b565b805474010000000000000000000000000000000000000000900464ffffffffff16421015610e6b57610e6b7f4b3950d80000000000000000000000000000000000000000000000000000000061182b565b8054790100000000000000000000000000000000000000000000000000900464ffffffffff1615801590610ec457508054790100000000000000000000000000000000000000000000000000900464ffffffffff164210155b15610ef257610ef27fd87c5b1d0000000000000000000000000000000000000000000000000000000061182b565b505050565b5f610f01836118d6565b9050610f1e8282610f1560808701876122f4565b90929091611914565b610ef257610ef27f592fca340000000000000000000000000000000000000000000000000000000061182b565b73ffffffffffffffffffffffffffffffffffffffff82165f908152602084905260409020805415610f9f57610f9f7f7f76444f0000000000000000000000000000000000000000000000000000000061182b565b81846001016002015f828254610fb591906122e1565b9091555050555050565b610fca83838361194c565b600290920180549290920390915550565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661102457803d853b151710611024576390b8ec185f526004601cfd5b505f603452505050565b60605f5f61109d7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005474010000000000000000000000000000000000000000810465ffffffffffff908116927a0100000000000000000000000000000000000000000000000000009092041690565b915091508065ffffffffffff1667ffffffffffffffff8111156110c2576110c261235f565b60405190808252806020026020018201604052801561114657816020015b6040805160e0810182525f8082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816110e05790505b5092505f5b8165ffffffffffff16811015611284576111a26111708265ffffffffffff86166122e1565b5f9081527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab016020526040902060010190565b6040805160e081018252825473ffffffffffffffffffffffffffffffffffffffff8116825274010000000000000000000000000000000000000000810464ffffffffff9081166020840152790100000000000000000000000000000000000000000000000000820416928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260018201546080820152600282015460a082015260039091015460c082015284518590839081106112715761127161238c565b602090810291909101015260010161114b565b50505090565b5f5f5f6112f87feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005474010000000000000000000000000000000000000000810465ffffffffffff908116927a0100000000000000000000000000000000000000000000000000009092041690565b915091508065ffffffffffff165f03611334576113347f44d5f0940000000000000000000000000000000000000000000000000000000061182b565b65ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8383010116805b8365ffffffffffff16811061141b575f8181527feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0160205260409020600101805464ffffffffff79010000000000000000000000000000000000000000000000000082048116917401000000000000000000000000000000000000000090041642108015906113f857508015806113f857508042105b1561140857509095945050505050565b505080611414906123b9565b9050611363565b506112847f44d5f0940000000000000000000000000000000000000000000000000000000061182b565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab00805465ffffffffffff7401000000000000000000000000000000000000000082048116917a01000000000000000000000000000000000000000000000000000090048116906114b585846122e1565b11156114e4576114e47fae4eeeb10000000000000000000000000000000000000000000000000000000061182b565b835f80805b8365ffffffffffff16811015611620573689898381811061150c5761150c61238c565b905060e0020190508060200160208101906115279190612097565b64ffffffffff168465ffffffffffff1610611565576115657f7b10269c0000000000000000000000000000000000000000000000000000000061182b565b5f600189018161157d8565ffffffffffff8c166122e1565b815260208101919091526040015f20600381015490915060808301358111156115c9576115c97fae4eeeb10000000000000000000000000000000000000000000000000000000061182b565b6115d382846119c2565b6115e36040840160208501612097565b64ffffffffff1695506115fa6080840135866122e1565b945061161261160c6020850185611c20565b86611833565b5050508060010190506114e9565b50855465ffffffffffff8085167a010000000000000000000000000000000000000000000000000000810279ffffffffffffffffffffffffffffffffffffffffffffffffffff909316929092178855851611156116cf5765ffffffffffff83165b8465ffffffffffff168110156116cd5765ffffffffffff861681015f90815260018089016020526040822080820183905560028101839055600381018390556004019190915501611681565b505b8465ffffffffffff167ff91c9c864018770f197086e7e64354d3a54259e85887953cbbe7d02ba32aba8e89896040516117099291906123ed565b60405180910390a25050505050505050565b6106a87feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab005473ffffffffffffffffffffffffffffffffffffffff848116911683611b43565b5f6c01000000000000000000000000821061177d5761177d611b8c565b5090565b73ffffffffffffffffffffffffffffffffffffffff81166117c5576117c57fe3224c780000000000000000000000000000000000000000000000000000000061182b565b7feda6a1e2ce6f1639b6d3066254ca87a2daf51c4f0ad5038d408bbab6cc2cab0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b805f5260045ffd5b61185373ffffffffffffffffffffffffffffffffffffffff831630611b99565b8111156106a8576106a87f42e1bedf0000000000000000000000000000000000000000000000000000000061182b565b5f6127108211156118b8576118b87f197f19620000000000000000000000000000000000000000000000000000000083611bcc565b6127106118c5838561242e565b6118cf9190612445565b9392505050565b5f806118e86040840160208501611c20565b604080515f92835281860135602090815260609687013583529583208352949091209390525090919050565b5f8315611944578360051b8501855b803580851160051b94855260209485185260405f2093018181106119235750505b501492915050565b5f5f611959858585611bd8565b9150915081156119bb576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602481018290526044810184905260640161033f565b5050505050565b600182016119d66040830160208401612097565b815464ffffffffff9190911674010000000000000000000000000000000000000000027fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff909116178155611a306060830160408401612097565b815464ffffffffff91909116790100000000000000000000000000000000000000000000000000027fffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff9091161781556080820135600182015560c08201356003820155611aa06020830183611c20565b81547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff91909116178155611af0608083016060840161247d565b815461ffff919091167e01000000000000000000000000000000000000000000000000000000000000027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091161790555050565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f51141661102457803d853b15171061102457633e3f8f735f526004601cfd5b6335278d125f526004601cfd5b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b815f528060045260245ffd5b5f82815260208490526040902080548281109182611bf65783820381555b50935093915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610279575f5ffd5b5f60208284031215611c30575f5ffd5b81356118cf81611bff565b5f5f60408385031215611c4c575f5ffd5b8235611c5781611bff565b946020939093013593505050565b5f60e0828403128015611c76575f5ffd5b509092915050565b5f60208284031215611c8e575f5ffd5b5035919050565b60e081016102cb828473ffffffffffffffffffffffffffffffffffffffff815116825264ffffffffff602082015116602083015264ffffffffff604082015116604083015261ffff60608201511660608301526080810151608083015260a081015160a083015260c081015160c08301525050565b5f60a08284031215611d1a575f5ffd5b50919050565b61ffff81168114610279575f5ffd5b8035611d3a81611d20565b919050565b5f5f60408385031215611d50575f5ffd5b823567ffffffffffffffff811115611d66575f5ffd5b611d7285828601611d0a565b9250506020830135611d8381611d20565b809150509250929050565b602080825282518282018190525f918401906040840190835b81811015611e3757611e2183855173ffffffffffffffffffffffffffffffffffffffff815116825264ffffffffff602082015116602083015264ffffffffff604082015116604083015261ffff60608201511660608301526080810151608083015260a081015160a083015260c081015160c08301525050565b6020939093019260e09290920191600101611da7565b509095945050505050565b5f5f60208385031215611e53575f5ffd5b823567ffffffffffffffff811115611e69575f5ffd5b8301601f81018513611e79575f5ffd5b803567ffffffffffffffff811115611e8f575f5ffd5b85602060e083028401011115611ea3575f5ffd5b6020919091019590945092505050565b5f5f5f5f5f60808688031215611ec7575f5ffd5b853567ffffffffffffffff811115611edd575f5ffd5b611ee988828901611d0a565b9550506020860135611efa81611bff565b935060408601359250606086013567ffffffffffffffff811115611f1c575f5ffd5b8601601f81018813611f2c575f5ffd5b803567ffffffffffffffff811115611f42575f5ffd5b886020828401011115611f53575f5ffd5b959894975092955050506020019190565b6bffffffffffffffffffffffff8816815273ffffffffffffffffffffffffffffffffffffffff8716602082015273ffffffffffffffffffffffffffffffffffffffff8616604082015273ffffffffffffffffffffffffffffffffffffffff8516606082015283608082015260c060a08201528160c0820152818360e08301375f81830160e090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019695505050505050565b5f60208284031215612033575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b65ffffffffffff81811683821601908111156102cb576102cb61203a565b64ffffffffff81168114610279575f5ffd5b5f602082840312156120a7575f5ffd5b81356118cf81612085565b5f81356102cb81612085565b5f81356102cb81611d20565b81356120d581611bff565b73ffffffffffffffffffffffffffffffffffffffff81167fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825550602082013561212281612085565b81547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff1660a09190911b78ffffffffff0000000000000000000000000000000000000000161781556121c8612179604084016120b2565b82547fffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff1660c89190911b7dffffffffff0000000000000000000000000000000000000000000000000016178255565b6122266121d7606084016120be565b82547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f09190911b7fffff00000000000000000000000000000000000000000000000000000000000016178255565b6080820135600182015560a0820135600282015560c090910135600390910155565b803561225381611bff565b73ffffffffffffffffffffffffffffffffffffffff168252602081013561227981612085565b64ffffffffff166020830152604081013561229381612085565b64ffffffffff1660408301526122ab60608201611d2f565b61ffff1660608301526080818101359083015260a0808201359083015260c090810135910152565b60e081016102cb8284612248565b808201808211156102cb576102cb61203a565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612327575f5ffd5b83018035915067ffffffffffffffff821115612341575f5ffd5b6020019150600581901b3603821315612358575f5ffd5b9250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f816123c7576123c761203a565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b602080825281018290525f8360408301825b85811015612424576124118284612248565b60e09283019291909101906001016123ff565b5095945050505050565b80820281158282048414176102cb576102cb61203a565b5f82612478577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f6020828403121561248d575f5ffd5b81356118cf81611d2056";
765
765
 
766
766
  type DropFacetConstructorParams =
767
767
  | [signer?: Signer]
@@ -348,25 +348,6 @@ const _abi = [
348
348
  ],
349
349
  anonymous: false,
350
350
  },
351
- {
352
- type: "event",
353
- name: "SubscriptionUpdate",
354
- inputs: [
355
- {
356
- name: "tokenId",
357
- type: "uint256",
358
- indexed: true,
359
- internalType: "uint256",
360
- },
361
- {
362
- name: "expiration",
363
- type: "uint64",
364
- indexed: false,
365
- internalType: "uint64",
366
- },
367
- ],
368
- anonymous: false,
369
- },
370
351
  {
371
352
  type: "event",
372
353
  name: "Transfer",
@@ -482,38 +463,6 @@ const _abi = [
482
463
  },
483
464
  ],
484
465
  },
485
- {
486
- type: "error",
487
- name: "ERC5643__DurationZero",
488
- inputs: [],
489
- },
490
- {
491
- type: "error",
492
- name: "ERC5643__InvalidTokenId",
493
- inputs: [
494
- {
495
- name: "tokenId",
496
- type: "uint256",
497
- internalType: "uint256",
498
- },
499
- ],
500
- },
501
- {
502
- type: "error",
503
- name: "ERC5643__NotApprovedOrOwner",
504
- inputs: [],
505
- },
506
- {
507
- type: "error",
508
- name: "ERC5643__SubscriptionNotRenewable",
509
- inputs: [
510
- {
511
- name: "tokenId",
512
- type: "uint256",
513
- internalType: "uint256",
514
- },
515
- ],
516
- },
517
466
  {
518
467
  type: "error",
519
468
  name: "Entitlement__InvalidValue",
@@ -638,7 +587,7 @@ const _abi = [
638
587
  ] as const;
639
588
 
640
589
  const _bytecode =
641
- "0x6080604052348015600e575f5ffd5b50611e298061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c8063487dc38c11610058578063487dc38c146100ce5780638bfc820f146100e3578063be24138d146100f6578063fba4ff9d14610109575f5ffd5b8063070b9c3f1461007e57806320759f9e14610093578063367287e3146100bb575b5f5ffd5b61009161008c3660046117fa565b610129565b005b6100a66100a136600461185a565b6101a8565b60405190151581526020015b60405180910390f35b6100a66100c93660046118ab565b6101be565b6100d66101d4565b6040516100b291906119b5565b6100916100f1366004611a36565b6101e3565b6100916101043660046117fa565b61025f565b61011c6101173660046117fa565b6102d6565b6040516100b29190611aa7565b610131610308565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461019c576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6101a5816103c8565b50565b5f6101b484848461042a565b90505b9392505050565b5f6101cb8585858561043f565b95945050505050565b60606101de61044f565b905090565b6101eb610308565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610251576040517f65f49065000000000000000000000000000000000000000000000000000000008152336004820152602401610193565b61025b828261058c565b5050565b610267610308565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102cd576040517f65f49065000000000000000000000000000000000000000000000000000000008152336004820152602401610193565b6101a581610603565b6040805160808101825260608082525f602083018190529282018190528101919091526103028261065d565b92915050565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801561039e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c29190611ab9565b91505090565b6103d1816106d5565b6103db815f610853565b60405173ffffffffffffffffffffffffffffffffffffffff8216815233907f055c4c0e6f85afe96beaac6c9d650859c001e6ef93103856624cce6ceba811b4906020015b60405180910390a250565b5f6101b4818561043a8587611ad4565b610a65565b5f6101cb858561043a8587611ad4565b60605f61045a610d35565b9050805167ffffffffffffffff81111561047657610476611b10565b6040519080825280602002602001820160405280156104e657816020015b6040805160808101825260608082525f60208084018290529383018290529082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816104945790505b5091505f5b8151811015610587575f5f5f5f61051a86868151811061050d5761050d611b3d565b6020026020010151610d60565b935093509350935060405180608001604052808581526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151581525087868151811061056d5761056d611b3d565b6020026020010181905250505050508060010190506104eb565b505090565b5f5b818110156105fe576105c58383838181106105ab576105ab611b3d565b90506020020160208101906105c091906117fa565b6106d5565b6105f68383838181106105da576105da611b3d565b90506020020160208101906105ef91906117fa565b6001610853565b60010161058e565b505050565b61060c816106d5565b61061581610fb0565b60405173ffffffffffffffffffffffffffffffffffffffff8216815233907fa8e3e13a35b592afaa9d213d12c7ea06384518ada9733585d20883cfafcf249b9060200161041f565b6040805160808101825260608082525f60208301819052928201819052810191909152610689826106d5565b5f5f5f5f61069686610d60565b6040805160808101825294855273ffffffffffffffffffffffffffffffffffffffff909316602085015291830152151560608201529695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116610722576040517fe0dc2ae000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527ff785968a00000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa9250505080156107e6575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526107e391810190611b6a565b60015b61081c576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061025b576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82165f9081527fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c93102602052604090205482907fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310090156108f2576040517f2406020900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108ff600182018561111f565b5060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff16815260200184151581526020018373ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610978573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099c9190611b6a565b1515905273ffffffffffffffffffffffffffffffffffffffff9485165f90815260209283526040908190208251815494840151939092015115157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff93151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090951692909716919091179290921716939093179092555050565b5f5f610a6f610308565b90505f610a7b85611140565b80519091505f610a89611484565b80519091505f5b83811015610b78575f858281518110610aab57610aab611b3d565b602002602001015190508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610af85760019750505050505050506101b7565b5f5b83811015610b6e578173ffffffffffffffffffffffffffffffffffffffff16610b3b868381518110610b2e57610b2e611b3d565b60200260200101516114af565b73ffffffffffffffffffffffffffffffffffffffff1603610b66575f985050505050505050506101b7565b600101610afa565b5050600101610a90565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931005f610bc47fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016114b9565b90505f5b81811015610d24575f8381610be060018301856114c2565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182015f205482517f2e1b61e40000000000000000000000000000000000000000000000000000000081529251911693508392632e1b61e492600480820193918290030181865afa158015610c5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c809190611b6a565b158015610d0457508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401610cc593929190611b89565b602060405180830381865afa158015610ce0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611b6a565b15610d1b57600199505050505050505050506101b7565b50600101610bc8565b505f9b9a5050505050505050505050565b60606101de7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016114cd565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c93102602052604081205460609190829082907fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310090610e04576040517fbd599b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8690505f8173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa158015610e51573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e969190810190611c43565b73ffffffffffffffffffffffffffffffffffffffff808a165f908152602086905260408082205481517f6465e69f00000000000000000000000000000000000000000000000000000000815291519495508316939192861691636465e69f9160048082019286929091908290030181865afa158015610f17573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f5c9190810190611c43565b73ffffffffffffffffffffffffffffffffffffffff9a909a165f9081526020959095525060409093205490989297965074010000000000000000000000000000000000000000900460ff1694509092505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310260205260409020547fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931009061104c576040517fbd599b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82165f9081526020829052604090205474010000000000000000000000000000000000000000900460ff16156110c3576040517fc08b012e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110d060018201836114d9565b5073ffffffffffffffffffffffffffffffffffffffff9091165f9081526020919091526040902080547fffffffffffffffffffff00000000000000000000000000000000000000000000169055565b5f6101b78373ffffffffffffffffffffffffffffffffffffffff84166114fa565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa1580156111d7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261121c9190810190611cf5565b905080515f0361138d576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015611293573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b79190611ab9565b905073ffffffffffffffffffffffffffffffffffffffff81161561138b576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015611343573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526113889190810190611cf5565b91505b505b80515f61139b826001611dd6565b67ffffffffffffffff8111156113b3576113b3611b10565b6040519080825280602002602001820160405280156113dc578160200160208202803683370190505b5090505f5b82811015611442578381815181106113fb576113fb611b3d565b602002602001015182828151811061141557611415611b3d565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526001016113e1565b508581838151811061145657611456611b3d565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015295945050505050565b60606101de7f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf006114cd565b5f61030282611546565b5f610302825490565b5f6101b78383611677565b60605f6101b78361169d565b5f6101b78373ffffffffffffffffffffffffffffffffffffffff84166116f6565b5f81815260018301602052604081205461153f57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610302565b505f610302565b5f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361164457815f0361163e57805483106115fd576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f818152600484016020526040902054909290915081156115fe575b50919050565b506040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f825f01828154811061168c5761168c611b3d565b905f5260205f200154905092915050565b6060815f018054806020026020016040519081016040528092919081815260200182805480156116ea57602002820191905f5260205f20905b8154815260200190600101908083116116d6575b50505050509050919050565b5f81815260018301602052604081205480156117d0575f611718600183611de9565b85549091505f9061172b90600190611de9565b905080821461178a575f865f01828154811061174957611749611b3d565b905f5260205f200154905080875f01848154811061176957611769611b3d565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061179b5761179b611dfc565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610302565b5f915050610302565b73ffffffffffffffffffffffffffffffffffffffff811681146101a5575f5ffd5b5f6020828403121561180a575f5ffd5b81356101b7816117d9565b5f5f83601f840112611825575f5ffd5b50813567ffffffffffffffff81111561183c575f5ffd5b602083019150836020828501011115611853575f5ffd5b9250929050565b5f5f5f6040848603121561186c575f5ffd5b8335611877816117d9565b9250602084013567ffffffffffffffff811115611892575f5ffd5b61189e86828701611815565b9497909650939450505050565b5f5f5f5f606085870312156118be575f5ffd5b8435935060208501356118d0816117d9565b9250604085013567ffffffffffffffff8111156118eb575f5ffd5b6118f787828801611815565b95989497509550505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f8151608084526119636080850182611903565b905073ffffffffffffffffffffffffffffffffffffffff60208401511660208501526040830151848203604086015261199c8282611903565b9150506060830151151560608501528091505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611a2a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452611a1585835161194f565b945060209384019391909101906001016119db565b50929695505050505050565b5f5f60208385031215611a47575f5ffd5b823567ffffffffffffffff811115611a5d575f5ffd5b8301601f81018513611a6d575f5ffd5b803567ffffffffffffffff811115611a83575f5ffd5b8560208260051b8401011115611a97575f5ffd5b6020919091019590945092505050565b602081525f6101b7602083018461194f565b5f60208284031215611ac9575f5ffd5b81516101b7816117d9565b80356020831015610302577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611b7a575f5ffd5b815180151581146101b7575f5ffd5b5f60608201858352606060208401528085518083526080850191506020870192505f5b81811015611be057835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101611bac565b505060409390930193909352509392505050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611c3b57611c3b611b10565b604052919050565b5f60208284031215611c53575f5ffd5b815167ffffffffffffffff811115611c69575f5ffd5b8201601f81018413611c79575f5ffd5b805167ffffffffffffffff811115611c9357611c93611b10565b611cc460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611bf4565b818152856020838501011115611cd8575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215611d05575f5ffd5b815167ffffffffffffffff811115611d1b575f5ffd5b8201601f81018413611d2b575f5ffd5b805167ffffffffffffffff811115611d4557611d45611b10565b8060051b611d5560208201611bf4565b91825260208184018101929081019087841115611d70575f5ffd5b6020850194505b83851015611d9e5784519250611d8c836117d9565b82825260209485019490910190611d77565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561030257610302611da9565b8181038181111561030257610302611da9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd";
590
+ "0x6080604052348015600e575f5ffd5b50611e228061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c8063487dc38c11610058578063487dc38c146100ce5780638bfc820f146100e3578063be24138d146100f6578063fba4ff9d14610109575f5ffd5b8063070b9c3f1461007e57806320759f9e14610093578063367287e3146100bb575b5f5ffd5b61009161008c3660046117f3565b610129565b005b6100a66100a1366004611853565b6101a8565b60405190151581526020015b60405180910390f35b6100a66100c93660046118a4565b6101be565b6100d66101d4565b6040516100b291906119ae565b6100916100f1366004611a2f565b6101e3565b6100916101043660046117f3565b61025f565b61011c6101173660046117f3565b6102d6565b6040516100b29190611aa0565b610131610308565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461019c576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6101a5816103c8565b50565b5f6101b484848461042a565b90505b9392505050565b5f6101cb85858585610433565b95945050505050565b60606101de610448565b905090565b6101eb610308565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610251576040517f65f49065000000000000000000000000000000000000000000000000000000008152336004820152602401610193565b61025b8282610585565b5050565b610267610308565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102cd576040517f65f49065000000000000000000000000000000000000000000000000000000008152336004820152602401610193565b6101a5816105fc565b6040805160808101825260608082525f6020830181905292820181905281019190915261030282610656565b92915050565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801561039e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c29190611ab2565b91505090565b6103d1816106ce565b6103db815f61084c565b60405173ffffffffffffffffffffffffffffffffffffffff8216815233907f055c4c0e6f85afe96beaac6c9d650859c001e6ef93103856624cce6ceba811b4906020015b60405180910390a250565b5f6101b4818585855b5f6101cb85856104438587611acd565b610a5e565b60605f610453610d2e565b9050805167ffffffffffffffff81111561046f5761046f611b09565b6040519080825280602002602001820160405280156104df57816020015b6040805160808101825260608082525f60208084018290529383018290529082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191018161048d5790505b5091505f5b8151811015610580575f5f5f5f61051386868151811061050657610506611b36565b6020026020010151610d59565b935093509350935060405180608001604052808581526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182151581525087868151811061056657610566611b36565b6020026020010181905250505050508060010190506104e4565b505090565b5f5b818110156105f7576105be8383838181106105a4576105a4611b36565b90506020020160208101906105b991906117f3565b6106ce565b6105ef8383838181106105d3576105d3611b36565b90506020020160208101906105e891906117f3565b600161084c565b600101610587565b505050565b610605816106ce565b61060e81610fa9565b60405173ffffffffffffffffffffffffffffffffffffffff8216815233907fa8e3e13a35b592afaa9d213d12c7ea06384518ada9733585d20883cfafcf249b9060200161041f565b6040805160808101825260608082525f60208301819052928201819052810191909152610682826106ce565b5f5f5f5f61068f86610d59565b6040805160808101825294855273ffffffffffffffffffffffffffffffffffffffff909316602085015291830152151560608201529695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811661071b576040517fe0dc2ae000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527ff785968a00000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa9250505080156107df575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526107dc91810190611b63565b60015b610815576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8061025b576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82165f9081527fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c93102602052604090205482907fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310090156108eb576040517f2406020900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108f86001820185611118565b5060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff16815260200184151581526020018373ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610971573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109959190611b63565b1515905273ffffffffffffffffffffffffffffffffffffffff9485165f90815260209283526040908190208251815494840151939092015115157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff93151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090951692909716919091179290921716939093179092555050565b5f5f610a68610308565b90505f610a7485611139565b80519091505f610a8261147d565b80519091505f5b83811015610b71575f858281518110610aa457610aa4611b36565b602002602001015190508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610af15760019750505050505050506101b7565b5f5b83811015610b67578173ffffffffffffffffffffffffffffffffffffffff16610b34868381518110610b2757610b27611b36565b60200260200101516114a8565b73ffffffffffffffffffffffffffffffffffffffff1603610b5f575f985050505050505050506101b7565b600101610af3565b5050600101610a89565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931005f610bbd7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016114b2565b90505f5b81811015610d1d575f8381610bd960018301856114bb565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182015f205482517f2e1b61e40000000000000000000000000000000000000000000000000000000081529251911693508392632e1b61e492600480820193918290030181865afa158015610c55573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c799190611b63565b158015610cfd57508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401610cbe93929190611b82565b602060405180830381865afa158015610cd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfd9190611b63565b15610d1457600199505050505050505050506101b7565b50600101610bc1565b505f9b9a5050505050505050505050565b60606101de7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016114c6565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c93102602052604081205460609190829082907fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310090610dfd576040517fbd599b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8690505f8173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa158015610e4a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610e8f9190810190611c3c565b73ffffffffffffffffffffffffffffffffffffffff808a165f908152602086905260408082205481517f6465e69f00000000000000000000000000000000000000000000000000000000815291519495508316939192861691636465e69f9160048082019286929091908290030181865afa158015610f10573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f559190810190611c3c565b73ffffffffffffffffffffffffffffffffffffffff9a909a165f9081526020959095525060409093205490989297965074010000000000000000000000000000000000000000900460ff1694509092505050565b73ffffffffffffffffffffffffffffffffffffffff81165f9081527fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310260205260409020547fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310090611045576040517fbd599b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82165f9081526020829052604090205474010000000000000000000000000000000000000000900460ff16156110bc576040517fc08b012e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c960018201836114d2565b5073ffffffffffffffffffffffffffffffffffffffff9091165f9081526020919091526040902080547fffffffffffffffffffff00000000000000000000000000000000000000000000169055565b5f6101b78373ffffffffffffffffffffffffffffffffffffffff84166114f3565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa1580156111d0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526112159190810190611cee565b905080515f03611386576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa15801561128c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190611ab2565b905073ffffffffffffffffffffffffffffffffffffffff811615611384576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa15801561133c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526113819190810190611cee565b91505b505b80515f611394826001611dcf565b67ffffffffffffffff8111156113ac576113ac611b09565b6040519080825280602002602001820160405280156113d5578160200160208202803683370190505b5090505f5b8281101561143b578381815181106113f4576113f4611b36565b602002602001015182828151811061140e5761140e611b36565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526001016113da565b508581838151811061144f5761144f611b36565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015295945050505050565b60606101de7f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf006114c6565b5f6103028261153f565b5f610302825490565b5f6101b78383611670565b60605f6101b783611696565b5f6101b78373ffffffffffffffffffffffffffffffffffffffff84166116ef565b5f81815260018301602052604081205461153857508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610302565b505f610302565b5f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361163d57815f0361163757805483106115f6576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f818152600484016020526040902054909290915081156115f7575b50919050565b506040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f825f01828154811061168557611685611b36565b905f5260205f200154905092915050565b6060815f018054806020026020016040519081016040528092919081815260200182805480156116e357602002820191905f5260205f20905b8154815260200190600101908083116116cf575b50505050509050919050565b5f81815260018301602052604081205480156117c9575f611711600183611de2565b85549091505f9061172490600190611de2565b9050808214611783575f865f01828154811061174257611742611b36565b905f5260205f200154905080875f01848154811061176257611762611b36565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061179457611794611df5565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610302565b5f915050610302565b73ffffffffffffffffffffffffffffffffffffffff811681146101a5575f5ffd5b5f60208284031215611803575f5ffd5b81356101b7816117d2565b5f5f83601f84011261181e575f5ffd5b50813567ffffffffffffffff811115611835575f5ffd5b60208301915083602082850101111561184c575f5ffd5b9250929050565b5f5f5f60408486031215611865575f5ffd5b8335611870816117d2565b9250602084013567ffffffffffffffff81111561188b575f5ffd5b6118978682870161180e565b9497909650939450505050565b5f5f5f5f606085870312156118b7575f5ffd5b8435935060208501356118c9816117d2565b9250604085013567ffffffffffffffff8111156118e4575f5ffd5b6118f08782880161180e565b95989497509550505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f81516080845261195c60808501826118fc565b905073ffffffffffffffffffffffffffffffffffffffff60208401511660208501526040830151848203604086015261199582826118fc565b9150506060830151151560608501528091505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015611a23577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452611a0e858351611948565b945060209384019391909101906001016119d4565b50929695505050505050565b5f5f60208385031215611a40575f5ffd5b823567ffffffffffffffff811115611a56575f5ffd5b8301601f81018513611a66575f5ffd5b803567ffffffffffffffff811115611a7c575f5ffd5b8560208260051b8401011115611a90575f5ffd5b6020919091019590945092505050565b602081525f6101b76020830184611948565b5f60208284031215611ac2575f5ffd5b81516101b7816117d2565b80356020831015610302577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611b73575f5ffd5b815180151581146101b7575f5ffd5b5f60608201858352606060208401528085518083526080850191506020870192505f5b81811015611bd957835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101611ba5565b505060409390930193909352509392505050565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611c3457611c34611b09565b604052919050565b5f60208284031215611c4c575f5ffd5b815167ffffffffffffffff811115611c62575f5ffd5b8201601f81018413611c72575f5ffd5b805167ffffffffffffffff811115611c8c57611c8c611b09565b611cbd60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611bed565b818152856020838501011115611cd1575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215611cfe575f5ffd5b815167ffffffffffffffff811115611d14575f5ffd5b8201601f81018413611d24575f5ffd5b805167ffffffffffffffff811115611d3e57611d3e611b09565b8060051b611d4e60208201611bed565b91825260208184018101929081019087841115611d69575f5ffd5b6020850194505b83851015611d975784519250611d85836117d2565b82825260209485019490910190611d70565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561030257610302611da2565b8181038181111561030257610302611da2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd";
642
591
 
643
592
  type EntitlementsManagerConstructorParams =
644
593
  | [signer?: Signer]
@@ -75,9 +75,19 @@ const _abi = [
75
75
  internalType: "bytes32[]",
76
76
  },
77
77
  {
78
- name: "clients",
79
- type: "address[]",
80
- internalType: "address[]",
78
+ name: "client",
79
+ type: "address",
80
+ internalType: "address",
81
+ },
82
+ {
83
+ name: "installPrice",
84
+ type: "uint256",
85
+ internalType: "uint256",
86
+ },
87
+ {
88
+ name: "accessDuration",
89
+ type: "uint64",
90
+ internalType: "uint64",
81
91
  },
82
92
  ],
83
93
  },
@@ -98,33 +108,26 @@ const _abi = [
98
108
  },
99
109
  {
100
110
  type: "function",
101
- name: "getAppSchema",
102
- inputs: [],
103
- outputs: [
111
+ name: "getAppByClient",
112
+ inputs: [
104
113
  {
105
- name: "",
106
- type: "string",
107
- internalType: "string",
114
+ name: "client",
115
+ type: "address",
116
+ internalType: "address",
108
117
  },
109
118
  ],
110
- stateMutability: "view",
111
- },
112
- {
113
- type: "function",
114
- name: "getAppSchemaId",
115
- inputs: [],
116
119
  outputs: [
117
120
  {
118
121
  name: "",
119
- type: "bytes32",
120
- internalType: "bytes32",
122
+ type: "address",
123
+ internalType: "address",
121
124
  },
122
125
  ],
123
126
  stateMutability: "view",
124
127
  },
125
128
  {
126
129
  type: "function",
127
- name: "getAttestation",
130
+ name: "getAppById",
128
131
  inputs: [
129
132
  {
130
133
  name: "appId",
@@ -136,63 +139,125 @@ const _abi = [
136
139
  {
137
140
  name: "",
138
141
  type: "tuple",
139
- internalType: "struct Attestation",
142
+ internalType: "struct IAppRegistryBase.App",
140
143
  components: [
141
144
  {
142
- name: "uid",
145
+ name: "appId",
143
146
  type: "bytes32",
144
147
  internalType: "bytes32",
145
148
  },
146
149
  {
147
- name: "schema",
148
- type: "bytes32",
149
- internalType: "bytes32",
150
- },
151
- {
152
- name: "time",
153
- type: "uint64",
154
- internalType: "uint64",
155
- },
156
- {
157
- name: "expirationTime",
158
- type: "uint64",
159
- internalType: "uint64",
160
- },
161
- {
162
- name: "revocationTime",
163
- type: "uint64",
164
- internalType: "uint64",
165
- },
166
- {
167
- name: "refUID",
168
- type: "bytes32",
169
- internalType: "bytes32",
150
+ name: "module",
151
+ type: "address",
152
+ internalType: "address",
170
153
  },
171
154
  {
172
- name: "recipient",
155
+ name: "owner",
173
156
  type: "address",
174
157
  internalType: "address",
175
158
  },
176
159
  {
177
- name: "attester",
160
+ name: "client",
178
161
  type: "address",
179
162
  internalType: "address",
180
163
  },
181
164
  {
182
- name: "revocable",
183
- type: "bool",
184
- internalType: "bool",
165
+ name: "permissions",
166
+ type: "bytes32[]",
167
+ internalType: "bytes32[]",
185
168
  },
186
169
  {
187
- name: "data",
188
- type: "bytes",
189
- internalType: "bytes",
170
+ name: "manifest",
171
+ type: "tuple",
172
+ internalType: "struct ExecutionManifest",
173
+ components: [
174
+ {
175
+ name: "executionFunctions",
176
+ type: "tuple[]",
177
+ internalType: "struct ManifestExecutionFunction[]",
178
+ components: [
179
+ {
180
+ name: "executionSelector",
181
+ type: "bytes4",
182
+ internalType: "bytes4",
183
+ },
184
+ {
185
+ name: "skipRuntimeValidation",
186
+ type: "bool",
187
+ internalType: "bool",
188
+ },
189
+ {
190
+ name: "allowGlobalValidation",
191
+ type: "bool",
192
+ internalType: "bool",
193
+ },
194
+ ],
195
+ },
196
+ {
197
+ name: "executionHooks",
198
+ type: "tuple[]",
199
+ internalType: "struct ManifestExecutionHook[]",
200
+ components: [
201
+ {
202
+ name: "executionSelector",
203
+ type: "bytes4",
204
+ internalType: "bytes4",
205
+ },
206
+ {
207
+ name: "entityId",
208
+ type: "uint32",
209
+ internalType: "uint32",
210
+ },
211
+ {
212
+ name: "isPreHook",
213
+ type: "bool",
214
+ internalType: "bool",
215
+ },
216
+ {
217
+ name: "isPostHook",
218
+ type: "bool",
219
+ internalType: "bool",
220
+ },
221
+ ],
222
+ },
223
+ {
224
+ name: "interfaceIds",
225
+ type: "bytes4[]",
226
+ internalType: "bytes4[]",
227
+ },
228
+ ],
190
229
  },
191
230
  ],
192
231
  },
193
232
  ],
194
233
  stateMutability: "view",
195
234
  },
235
+ {
236
+ type: "function",
237
+ name: "getAppSchema",
238
+ inputs: [],
239
+ outputs: [
240
+ {
241
+ name: "",
242
+ type: "string",
243
+ internalType: "string",
244
+ },
245
+ ],
246
+ stateMutability: "view",
247
+ },
248
+ {
249
+ type: "function",
250
+ name: "getAppSchemaId",
251
+ inputs: [],
252
+ outputs: [
253
+ {
254
+ name: "",
255
+ type: "bytes32",
256
+ internalType: "bytes32",
257
+ },
258
+ ],
259
+ stateMutability: "view",
260
+ },
196
261
  {
197
262
  type: "function",
198
263
  name: "getLatestAppId",
@@ -212,6 +277,29 @@ const _abi = [
212
277
  ],
213
278
  stateMutability: "view",
214
279
  },
280
+ {
281
+ type: "function",
282
+ name: "installApp",
283
+ inputs: [
284
+ {
285
+ name: "app",
286
+ type: "address",
287
+ internalType: "contract ITownsApp",
288
+ },
289
+ {
290
+ name: "account",
291
+ type: "address",
292
+ internalType: "contract IAppAccount",
293
+ },
294
+ {
295
+ name: "data",
296
+ type: "bytes",
297
+ internalType: "bytes",
298
+ },
299
+ ],
300
+ outputs: [],
301
+ stateMutability: "payable",
302
+ },
215
303
  {
216
304
  type: "function",
217
305
  name: "isAppBanned",
@@ -238,12 +326,12 @@ const _abi = [
238
326
  {
239
327
  name: "app",
240
328
  type: "address",
241
- internalType: "address",
329
+ internalType: "contract ITownsApp",
242
330
  },
243
331
  {
244
- name: "clients",
245
- type: "address[]",
246
- internalType: "address[]",
332
+ name: "client",
333
+ type: "address",
334
+ internalType: "address",
247
335
  },
248
336
  ],
249
337
  outputs: [
@@ -265,13 +353,30 @@ const _abi = [
265
353
  internalType: "bytes32",
266
354
  },
267
355
  ],
268
- outputs: [
356
+ outputs: [],
357
+ stateMutability: "nonpayable",
358
+ },
359
+ {
360
+ type: "function",
361
+ name: "uninstallApp",
362
+ inputs: [
269
363
  {
270
- name: "",
271
- type: "bytes32",
272
- internalType: "bytes32",
364
+ name: "app",
365
+ type: "address",
366
+ internalType: "contract ITownsApp",
367
+ },
368
+ {
369
+ name: "account",
370
+ type: "address",
371
+ internalType: "contract IAppAccount",
372
+ },
373
+ {
374
+ name: "data",
375
+ type: "bytes",
376
+ internalType: "bytes",
273
377
  },
274
378
  ],
379
+ outputs: [],
275
380
  stateMutability: "nonpayable",
276
381
  },
277
382
  {
@@ -312,6 +417,31 @@ const _abi = [
312
417
  ],
313
418
  anonymous: false,
314
419
  },
420
+ {
421
+ type: "event",
422
+ name: "AppInstalled",
423
+ inputs: [
424
+ {
425
+ name: "app",
426
+ type: "address",
427
+ indexed: true,
428
+ internalType: "address",
429
+ },
430
+ {
431
+ name: "account",
432
+ type: "address",
433
+ indexed: true,
434
+ internalType: "address",
435
+ },
436
+ {
437
+ name: "appId",
438
+ type: "bytes32",
439
+ indexed: true,
440
+ internalType: "bytes32",
441
+ },
442
+ ],
443
+ anonymous: false,
444
+ },
315
445
  {
316
446
  type: "event",
317
447
  name: "AppRegistered",
@@ -344,6 +474,31 @@ const _abi = [
344
474
  ],
345
475
  anonymous: false,
346
476
  },
477
+ {
478
+ type: "event",
479
+ name: "AppUninstalled",
480
+ inputs: [
481
+ {
482
+ name: "app",
483
+ type: "address",
484
+ indexed: true,
485
+ internalType: "address",
486
+ },
487
+ {
488
+ name: "account",
489
+ type: "address",
490
+ indexed: true,
491
+ internalType: "address",
492
+ },
493
+ {
494
+ name: "appId",
495
+ type: "bytes32",
496
+ indexed: true,
497
+ internalType: "bytes32",
498
+ },
499
+ ],
500
+ anonymous: false,
501
+ },
347
502
  {
348
503
  type: "event",
349
504
  name: "AppUnregistered",
@@ -392,6 +547,11 @@ const _abi = [
392
547
  name: "AppDoesNotImplementInterface",
393
548
  inputs: [],
394
549
  },
550
+ {
551
+ type: "error",
552
+ name: "AppNotInstalled",
553
+ inputs: [],
554
+ },
395
555
  {
396
556
  type: "error",
397
557
  name: "AppNotRegistered",
@@ -407,6 +567,16 @@ const _abi = [
407
567
  name: "BannedApp",
408
568
  inputs: [],
409
569
  },
570
+ {
571
+ type: "error",
572
+ name: "ClientAlreadyRegistered",
573
+ inputs: [],
574
+ },
575
+ {
576
+ type: "error",
577
+ name: "InsufficientPayment",
578
+ inputs: [],
579
+ },
410
580
  {
411
581
  type: "error",
412
582
  name: "InvalidAddressInput",
@@ -427,6 +597,21 @@ const _abi = [
427
597
  name: "InvalidArrayInput",
428
598
  inputs: [],
429
599
  },
600
+ {
601
+ type: "error",
602
+ name: "InvalidDuration",
603
+ inputs: [],
604
+ },
605
+ {
606
+ type: "error",
607
+ name: "InvalidPrice",
608
+ inputs: [],
609
+ },
610
+ {
611
+ type: "error",
612
+ name: "NotAllowed",
613
+ inputs: [],
614
+ },
430
615
  {
431
616
  type: "error",
432
617
  name: "NotAppOwner",