@0dotxyz/p0-ts-sdk 1.0.0 → 1.0.1

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/vendor/pyth_legacy/readBig.ts","../src/vendor/pyth_legacy/index.ts","../src/vendor/pyth_push_oracle/index.ts","../src/constants/program-keys.consts.ts","../src/vendor/spl/types/account.types.ts","../src/vendor/spl/errors.ts","../src/vendor/spl/utils/multisig.utils.ts","../src/vendor/spl/constants.ts","../src/vendor/spl/utils/account.utils.ts","../src/vendor/spl/utils/ata.utils.ts","../src/vendor/spl/utils/instruction.utils.ts","../src/vendor/spl/utils/mint.utils.ts","../src/vendor/spl/instructions.ts","../src/vendor/single-spl-pool/index.ts","../src/vendor/rpc-get-stake/index.ts","../src/vendor/switchboard_pull/idl.json","../src/vendor/switchboard_pull/index.ts","../src/vendor/klend/constants.ts","../src/vendor/klend/instructions.ts","../src/vendor/klend/klend.service.ts","../src/vendor/klend/utils/klend/serialize.utils.ts","../src/vendor/klend/idl/klend.json","../src/vendor/klend/idl/kfarms.json","../src/vendor/klend/idl/index.ts","../src/vendor/klend/utils/klend/deserialize.utils.ts","../src/vendor/klend/utils/klend/derive.utils.ts","../src/vendor/klend/classes/fraction.ts","../src/vendor/klend/utils/klend/interest-rate.utils.ts","../src/vendor/klend/utils/farms/reward.utils.ts","../src/vendor/klend/utils/farms/serialize.utils.ts","../src/vendor/klend/utils/farms/deserialize.utils.ts"],"names":["PriceStatus","CorpAction","AccountType","PriceType","parsePriceInfo","PublicKey","AccountState","SplAccountType","struct","publicKey","u8","ExtensionType","Buffer","u32","u64","bool","TokenInstruction","STAKE_CONFIG_ID","MINT_SIZE","SystemProgram","SYSVAR_RENT_PUBKEY","TransactionInstruction","BorshCoder","BN","Decimal","slotAdjustmentFactor","array","u128"],"mappings":";;;;;;;;;;;;;AAGA,IAAM,wBAAA,GAA2B,MAC/B,IAAI,KAAA,CAAM,gDAAgD,CAAA;AAG5D,IAAM,oBAAA,GAAuB,CAAC,IAAA,EAAc,QAAA,EAAkB,WAC5D,IAAI,KAAA;AAAA,EACF,CAAA,KAAA,EAAQ,IAAI,CAAA,2BAAA,EAA8B,QAAQ,cAAc,MAAM,CAAA;AACxE,CAAA;AAGF,IAAM,gBAAA,GAAmB,CAAC,GAAA,EAAa,KAAA,EAAe,aACpD,IAAI,KAAA;AAAA,EACF,CAAA,cAAA,EAAiB,GAAG,CAAA,6BAAA,EAAgC,KAAK,cAAc,QAAQ,CAAA;AACjF,CAAA;AAGF,SAAS,cAAA,CAAe,OAAY,IAAA,EAAc;AAChD,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA;AACnB,IAAA,MAAM,oBAAA,CAAqB,IAAA,EAAM,QAAA,EAAU,KAAK,CAAA;AACpD;AAGA,SAAS,WAAA,CAAY,OAAe,MAAA,EAAgB;AAClD,EAAA,IAAI,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,KAAM,KAAA,EAAO;AAC/B,IAAA,cAAA,CAAe,OAAO,QAAQ,CAAA;AAC9B,IAAA,MAAM,gBAAA,CAAiB,QAAA,EAAU,YAAA,EAAc,KAAK,CAAA;AAAA,EACtD;AAEA,EAAA,IAAI,MAAA,GAAS,CAAA,EAAG,MAAM,wBAAA,EAAyB;AAE/C,EAAA,MAAM,gBAAA,CAAiB,QAAA,EAAU,CAAA,YAAA,EAAe,MAAM,IAAI,KAAK,CAAA;AACjE;AAGO,SAAS,cAAA,CAAe,MAAA,EAAgB,MAAA,GAAS,CAAA,EAAW;AACjE,EAAA,cAAA,CAAe,QAAQ,QAAQ,CAAA;AAC/B,EAAA,MAAM,KAAA,GAAQ,OAAO,MAAM,CAAA;AAC3B,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AAC9B,EAAA,IAAI,KAAA,KAAU,UAAa,IAAA,KAAS,MAAA;AAClC,IAAA,WAAA,CAAY,MAAA,EAAQ,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AAEvC,EAAA,MAAM,MACJ,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA,GACjB,OAAO,MAAA,GAAS,CAAC,CAAA,GAAK,CAAA,IAAK,IAC3B,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA,GAAK,CAAA,IAAK,MAC1B,IAAA,IAAS,EAAA,CAAA;AACZ,EAAA,OAAA,CACG,MAAA,CAAO,GAAG,CAAA,IAAK,MAAA,CAAO,EAAE,CAAA;AAAA,EACzB,MAAA;AAAA,IACE,QACE,MAAA,CAAO,EAAE,MAAM,CAAA,GAAK,KAAK,CAAA,GACzB,MAAA,CAAO,EAAE,MAAM,IAAK,CAAA,IAAK,EAAA,GACzB,OAAO,EAAE,MAAM,IAAK,CAAA,IAAK;AAAA,GAC7B;AAEJ;AAGO,SAAS,eAAA,CAAgB,MAAA,EAAgB,MAAA,GAAS,CAAA,EAAW;AAClE,EAAA,cAAA,CAAe,QAAQ,QAAQ,CAAA;AAC/B,EAAA,MAAM,KAAA,GAAQ,OAAO,MAAM,CAAA;AAC3B,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AAC9B,EAAA,IAAI,KAAA,KAAU,UAAa,IAAA,KAAS,MAAA;AAClC,IAAA,WAAA,CAAY,MAAA,EAAQ,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AAEvC,EAAA,MAAM,KACJ,KAAA,GACA,MAAA,CAAO,EAAE,MAAM,CAAA,GAAK,KAAK,CAAA,GACzB,MAAA,CAAO,EAAE,MAAM,IAAK,CAAA,IAAK,EAAA,GACzB,OAAO,EAAE,MAAM,IAAK,CAAA,IAAK,EAAA;AAE3B,EAAA,MAAM,KACJ,MAAA,CAAO,EAAE,MAAM,CAAA,GACf,MAAA,CAAO,EAAE,MAAM,CAAA,GAAK,CAAA,IAAK,CAAA,GACzB,OAAO,EAAE,MAAM,IAAK,CAAA,IAAK,EAAA,GACzB,OAAQ,CAAA,IAAK,EAAA;AAEf,EAAA,OAAO,OAAO,EAAE,CAAA,IAAK,OAAO,EAAE,CAAA,IAAK,OAAO,EAAE,CAAA,CAAA;AAC9C;AC7EO,IAAM,mBAAA,GAAsB;AACnC,IAAM,aAAA,GAAgB,MAAA,CAAO,KAAA,CAAM,EAAE,CAAA;AACrC,IAAM,QAAA,GAAW,CAAC,IAAA,KAAkB,IAAA,CAAK,MAAA,CAAO,aAAa,CAAA,GAAI,IAAA,GAAO,IAAI,SAAA,CAAU,IAAI,CAAA;AAYnF,IAAK,WAAA,qBAAAA,YAAAA,KAAL;AACL,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AALU,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AAQL,IAAK,UAAA,qBAAAC,WAAAA,KAAL;AACL,EAAAA,WAAAA,CAAAA,WAAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAA;AADU,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAIZ,IAAM,cAAA,GAAiB,CAAC,IAAA,EAAc,QAAA,KAA4B;AAEhE,EAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,IAAA,EAAM,CAAC,CAAA;AAC7C,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,cAAc,CAAA,GAAI,EAAA,IAAM,QAAA;AAE7C,EAAA,MAAM,mBAAA,GAAsB,eAAA,CAAgB,IAAA,EAAM,CAAC,CAAA;AACnD,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,mBAAmB,CAAA,GAAI,EAAA,IAAM,QAAA;AAEvD,EAAA,MAAM,MAAA,GAAsB,IAAA,CAAK,YAAA,CAAa,EAAE,CAAA;AAEhD,EAAA,MAAM,eAAA,GAA8B,IAAA,CAAK,YAAA,CAAa,EAAE,CAAA;AAExD,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,eAAA,CAAgB,IAAA,EAAM,EAAE,CAAC,CAAA;AACpD,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,KAAA;AAAA,IACA,mBAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;AA4CO,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAA;AANU,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AASL,IAAK,SAAA,qBAAAC,UAAAA,KAAL;AACL,EAAAA,UAAAA,CAAAA,UAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AACA,EAAAA,UAAAA,CAAAA,UAAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA;AAFU,EAAA,OAAAA,UAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;AAwBL,IAAM,cAAA,GAAiB,CAAC,IAAA,EAAc,WAAA,KAAoC;AAE/E,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,YAAA,CAAa,CAAC,CAAA;AAEjC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,YAAA,CAAa,CAAC,CAAA;AAEnC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,YAAA,CAAa,CAAC,CAAA;AAEhC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,YAAA,CAAa,EAAE,CAAA;AAEjC,EAAA,MAAM,SAAA,GAAuB,IAAA,CAAK,YAAA,CAAa,EAAE,CAAA;AAEjD,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,WAAA,CAAY,EAAE,CAAA;AAEpC,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,YAAA,CAAa,EAAE,CAAA;AAE/C,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,YAAA,CAAa,EAAE,CAAA;AAEvC,EAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,IAAA,EAAM,EAAE,CAAA;AAEzC,EAAA,MAAM,SAAA,GAAY,eAAA,CAAgB,IAAA,EAAM,EAAE,CAAA;AAE1C,EAAA,MAAM,WAAW,QAAA,CAAS,IAAA,CAAK,MAAM,EAAA,EAAI,EAAE,GAAG,QAAQ,CAAA;AAEtD,EAAA,MAAM,gBAAgB,QAAA,CAAS,IAAA,CAAK,MAAM,EAAA,EAAI,EAAE,GAAG,QAAQ,CAAA;AAE3D,EAAA,MAAM,SAAA,GAAY,cAAA,CAAe,IAAA,EAAM,EAAE,CAAA;AAEzC,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,SAAA,CAAU,GAAG,CAAA;AAExC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA;AAE9B,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,WAAA,CAAY,GAAG,CAAA;AAEjC,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,WAAA,CAAY,GAAG,CAAA;AAEjC,EAAA,MAAM,oBAAoB,IAAI,SAAA,CAAU,KAAK,KAAA,CAAM,GAAA,EAAK,GAAG,CAAC,CAAA;AAE5D,EAAA,MAAM,sBAAsB,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,GAAA,EAAK,GAAG,CAAC,CAAA;AAEzD,EAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,IAAA,EAAM,GAAG,CAAA;AAE9C,EAAA,MAAM,sBAAA,GAAyB,cAAA,CAAe,IAAA,EAAM,GAAG,CAAA;AACvD,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,sBAAsB,CAAA,GAAI,EAAA,IAAM,QAAA;AAE7D,EAAA,MAAM,2BAAA,GAA8B,eAAA,CAAgB,IAAA,EAAM,GAAG,CAAA;AAC7D,EAAA,MAAM,kBAAA,GAAqB,MAAA,CAAO,2BAA2B,CAAA,GAAI,EAAA,IAAM,QAAA;AAEvE,EAAA,MAAM,iBAAA,GAAoB,cAAA,CAAe,IAAA,EAAM,GAAG,CAAA;AAClD,EAAA,MAAM,YAAY,cAAA,CAAe,IAAA,CAAK,MAAM,GAAA,EAAK,GAAG,GAAG,QAAQ,CAAA;AAE/D,EAAA,IAAI,SAAS,SAAA,CAAU,MAAA;AAEvB,EAAA,IAAI,WAAA,IAAe,WAAW,CAAA,gBAAqB;AACjD,IAAA,IAAI,WAAA,GAAc,SAAA,CAAU,WAAA,GAAc,mBAAA,EAAqB;AAC7D,MAAA,MAAA,GAAS,CAAA;AAAA,IACX;AAAA,EACF;AAEA,EAAA,IAAI,KAAA;AACJ,EAAA,IAAI,UAAA;AACJ,EAAA,IAAI,WAAW,CAAA,gBAAqB;AAClC,IAAA,KAAA,GAAQ,SAAA,CAAU,KAAA;AAClB,IAAA,UAAA,GAAa,SAAA,CAAU,UAAA;AAAA,EACzB;AAGA,EAAA,MAAM,kBAAoC,EAAC;AAC3C,EAAA,IAAI,MAAA,GAAS,GAAA;AACb,EAAA,OAAO,eAAA,CAAgB,SAAS,kBAAA,EAAoB;AAClD,IAAA,MAAM,SAAA,GAAY,IAAI,SAAA,CAAU,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AAC/D,IAAA,MAAA,IAAU,EAAA;AACV,IAAA,MAAM,kBAAA,GAAqB,eAAe,IAAA,CAAK,KAAA,CAAM,QAAQ,MAAA,GAAS,EAAE,GAAG,QAAQ,CAAA;AACnF,IAAA,MAAA,IAAU,EAAA;AACV,IAAA,MAAM,MAAA,GAAS,eAAe,IAAA,CAAK,KAAA,CAAM,QAAQ,MAAA,GAAS,EAAE,GAAG,QAAQ,CAAA;AACvE,IAAA,MAAA,IAAU,EAAA;AACV,IAAA,eAAA,CAAgB,KAAK,EAAE,SAAA,EAAW,SAAA,EAAW,kBAAA,EAAoB,QAAQ,CAAA;AAAA,EAC3E;AAEA,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,kBAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,iBAAA;AAAA,IACA,mBAAA;AAAA,IACA,YAAA;AAAA,IACA,sBAAA;AAAA,IACA,aAAA;AAAA,IACA,2BAAA;AAAA,IACA,kBAAA;AAAA,IACA,iBAAA;AAAA,IACA,SAAA;AAAA,IACA,eAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AACF;AAEA,IAAM,QAAA,GAAW,CAAC,IAAA,EAAc,QAAA,KAA0B;AAExD,EAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,IAAA,EAAM,CAAC,CAAA;AAC7C,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,cAAc,CAAA,GAAI,EAAA,IAAM,QAAA;AAE7C,EAAA,MAAM,SAAA,GAAY,cAAA,CAAe,IAAA,EAAM,CAAC,CAAA;AAExC,EAAA,MAAM,WAAA,GAAc,cAAA,CAAe,IAAA,EAAM,EAAE,CAAA;AAC3C,EAAA,OAAO,EAAE,cAAA,EAAgB,KAAA,EAAO,SAAA,EAAW,WAAA,EAAY;AACzD,CAAA;ACvOA,IAAM,mBAAA,GAAsB;AAAA,EAC1B,MAAA,EAAQ;AAAA,IACN,cAAA,EAAgB;AAAA,MACd,KAAA,EAAO,EAAE,IAAA,EAAM,IAAA,EAAM,KAAK,EAAA;AAAG,KAC/B;AAAA,IACA,iBAAA,EAAmB,IAAA;AAAA,IACnB,YAAA,EAAc;AAAA,MACZ,MAAA,EAAQ;AAAA,QACN,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAE,MAAM,IAAA,EAAM,GAAA,EAAK,IAAG,EAAE;AAAA,QACzC,KAAA,EAAO,KAAA;AAAA,QACP,IAAA,EAAM,KAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,WAAA,EAAa,KAAA;AAAA,QACb,eAAA,EAAiB,KAAA;AAAA,QACjB,QAAA,EAAU,KAAA;AAAA,QACV,OAAA,EAAS;AAAA;AACX,KACF;AAAA,IACA,UAAA,EAAY;AAAA;AAEhB,CAAA;AAEO,IAAMC,eAAAA,GAAiB,CAAC,IAAA,KAAgC;AAC7D,EAAA,IAAI,OAAA,GAAyB,WAAA,CAAY,mBAAA,EAAqB,IAAI,CAAA;AAClE,EAAA,OAAO,OAAA;AACT;AC3C6C,IAAIC,SAAAA;AAAA,EAC/C;AACF;AACO,IAAM,yBAAoC,IAAIA,SAAAA;AAAA,EACnD;AACF,CAAA;AACO,IAAM,mBAA8B,IAAIA,SAAAA;AAAA,EAC7C;AACF,CAAA;AACO,IAAM,0BAAqC,IAAIA,SAAAA;AAAA,EACpD;AACF,CAAA;AACO,IAAM,iBAAA,GAA+B,IAAIA,SAAAA,CAAU,kCAAkC,CAAA;AACrF,IAAM,iBAA4B,IAAIA,SAAAA;AAAA,EAC3C;AACF,CAAA;AACO,IAAM,kBAA6B,IAAIA,SAAAA;AAAA,EAC5C;AACF,CAAA;AACO,IAAM,0BAAqC,IAAIA,SAAAA;AAAA,EACpD;AACF,CAAA;AAC0C,IAAIA,SAAAA;AAAA,EAC5C;AACF;;;ACOO,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACL,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,mBAAgB,CAAA,CAAA,GAAhB,eAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,iBAAc,CAAA,CAAA,GAAd,aAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,YAAS,CAAA,CAAA,GAAT,QAAA;AAHU,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;;;AChCL,IAAe,UAAA,GAAf,cAAkC,KAAA,CAAM;AAAA,EAC7C,YAAY,OAAA,EAAkB;AAC5B,IAAA,KAAA,CAAM,OAAO,CAAA;AAAA,EACf;AACF;AAGO,IAAM,yBAAA,GAAN,cAAwC,UAAA,CAAW;AAAA,EACxD,IAAA,GAAO,2BAAA;AACT;AAGO,IAAM,wBAAA,GAAN,cAAuC,UAAA,CAAW;AAAA,EACvD,IAAA,GAAO,0BAAA;AACT;AAGO,IAAM,6BAAA,GAAN,cAA4C,UAAA,CAAW;AAAA,EAC5D,IAAA,GAAO,+BAAA;AACT;AAGO,IAAM,4BAAA,GAAN,cAA2C,UAAA,CAAW;AAAA,EAC3D,IAAA,GAAO,8BAAA;AACT;AAGO,IAAM,qBAAA,GAAN,cAAoC,UAAA,CAAW;AAAA,EACpD,IAAA,GAAO,uBAAA;AACT;AAGO,IAAM,sBAAA,GAAN,cAAqC,UAAA,CAAW;AAAA,EACrD,IAAA,GAAO,wBAAA;AACT;AAGO,IAAM,uBAAA,GAAN,cAAsC,UAAA,CAAW;AAAA,EACtD,IAAA,GAAO,yBAAA;AACT;AAGO,IAAM,mCAAA,GAAN,cAAkD,UAAA,CAAW;AAAA,EAClE,IAAA,GAAO,qCAAA;AACT;AAGO,IAAM,gCAAA,GAAN,cAA+C,UAAA,CAAW;AAAA,EAC/D,IAAA,GAAO,kCAAA;AACT;AAGO,IAAM,gCAAA,GAAN,cAA+C,UAAA,CAAW;AAAA,EAC/D,IAAA,GAAO,kCAAA;AACT;AAGO,IAAM,gCAAA,GAAN,cAA+C,UAAA,CAAW;AAAA,EAC/D,IAAA,GAAO,kCAAA;AACT;AAGO,IAAM,gCAAA,GAAN,cAA+C,UAAA,CAAW;AAAA,EAC/D,IAAA,GAAO,kCAAA;AACT;ACxDO,IAAM,iBAAiB,MAAA,CAAoB;AAAA,EAChD,GAAG,GAAG,CAAA;AAAA,EACN,GAAG,GAAG,CAAA;AAAA,EACN,KAAK,eAAe,CAAA;AAAA,EACpB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,SAAS,CAAA;AAAA,EACnB,UAAU,UAAU,CAAA;AAAA,EACpB,UAAU,UAAU;AACtB,CAAC;AAGM,IAAM,gBAAgB,cAAA,CAAe;ACzBrC,IAAM,kBAA6B,IAAID,SAAAA;AAAA,EAC5C;AACF;AAGO,IAAM,8BAAyC,IAAIA,SAAAA;AAAA,EACxD;AACF;AAEO,IAAM,gBAAA,GAAmB,IAAIA,SAAAA,CAAU,6CAA6C;AACpF,IAAM,qBAAA,GAAwB,IAAIA,SAAAA,CAAU,6CAA6C;;;ACGzF,IAAK,cAAA,qBAAAE,eAAAA,KAAL;AACL,EAAAA,eAAAA,CAAAA,eAAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAA;AACA,EAAAA,eAAAA,CAAAA,eAAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAA;AACA,EAAAA,eAAAA,CAAAA,eAAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAA;AAHU,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAML,IAAM,iBAAA,GAAoB;AAG1B,IAAM,gBAAgBC,MAAAA,CAAmB;AAAA,EAC9CC,UAAU,MAAM,CAAA;AAAA,EAChBA,UAAU,OAAO,CAAA;AAAA,EACjB,IAAI,QAAQ,CAAA;AAAA,EACZ,IAAI,gBAAgB,CAAA;AAAA,EACpBA,UAAU,UAAU,CAAA;AAAA,EACpBC,GAAG,OAAO,CAAA;AAAA,EACV,IAAI,gBAAgB,CAAA;AAAA,EACpB,IAAI,UAAU,CAAA;AAAA,EACd,IAAI,iBAAiB,CAAA;AAAA,EACrB,IAAI,sBAAsB,CAAA;AAAA,EAC1BD,UAAU,gBAAgB;AAC5B,CAAC;AAGM,IAAM,eAAe,aAAA,CAAc;AAEnC,IAAM,WAAA,GAAc,IAAIJ,SAAAA,CAAU,6CAA6C;AAYtF,eAAsB,UAAA,CACpB,UAAA,EACA,OAAA,EACA,UAAA,EACA,YAAY,gBAAA,EACM;AAClB,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,cAAA,CAAe,SAAS,UAAU,CAAA;AAChE,EAAA,OAAO,aAAA,CAAc,OAAA,EAAS,IAAA,EAAM,SAAS,CAAA;AAC/C;AAYA,eAAsB,mBAAA,CACpB,UAAA,EACA,SAAA,EACA,UAAA,EACA,YAAY,gBAAA,EACQ;AACpB,EAAA,MAAM,KAAA,GAAQ,MAAM,UAAA,CAAW,uBAAA,CAAwB,WAAW,UAAU,CAAA;AAC5E,EAAA,OAAO,SAAA,CAAU,GAAA;AAAA,IAAI,CAAC,OAAA,EAAS,CAAA;AAAA;AAAA,MAE7B,aAAA,CAAc,OAAA,EAAS,KAAA,CAAM,CAAC,GAAG,SAAS;AAAA;AAAA,GAC5C;AACF;AASA,eAAsB,qCAAA,CACpB,YACA,UAAA,EACiB;AACjB,EAAA,OAAO,MAAM,mDAAA,CAAoD,UAAA,EAAY,IAAI,UAAU,CAAA;AAC7F;AAEO,IAAK,aAAA,qBAAAM,cAAAA,KAAL;AACL,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,0BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,0BAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,6BAAA,CAAA,GAAA,CAAA,CAAA,GAAA,6BAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAA;AACA,EAAAA,cAAAA,CAAAA,cAAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAA;AAXU,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAcL,SAAS,cAAc,cAAA,EAAyC;AACrE,EAAA,OAAO,MAAA,CAAO,gBAAgB,YAAY,CAAA;AAC5C;AAEO,IAAM,SAAA,GAAY;AAClB,IAAM,WAAA,GAAc;AAE3B,SAAS,MAAA,CAAO,gBAAiC,QAAA,EAA0B;AACzE,EAAA,IAAI,cAAA,CAAe,WAAW,CAAA,EAAG;AAC/B,IAAA,OAAO,QAAA;AAAA,EACT,CAAA,MAAO;AACL,IAAA,MAAM,gBAAgB,YAAA,GAAe,iBAAA;AACrC,IAAA,IAAI,kBAAkB,aAAA,EAAe;AACnC,MAAA,OAAO,aAAA,GAAgB,SAAA;AAAA,IACzB,CAAA,MAAO;AACL,MAAA,OAAO,aAAA;AAAA,IACT;AAAA,EACF;AACF;AAUA,eAAsB,mDAAA,CACpB,UAAA,EACA,UAAA,EACA,UAAA,EACiB;AACjB,EAAA,MAAM,UAAA,GAAa,cAAc,UAAU,CAAA;AAC3C,EAAA,OAAO,MAAM,UAAA,CAAW,iCAAA,CAAkC,UAAA,EAAY,UAAU,CAAA;AAClF;AAWO,SAAS,aAAA,CACd,OAAA,EACA,IAAA,EACA,SAAA,GAAY,gBAAA,EACH;AACT,EAAA,IAAI,CAAC,IAAA,EAAM,MAAM,IAAI,yBAAA,EAA0B;AAC/C,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,MAAA,CAAO,SAAS,CAAA,EAAG,MAAM,IAAI,6BAAA,EAA8B;AAC3E,EAAA,IAAI,KAAK,IAAA,CAAK,MAAA,GAAS,YAAA,EAAc,MAAM,IAAI,4BAAA,EAA6B;AAE5E,EAAA,MAAM,UAAA,GAAa,cAAc,MAAA,CAAO,IAAA,CAAK,KAAK,KAAA,CAAM,CAAA,EAAG,YAAY,CAAC,CAAA;AACxE,EAAA,IAAI,OAAA,GAAUC,QAAAA,CAAO,KAAA,CAAM,CAAC,CAAA;AAC5B,EAAA,IAAI,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,YAAA,EAAc;AACnC,IAAA,IAAI,KAAK,IAAA,CAAK,MAAA,KAAW,aAAA,EAAe,MAAM,IAAI,4BAAA,EAA6B;AAC/E,IAAA,IAAI,KAAK,IAAA,CAAK,YAAY,KAAK,CAAA,gBAAwB,MAAM,IAAI,wBAAA,EAAyB;AAC1F,IAAA,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,YAAA,GAAe,iBAAiB,CAAA;AAAA,EAC5D;AAEA,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,MAAM,UAAA,CAAW,IAAA;AAAA,IACjB,OAAO,UAAA,CAAW,KAAA;AAAA,IAClB,QAAQ,UAAA,CAAW,MAAA;AAAA,IACnB,QAAA,EAAU,UAAA,CAAW,cAAA,GAAiB,UAAA,CAAW,QAAA,GAAW,IAAA;AAAA,IAC5D,iBAAiB,UAAA,CAAW,eAAA;AAAA,IAC5B,eAAe,UAAA,CAAW,KAAA,KAAA,CAAA;AAAA,IAC1B,UAAU,UAAA,CAAW,KAAA,KAAA,CAAA;AAAA,IACrB,QAAA,EAAU,CAAC,CAAC,UAAA,CAAW,cAAA;AAAA,IACvB,iBAAA,EAAmB,UAAA,CAAW,cAAA,GAAiB,UAAA,CAAW,QAAA,GAAW,IAAA;AAAA,IACrE,cAAA,EAAgB,UAAA,CAAW,oBAAA,GAAuB,UAAA,CAAW,cAAA,GAAiB,IAAA;AAAA,IAC9E;AAAA,GACF;AACF;AC/KO,SAAS,6BAAA,CACd,MACA,KAAA,EACA,kBAAA,GAAqB,OACrB,SAAA,GAAY,gBAAA,EACZ,2BAA2B,2BAAA,EAChB;AACX,EAAA,IAAI,CAAC,kBAAA,IAAsB,CAACP,UAAU,SAAA,CAAU,KAAA,CAAM,UAAU,CAAA;AAC9D,IAAA,MAAM,IAAI,uBAAA,EAAwB;AAEpC,EAAA,MAAM,CAAC,OAAO,CAAA,GAAIA,SAAAA,CAAU,sBAAA;AAAA,IAC1B,CAAC,MAAM,QAAA,EAAS,EAAG,UAAU,QAAA,EAAS,EAAG,IAAA,CAAK,QAAA,EAAU,CAAA;AAAA,IACxD;AAAA,GACF;AAEA,EAAA,OAAO,OAAA;AACT;;;AC7BO,SAAS,UAAA,CACd,IAAA,EACA,gBAAA,EACA,YAAA,EACe;AACf,EAAA,IAAI,aAAa,MAAA,EAAQ;AACvB,IAAA,IAAA,CAAK,IAAA,CAAK,EAAE,MAAA,EAAQ,gBAAA,EAAkB,UAAU,KAAA,EAAO,UAAA,EAAY,OAAO,CAAA;AAC1E,IAAA,KAAA,MAAW,UAAU,YAAA,EAAc;AACjC,MAAA,IAAA,CAAK,IAAA,CAAK;AAAA,QACR,QAAQ,MAAA,CAAO,SAAA;AAAA,QACf,QAAA,EAAU,IAAA;AAAA,QACV,UAAA,EAAY;AAAA,OACb,CAAA;AAAA,IACH;AAAA,EACF,CAAA,MAAO;AACL,IAAA,IAAA,CAAK,IAAA,CAAK,EAAE,MAAA,EAAQ,gBAAA,EAAkB,UAAU,IAAA,EAAM,UAAA,EAAY,OAAO,CAAA;AAAA,EAC3E;AACA,EAAA,OAAO,IAAA;AACT;ACRO,IAAM,aAAaG,MAAAA,CAAgB;AAAA,EACxCK,IAAI,qBAAqB,CAAA;AAAA,EACzBJ,UAAU,eAAe,CAAA;AAAA,EACzBK,IAAI,QAAQ,CAAA;AAAA,EACZJ,GAAG,UAAU,CAAA;AAAA,EACbK,KAAK,eAAe,CAAA;AAAA,EACpBF,IAAI,uBAAuB,CAAA;AAAA,EAC3BJ,UAAU,iBAAiB;AAC7B,CAAC;AAGM,IAAM,YAAY,UAAA,CAAW;AAYpC,eAAsB,OAAA,CACpB,UAAA,EACA,OAAA,EACA,UAAA,EACA,YAAY,gBAAA,EACG;AACf,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,cAAA,CAAe,SAAS,UAAU,CAAA;AAChE,EAAA,IAAI,CAAC,IAAA,EAAM,MAAM,IAAI,yBAAA,EAA0B;AAC/C,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,MAAA,CAAO,SAAS,CAAA,EAAG,MAAM,IAAI,6BAAA,EAA8B;AAC3E,EAAA,IAAI,KAAK,IAAA,CAAK,MAAA,IAAU,SAAA,EAAW,MAAM,IAAI,4BAAA,EAA6B;AAE1E,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAE3C,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,aAAA,EAAe,OAAA,CAAQ,mBAAA,GAAsB,OAAA,CAAQ,aAAA,GAAgB,IAAA;AAAA,IACrE,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,eAAe,OAAA,CAAQ,aAAA;AAAA,IACvB,eAAA,EAAiB,OAAA,CAAQ,qBAAA,GAAwB,OAAA,CAAQ,eAAA,GAAkB;AAAA,GAC7E;AACF;ACvBO,SAAS,qBAAA,CACd,MACA,aAAA,EACwB;AACxB,EAAA,MAAM,IAAA,GACJ,iBAAiB,IAAA,GACb,KACA,aAAA,CAAc,GAAA,CAAI,SAAU,GAAA,EAAK;AAC/B,IAAA,OAAO,EAAE,MAAA,EAAQ,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,YAAY,KAAA,EAAM;AAAA,EAC1D,CAAC,CAAA;AAEP,EAAA,OAAO,IAAI,sBAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,eAAA;AAAA,IACX,IAAA,EAAMG,QAAAA,CAAO,IAAA,CAAK,IAAA,EAAM,MAAM;AAAA,GAC/B,CAAA;AACH;AAGO,IAAK,gBAAA,qBAAAI,iBAAAA,KAAL;AACL,EAAAA,iBAAAA,CAAAA,iBAAAA,CAAA,uBAAoB,CAAA,CAAA,GAApB,mBAAA;AACA,EAAAA,iBAAAA,CAAAA,iBAAAA,CAAA,qBAAkB,EAAA,CAAA,GAAlB,iBAAA;AACA,EAAAA,iBAAAA,CAAAA,iBAAAA,CAAA,kBAAe,CAAA,CAAA,GAAf,cAAA;AACA,EAAAA,iBAAAA,CAAAA,iBAAAA,CAAA,gBAAa,EAAA,CAAA,GAAb,YAAA;AAJU,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAYL,IAAM,mCAAmCR,MAAAA,CAAyC;AAAA,EACvFE,GAAG,aAAa;AAClB,CAAC;AAYM,SAAS,kCAAA,CACd,OAAA,EACA,IAAA,EACA,KAAA,EACA,YAAY,gBAAA,EACY;AACxB,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,EAAE,MAAA,EAAQ,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACrD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACnD,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACpD,EAAE,MAAA,EAAQ,kBAAA,EAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,GACnE;AAEA,EAAA,MAAM,IAAA,GAAOE,QAAAA,CAAO,KAAA,CAAM,gCAAA,CAAiC,IAAI,CAAA;AAC/D,EAAA,gCAAA,CAAiC,MAAA;AAAA,IAC/B,EAAE,aAAa,CAAA,0BAAmC;AAAA,IAClD;AAAA,GACF;AAEA,EAAA,OAAO,IAAI,sBAAA,CAAuB,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,CAAA;AAC7D;AAcO,SAAS,uCAAA,CACd,OACA,eAAA,EACA,KAAA,EACA,MACA,SAAA,GAAY,gBAAA,EACZ,2BAA2B,2BAAA,EACH;AACxB,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IAClD,EAAE,MAAA,EAAQ,eAAA,EAAiB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACpD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACnD,EAAE,MAAA,EAAQ,aAAA,CAAc,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACtE,EAAE,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACxD,EAAE,MAAA,EAAQ,kBAAA,EAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,GACnE;AAEA,EAAA,OAAO,IAAI,sBAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,wBAAA;AAAA,IACX,IAAA,EAAMA,QAAAA,CAAO,KAAA,CAAM,CAAC;AAAA,GACrB,CAAA;AACH;AAcO,SAAS,iDAAA,CACd,OACA,eAAA,EACA,KAAA,EACA,MACA,SAAA,GAAY,gBAAA,EACZ,2BAA2B,2BAAA,EACH;AACxB,EAAA,OAAO,sCAAA;AAAA,IACL,KAAA;AAAA,IACA,eAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACAA,QAAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AAAA,IACf,SAAA;AAAA,IACA;AAAA,GACF;AACF;AAQO,IAAM,4BAA4BJ,MAAAA,CAAkC,CAACE,EAAAA,CAAG,aAAa,CAAC,CAAC;AAUvF,SAAS,2BAAA,CACd,OAAA,EACA,SAAA,GAAY,gBAAA,EACY;AACxB,EAAA,MAAM,IAAA,GAAO,CAAC,EAAE,MAAA,EAAQ,SAAS,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAA,EAAM,CAAA;AAEpE,EAAA,MAAM,IAAA,GAAOE,QAAAA,CAAO,KAAA,CAAM,yBAAA,CAA0B,IAAI,CAAA;AACxD,EAAA,yBAAA,CAA0B,MAAA,CAAO,EAAE,WAAA,EAAa,EAAA,qBAA+B,IAAI,CAAA;AAEnF,EAAA,OAAO,IAAI,sBAAA,CAAuB,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,CAAA;AAC7D;AAQO,IAAM,8BAA8BJ,MAAAA,CAAoC,CAACE,EAAAA,CAAG,aAAa,CAAC,CAAC;AAa3F,SAAS,6BAAA,CACd,SACA,WAAA,EACA,SAAA,EACA,eAAyB,EAAC,EAC1B,YAAY,gBAAA,EACY;AACxB,EAAA,MAAM,IAAA,GAAO,UAAA;AAAA,IACX;AAAA,MACE,EAAE,MAAA,EAAQ,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,MACrD,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA;AAAK,KAC3D;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,IAAA,GAAOE,QAAAA,CAAO,KAAA,CAAM,2BAAA,CAA4B,IAAI,CAAA;AAC1D,EAAA,2BAAA,CAA4B,MAAA,CAAO,EAAE,WAAA,EAAa,CAAA,uBAAiC,IAAI,CAAA;AAEvF,EAAA,OAAO,IAAI,sBAAA,CAAuB,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,CAAA;AAC7D;AAEA,SAAS,sCAAA,CACP,OACA,eAAA,EACA,KAAA,EACA,MACA,eAAA,EACA,SAAA,GAAY,gBAAA,EACZ,wBAAA,GAA2B,2BAAA,EACH;AACxB,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IAClD,EAAE,MAAA,EAAQ,eAAA,EAAiB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACpD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACnD,EAAE,MAAA,EAAQ,aAAA,CAAc,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACtE,EAAE,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,GAC1D;AAEA,EAAA,OAAO,IAAI,sBAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,wBAAA;AAAA,IACX,IAAA,EAAM;AAAA,GACP,CAAA;AACH;AAUO,IAAM,iCAAiCJ,MAAAA,CAAuC;AAAA,EACnFE,GAAG,aAAa,CAAA;AAAA,EAChBI,IAAI,QAAQ,CAAA;AAAA,EACZJ,GAAG,UAAU;AACf,CAAC;AAgBM,SAAS,gCAAA,CACd,MAAA,EACA,IAAA,EACA,WAAA,EACA,KAAA,EACA,MAAA,EACA,QAAA,EACA,YAAA,GAAyB,EAAC,EAC1B,SAAA,GAAY,gBAAA,EACY;AACxB,EAAA,MAAM,IAAA,GAAO,UAAA;AAAA,IACX;AAAA,MACE,EAAE,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,MACpD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,MACnD,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA;AAAK,KAC3D;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,IAAA,GAAOE,QAAAA,CAAO,KAAA,CAAM,8BAAA,CAA+B,IAAI,CAAA;AAC7D,EAAA,8BAAA,CAA+B,MAAA;AAAA,IAC7B;AAAA,MACE,WAAA,EAAa,EAAA;AAAA,MACb,MAAA,EAAQ,OAAO,MAAM,CAAA;AAAA,MACrB;AAAA,KACF;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO,IAAI,sBAAA,CAAuB,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,CAAA;AAC7D;;;ACtRA,IAAM,qBAAA,GAAwB;AAAA,EAC5B,cAAA,EAAgB,CAAC,WAAA,KAAmD;AAClE,IAAA,MAAM,IAAA,GAAO,gBAAgB,WAAW,CAAA;AACxC,IAAA,MAAM,KAAA,GAAQ,qBAAqB,IAAI,CAAA;AACvC,IAAA,MAAM,IAAA,GAAO,oBAAoB,IAAI,CAAA;AACrC,IAAA,MAAM,cAAA,GAAiB,8BAA8B,IAAI,CAAA;AACzD,IAAA,MAAM,aAAA,GAAgB,6BAA6B,IAAI,CAAA;AAEvD,IAAA,OAAO,4BAAA;AAAA,MACL,sBAAA;AAAA,MACA;AAAA,QACE,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC1D,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAClD,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QACnD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAClD,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC7D,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC5D,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC7D,EAAE,MAAA,EAAQ,eAAA,EAAiB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC9D,EAAE,MAAA,EAAQ,uBAAA,EAAyB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACtE,EAAE,MAAA,EAAQK,eAAAA,EAAiB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC9D,EAAE,MAAA,EAAQ,iBAAA,EAAmB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAChE,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC/D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,OACjE;AAAA,MACA,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,sBAAyC;AAAA,KACxD;AAAA,EACF,CAAA;AAAA,EAEA,gBAAA,EAAkB,CAAC,IAAA,KAA4C;AAC7D,IAAA,MAAM,MAAA,GAAS,sBAAsB,IAAI,CAAA;AACzC,IAAA,MAAM,cAAA,GAAiB,8BAA8B,IAAI,CAAA;AAEzD,IAAA,OAAO,4BAAA;AAAA,MACL,sBAAA;AAAA,MACA;AAAA,QACE,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACnD,EAAE,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QACpD,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC7D,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC7D,EAAE,MAAA,EAAQ,iBAAA,EAAmB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAChE,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,OACjE;AAAA,MACA,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,wBAA2C;AAAA,KAC1D;AAAA,EACF,CAAA;AAAA,EAEA,YAAA,EAAc,OACZ,IAAA,EACA,gBAAA,EACA,kBACA,kBAAA,KACoC;AACpC,IAAA,MAAM,KAAA,GAAQ,qBAAqB,IAAI,CAAA;AACvC,IAAA,MAAM,IAAA,GAAO,oBAAoB,IAAI,CAAA;AACrC,IAAA,MAAM,cAAA,GAAiB,8BAA8B,IAAI,CAAA;AACzD,IAAA,MAAM,aAAA,GAAgB,6BAA6B,IAAI,CAAA;AAEvD,IAAA,OAAO,4BAAA;AAAA,MACL,sBAAA;AAAA,MACA;AAAA,QACE,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACnD,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QACnD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAClD,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC7D,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC5D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAC9D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAC9D,EAAE,MAAA,EAAQ,kBAAA,EAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAChE,EAAE,MAAA,EAAQ,eAAA,EAAiB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC9D,EAAE,MAAA,EAAQ,uBAAA,EAAyB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACtE,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC/D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,OACjE;AAAA,MACA,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,oBAAuC;AAAA,KACtD;AAAA,EACF,CAAA;AAAA,EAEA,eAAe,OACb,IAAA,EACA,gBAAA,EACA,kBAAA,EACA,kBACA,WAAA,KACoC;AACpC,IAAA,MAAM,KAAA,GAAQ,qBAAqB,IAAI,CAAA;AACvC,IAAA,MAAM,IAAA,GAAO,oBAAoB,IAAI,CAAA;AACrC,IAAA,MAAM,cAAA,GAAiB,8BAA8B,IAAI,CAAA;AACzD,IAAA,MAAM,aAAA,GAAgB,6BAA6B,IAAI,CAAA;AAGvD,IAAA,MAAM,YAAY,MAAA,CAAO,WAAA,CAAY,aAAa,GAAG,CAAA,CAAE,UAAU,CAAA;AAEjE,IAAA,MAAM,IAAA,GAAO,OAAO,MAAA,CAAO;AAAA,MACzB,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,qBAAwC,CAAA;AAAA,MACrD,mBAAmB,QAAA,EAAS;AAAA,MAC5B,MAAA,CAAO,IAAA,CAAK,IAAI,EAAA,CAAG,SAAA,CAAU,QAAA,EAAU,CAAA,CAAE,OAAA,CAAQ,IAAA,EAAM,CAAC,CAAC;AAAA,KAC1D,CAAA;AAED,IAAA,OAAO,4BAAA;AAAA,MACL,sBAAA;AAAA,MACA;AAAA,QACE,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACnD,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QACnD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAClD,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC7D,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC5D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAC9D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QAC9D,EAAE,MAAA,EAAQ,eAAA,EAAiB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC9D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC/D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,OACjE;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA;AAAA,EAEA,mBAAA,EAAqB,OACnB,IAAA,EACA,KAAA,KACoC;AACpC,IAAA,MAAM,IAAA,GAAO,oBAAoB,IAAI,CAAA;AACrC,IAAA,MAAM,CAAC,aAAA,EAAe,YAAA,EAAc,WAAW,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,MACnE,6BAA6B,IAAI,CAAA;AAAA,MACjC,4BAA4B,IAAI,CAAA;AAAA,MAChC,uBAAuB,IAAI;AAAA,KAC5B,CAAA;AAED,IAAA,OAAO,4BAAA;AAAA,MACL,sBAAA;AAAA,MACA;AAAA,QACE,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACnD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACnD,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC5D,EAAE,MAAA,EAAQ,YAAA,EAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC3D,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,QAClD,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QACzD,EAAE,MAAA,EAAQ,uBAAA,EAAyB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACtE,EAAE,MAAA,EAAQ,iBAAA,EAAmB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,OAClE;AAAA,MACA,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,2BAA8C;AAAA,KAC7D;AAAA,EACF,CAAA;AAAA,EAEA,qBAAqB,OACnB,WAAA,EACA,sBACA,SAAA,EACA,WAAA,EACA,WAAmB,EAAA,KACiB;AACpC,IAAA,IAAI,SAAA,CAAU,SAAS,EAAA,EAAI;AACzB,MAAA,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAAA,IAC9D;AACA,IAAA,IAAI,WAAA,CAAY,SAAS,EAAA,EAAI;AAC3B,MAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,IAChE;AACA,IAAA,IAAI,QAAA,CAAS,SAAS,GAAA,EAAK;AACzB,MAAA,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAAA,IAC9D;AAEA,IAAA,MAAM,IAAA,GAAO,gBAAgB,WAAW,CAAA;AACxC,IAAA,MAAM,CAAC,IAAA,EAAM,YAAY,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,MAC7C,oBAAoB,IAAI,CAAA;AAAA,MACxB,4BAA4B,IAAI;AAAA,KACjC,CAAA;AACD,IAAA,MAAM,WAAA,GAAc,MAAM,sBAAA,CAAuB,IAAI,CAAA;AAErD,IAAA,MAAM,IAAA,GAAO,OAAO,MAAA,CAAO;AAAA,MACzB,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,2BAA8C,CAAA;AAAA,MAC3D,MAAA,CAAO,KAAK,IAAI,WAAA,CAAY,CAAC,SAAA,CAAU,MAAM,CAAC,CAAA,CAAE,MAAM,CAAA;AAAA,MACtD,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,MAAA,CAAO,KAAK,IAAI,WAAA,CAAY,CAAC,WAAA,CAAY,MAAM,CAAC,CAAA,CAAE,MAAM,CAAA;AAAA,MACxD,MAAA,CAAO,KAAK,WAAW,CAAA;AAAA,MACvB,MAAA,CAAO,KAAK,IAAI,WAAA,CAAY,CAAC,QAAA,CAAS,MAAM,CAAC,CAAA,CAAE,MAAM,CAAA;AAAA,MACrD,MAAA,CAAO,KAAK,QAAQ;AAAA,KACrB,CAAA;AAED,IAAA,OAAO,4BAAA;AAAA,MACL,sBAAA;AAAA,MACA;AAAA,QACE,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC1D,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QACnD,EAAE,MAAA,EAAQ,YAAA,EAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,QAC3D,EAAE,MAAA,EAAQ,oBAAA,EAAsB,QAAA,EAAU,IAAA,EAAM,YAAY,KAAA,EAAM;AAAA,QAClE,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,QACzD,EAAE,MAAA,EAAQ,uBAAA,EAAyB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,OACxE;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;AAEA,IAAM,4BAAA,GAA+B,CACnC,SAAA,EACA,IAAA,EACA,IAAA,KAC2B;AAC3B,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;AAEA,IAAM,OAAA,GAAU,CACd,WAAA,EACA,MAAA,EACA,YAAuB,sBAAA,KACT;AACd,EAAA,MAAM,CAAC,GAAG,CAAA,GAAIZ,SAAAA,CAAU,sBAAA;AAAA,IACtB,CAAC,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,EAAG,WAAA,CAAY,UAAU,CAAA;AAAA,IAC5C;AAAA,GACF;AACA,EAAA,OAAO,GAAA;AACT,CAAA;AAEA,IAAM,mCAAmC,CAAC,kBAAA,KACxC,QAAQ,eAAA,CAAgB,kBAAkB,GAAG,MAAM;AACrD,IAAM,eAAA,GAAkB,CAAC,kBAAA,KACvB,OAAA,CAAQ,oBAAoB,MAAM;AACpC,IAAM,mBAAA,GAAsB,CAAC,WAAA,KAAsC,OAAA,CAAQ,aAAa,MAAM;AAC9F,IAAM,oBAAA,GAAuB,CAAC,WAAA,KAAsC,OAAA,CAAQ,aAAa,OAAO;AAChG,IAAM,6BAAA,GAAgC,CAAC,WAAA,KACrC,OAAA,CAAQ,aAAa,iBAAiB;AACxC,IAAM,4BAAA,GAA+B,CAAC,WAAA,KACpC,OAAA,CAAQ,aAAa,gBAAgB;AACvC,IAAM,2BAAA,GAA8B,CAAC,WAAA,KACnC,OAAA,CAAQ,aAAa,eAAe;AACtC,IAAM,qBAAA,GAAwB,CAAC,WAAA,KAAsC,OAAA,CAAQ,aAAa,QAAQ;AAElG,IAAM,sBAAA,GAAyB,OAAO,eAAA,KAAmD;AACvF,EAAA,MAAM,CAAC,GAAG,CAAA,GAAIA,SAAAA,CAAU,sBAAA;AAAA,IACtB,CAAC,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,EAAG,wBAAwB,QAAA,EAAS,EAAG,eAAA,CAAgB,QAAA,EAAU,CAAA;AAAA,IACxF;AAAA,GACF;AACA,EAAA,OAAO,GAAA;AACT;AAEA,IAAM,wBAAA,GAA2B,OAAO,EAAE,CAAA;AAC1C,IAAM,kBAAA,GAAqB,OAAO,GAAG,CAAA;AACrC,IAAMa,UAAAA,GAAY,OAAO,EAAE,CAAA;AAE3B,eAAe,sBAAA,CACb,UAAA,EACA,KAAA,EACA,kBAAA,EACA;AACA,EAAA,MAAM,YAAA,GAAe,MAAM,uBAAA,CAAwB,UAAA,EAAY,OAAO,kBAAkB,CAAA;AACxF,EAAA,MAAM,KAAK,IAAI,WAAA,EAAY,CAAE,GAAA,CAAI,GAAG,YAAY,CAAA;AAChD,EAAA,OAAO,EAAA;AACT;AAEA,eAAe,uBAAA,CACb,UAAA,EACA,KAAA,EACA,kBAAA,EACA;AACA,EAAA,MAAM,WAAA,GAAc,gBAAgB,kBAAkB,CAAA;AAEtD,EAAA,MAAM,YAAA,GAAe,qBAAqB,WAAW,CAAA;AACrD,EAAA,MAAM,WAAA,GAAc,oBAAoB,WAAW,CAAA;AACnD,EAAA,MAAM,aAAA,GAAgB,sBAAsB,WAAW,CAAA;AAGvD,EAAA,MAAM,CAAC,UAAU,SAAA,EAAW,QAAA,EAAU,oBAAoB,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,IAC9E,UAAA,CAAW,iCAAA,CAAkC,MAAA,CAAO,wBAAwB,GAAG,WAAW,CAAA;AAAA,IAC1F,UAAA,CAAW,iCAAA,CAAkC,MAAA,CAAO,kBAAkB,GAAG,WAAW,CAAA;AAAA,IACpF,UAAA,CAAW,iCAAA,CAAkC,MAAA,CAAOA,UAAS,GAAG,WAAW,CAAA;AAAA,IAC3E,WAAW,yBAAA;AAA0B,GACtC,CAAA;AAED,EAAA,MAAM,oBAAoB,oBAAA,CAAqB,KAAA;AAE/C,EAAA,MAAM,eAAyC,EAAC;AAGhD,EAAA,YAAA,CAAa,IAAA;AAAA,IACXC,aAAAA,CAAc,SAAS,EAAE,UAAA,EAAY,OAAO,QAAA,EAAU,WAAA,EAAa,QAAA,EAAU,QAAA,EAAU;AAAA,GACzF;AACA,EAAA,YAAA,CAAa,IAAA;AAAA,IACXA,cAAc,QAAA,CAAS;AAAA,MACrB,UAAA,EAAY,KAAA;AAAA,MACZ,QAAA,EAAU,YAAA;AAAA,MACV,QAAA,EAAU,SAAA,GAAY,iBAAA,GAAoB,gBAAA,GAAmB;AAAA,KAC9D;AAAA,GACH;AACA,EAAA,YAAA,CAAa,IAAA;AAAA,IACXA,aAAAA,CAAc,SAAS,EAAE,UAAA,EAAY,OAAO,QAAA,EAAU,aAAA,EAAe,QAAA,EAAU,SAAA,EAAW;AAAA,GAC5F;AACA,EAAA,YAAA,CAAa,IAAA;AAAA,IACXA,aAAAA,CAAc,SAAS,EAAE,UAAA,EAAY,OAAO,QAAA,EAAU,WAAA,EAAa,QAAA,EAAU,QAAA,EAAU;AAAA,GACzF;AAEA,EAAA,YAAA,CAAa,IAAA,CAAK,qBAAA,CAAsB,cAAA,CAAe,kBAAkB,CAAC,CAAA;AAC1E,EAAA,YAAA,CAAa,IAAA,CAAK,qBAAA,CAAsB,gBAAA,CAAiB,WAAW,CAAC,CAAA;AACrE,EAAA,YAAA,CAAa,KAAK,MAAM,qBAAA,CAAsB,mBAAA,CAAoB,WAAA,EAAa,KAAK,CAAC,CAAA;AAErF,EAAA,OAAO,YAAA;AACT;AAEA,IAAM,kBAAkB,CACtB,IAAA,EACA,UAAA,EACA,QAAA,EACA,OACA,cAAA,KACG;AACH,EAAA,MAAM,IAAA,GAAO,OAAO,MAAA,CAAO;AAAA,IACzB,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AAAA;AAAA,IACf,MAAA,CAAO,KAAK,IAAI,EAAA,CAAG,QAAQ,CAAA,CAAE,OAAA,CAAQ,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,IAC7C,MAAA,CAAO,KAAK,IAAI,EAAA,CAAG,KAAK,CAAA,CAAE,OAAA,CAAQ,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,IAC1C,eAAe,QAAA;AAAS,GACzB,CAAA;AAED,EAAA,MAAM,QAAA,GAAW;AAAA,IACf,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IACjD,EAAE,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA;AAAK,GACzD;AAEA,EAAA,OAAO,4BAAA,CAA6B,iBAAA,EAAmB,QAAA,EAAU,IAAI,CAAA;AACvE;AAEA,IAAM,kBAAA,GAAqB,CAAC,WAAA,KAAmD;AAC7E,EAAA,MAAM,WAAA,GAAc,gBAAgB,WAAW,CAAA;AAC/C,EAAA,MAAM,aAAA,GAAgB,sBAAsB,WAAW,CAAA;AACvD,EAAA,MAAM,kBAAA,GAAqB,8BAA8B,WAAW,CAAA;AAEpE,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC1D,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC3D,EAAE,MAAA,EAAQ,kBAAA,EAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACjE,EAAE,MAAA,EAAQC,kBAAAA,EAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACjE,EAAE,MAAA,EAAQD,aAAAA,CAAc,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACtE,EAAE,MAAA,EAAQ,YAAA,CAAa,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,GACvE;AAGA,EAAA,MAAM,OAAO,MAAA,CAAO,IAAA,CAAK,UAAA,CAAW,EAAA,CAAG,CAAC,CAAC,CAAA;AAEzC,EAAA,OAAO,IAAIE,sBAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,sBAAA;AAAA,IACX;AAAA,GACD,CAAA;AACH;AAEA,IAAM,eAAA,GAAkB,CAAC,WAAA,KAAmD;AAC1E,EAAA,MAAM,WAAA,GAAc,gBAAgB,WAAW,CAAA;AAC/C,EAAA,MAAM,SAAA,GAAY,qBAAqB,WAAW,CAAA;AAClD,EAAA,MAAM,UAAA,GAAa,sBAAsB,WAAW,CAAA;AACpD,EAAA,MAAM,SAAA,GAAY,8BAA8B,WAAW,CAAA;AAE3D,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC1D,EAAE,MAAA,EAAQ,WAAA,EAAa,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC1D,EAAE,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACvD,EAAE,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACxD,EAAE,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACxD,EAAE,MAAA,EAAQ,mBAAA,EAAqB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAClE,EAAE,MAAA,EAAQ,uBAAA,EAAyB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACtE,EAAE,MAAA,EAAQJ,eAAAA,EAAiB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC9D,EAAE,MAAA,EAAQ,YAAA,CAAa,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,GACvE;AAGA,EAAA,MAAM,OAAO,MAAA,CAAO,IAAA,CAAK,UAAA,CAAW,EAAA,CAAG,CAAC,CAAC,CAAA;AAEzC,EAAA,OAAO,4BAAA,CAA6B,sBAAA,EAAwB,IAAA,EAAM,IAAI,CAAA;AACxE;ACxXO,IAAM,eAAA,GAAkB,SAAU,IAAA,EAA4B;AACnE,EAAA,IAAI,MAAA,GAAS,CAAA;AAGb,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;AAChD,EAAA,MAAA,IAAU,CAAA;AAGV,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;AACrD,EAAA,MAAA,IAAU,CAAA;AAGV,EAAA,MAAM,MAAA,GAAS,IAAIZ,SAAAA,CAAU,IAAA,CAAK,SAAS,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AAC/D,EAAA,MAAA,IAAU,EAAA;AACV,EAAA,MAAM,UAAA,GAAa,IAAIA,SAAAA,CAAU,IAAA,CAAK,SAAS,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AACnE,EAAA,MAAA,IAAU,EAAA;AAGV,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;AACjD,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;AACzC,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,SAAA,GAAY,IAAIA,SAAAA,CAAU,IAAA,CAAK,SAAS,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AAClE,EAAA,MAAA,IAAU,EAAA;AAGV,EAAA,MAAM,WAAA,GAAc,IAAIA,SAAAA,CAAU,IAAA,CAAK,SAAS,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AACpE,EAAA,MAAA,IAAU,EAAA;AACV,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;AACzC,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;AACnD,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;AACrD,EAAA,MAAA,IAAU,CAAA;AAGV,EAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,eAAA,CAAgB,MAAM,CAAA;AAGnD,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,iBAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,MAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,aAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,UAAA,EAAY;AAAA,QACV,WAAA;AAAA,QACA,KAAA;AAAA,QACA,eAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA;AAAA;AACF,GACF;AACF;;;ACpGA,IAAA,WAAA,GAAA;AAAA,EACE,OAAA,EAAW,6CAAA;AAAA,EACX,QAAA,EAAY;AAAA,IACV,IAAA,EAAQ,cAAA;AAAA,IACR,OAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAQ,OAAA;AAAA,IACR,WAAA,EAAe;AAAA,GACjB;AAAA,EACA,YAAA,EAAgB;AAAA,IACd;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,UAAA,EAAY,QAAA,EAAY,IAAA,EAAK;AAAA,QACvC,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,QAAQ,CAAA,EAAE;AAAA,QAC/D,EAAE,MAAQ,gBAAA,EAAkB,QAAA,EAAY,MAAM,SAAA,EAAa,CAAC,OAAO,CAAA,EAAE;AAAA,QACrE,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,6BAA4B;AAAE;AAC/D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,IAAA,EAAQ,gBAAA,EAAkB,SAAA,EAAa,CAAC,OAAO,CAAA,EAAE;AAAA,QACnD,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,OAAO,CAAA;AAAE,OAChE;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,0BAAyB;AAAE;AAC5D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,MAAQ,gBAAA,EAAkB,QAAA,EAAY,MAAM,SAAA,EAAa,CAAC,OAAO,CAAA,EAAE;AAAA,QACrE,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,OAAO,CAAA;AAAE,OAChE;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,4BAA2B;AAAE;AAC9D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,eAC5D;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,QAAA;AAAS;AACxC;AACF,SACF;AAAA,QACA,EAAE,IAAA,EAAQ,eAAA,EAAiB,MAAA,EAAU,IAAA,EAAK;AAAA,QAC1C;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,QAAA,EAAU,SAAS;AAAA,SACnC;AAAA,QACA,EAAE,IAAA,EAAQ,SAAA,EAAW,QAAA,EAAY,IAAA,EAAK;AAAA,QACtC,EAAE,IAAA,EAAQ,eAAA,EAAiB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC5C,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,cAAA,EAAgB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC3C,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B,EAAE,MAAQ,iBAAA,EAAkB;AAAA,QAC5B,EAAE,MAAQ,kBAAA;AAAmB,OAC/B;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,yBAAwB;AAAE;AAC3D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,eAC5D;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,QAAA;AAAS;AACxC;AACF,SACF;AAAA,QACA,EAAE,IAAA,EAAQ,eAAA,EAAiB,MAAA,EAAU,IAAA,EAAK;AAAA,QAC1C;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,QAAA,EAAU,SAAS;AAAA,SACnC;AAAA,QACA,EAAE,IAAA,EAAQ,SAAA,EAAW,QAAA,EAAY,IAAA,EAAK;AAAA,QACtC,EAAE,IAAA,EAAQ,eAAA,EAAiB,QAAA,EAAY,IAAA;AAAK,OAC9C;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,2BAA0B;AAAE;AAC7D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACrD;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,eAC5D;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,QAAA;AAAS;AACxC;AACF,SACF;AAAA,QACA,EAAE,IAAA,EAAQ,eAAA,EAAiB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC5C,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,YAAA,EAAa;AAAA,QACvB,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,oBAAmB;AAAE;AACtD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,OAAA,EAAS,KAAA,EAAS,CAAC,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA,EAAE;AAAA,cACxD,EAAE,IAAA,EAAQ,KAAA,EAAO,IAAA,EAAQ,cAAA,EAAe;AAAA,cACxC,EAAE,IAAA,EAAQ,KAAA,EAAO,IAAA,EAAQ,0BAAA;AAA2B;AACtD;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,eAC5D;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,QAAA;AAAS;AACxC;AACF,SACF;AAAA,QACA,EAAE,IAAA,EAAQ,eAAA,EAAiB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC5C,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,YAAA,EAAa;AAAA,QACvB,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B,EAAE,MAAQ,YAAA;AAAa,OACzB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,uBAAsB;AAAE;AACzD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,QAAQ,CAAA,EAAE;AAAA,QAC/D,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B,EAAE,MAAQ,YAAA,EAAa;AAAA,QACvB,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,wBAAuB;AAAE;AAC1D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,MAAQ,QAAA,EAAS;AAAA,QACnB,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,QAAQ,CAAA;AAAE,OACjE;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,0BAAyB;AAAE;AAC5D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,QAAQ,CAAA,EAAE;AAAA,QAC/D,EAAE,MAAQ,UAAA;AAAW,OACvB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,2BAA0B;AAAE;AAC7D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV,EAAE,MAAQ,QAAA,EAAS;AAAA,QACnB,EAAE,IAAA,EAAQ,OAAA,EAAS,SAAA,EAAa,CAAC,QAAQ,CAAA,EAAE;AAAA,QAC3C,EAAE,MAAQ,KAAA,EAAM;AAAA,QAChB,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,QAAQ,CAAA,EAAE;AAAA,QAC/D,EAAE,IAAA,EAAQ,UAAA,EAAY,SAAA,EAAa,CAAC,QAAQ,CAAA,EAAE;AAAA,QAC9C,EAAE,MAAQ,oBAAA,EAAqB;AAAA,QAC/B,EAAE,MAAQ,uBAAA,EAAwB;AAAA,QAClC,EAAE,MAAQ,2BAAA,EAA4B;AAAA,QACtC,EAAE,MAAQ,YAAA,EAAa;AAAA,QACvB,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,OAAA,EAAS,MAAA,EAAU,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,uBAAsB;AAAE;AACzD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,SAAA;AAAU,OACtB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,uBAAsB;AAAE;AACzD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,WAAA,EAAa,QAAA,EAAY,IAAA,EAAK;AAAA,QACxC,EAAE,IAAA,EAAQ,eAAA,EAAiB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC5C,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC,EAAE,MAAQ,YAAA,EAAa;AAAA,QACvB,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa,CAAC,WAAW;AAAA,SAC3B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,uBAAsB;AAAE;AACzD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,WAAA,EAAa,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACxD,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,MAAQ,WAAA,EAAY;AAAA,QACtB,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,WAAA,EAAY;AAAA,cACzC;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,CAAA;AAAA,kBAAG,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACzD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACvD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,CAAA;AAAA,kBAAG;AAAA;AACzB,eACF;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,kBAAA;AAAmB,aAClD;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,YAAA,EAAa;AAAA,QACvB,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,sBAAqB;AAAE;AACxD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,WAAA,EAAa,QAAA,EAAY,IAAA,EAAK;AAAA,QACxC,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,WAAW,CAAA;AAAE,OACpE;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,4BAA2B;AAAE;AAC9D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,MAAA,EAAQ,QAAA,EAAY,IAAA,EAAK;AAAA,QACnC,EAAE,IAAA,EAAQ,OAAA,EAAS,SAAA,EAAa,CAAC,MAAM,CAAA,EAAE;AAAA,QACzC,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,cAAA,EAAgB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC3C;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,gCAA+B;AAAE;AAClE;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,cAAA,EAAgB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC3C;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW,EAAE,IAAA,EAAQ,uCAAA;AAAwC;AAC/D;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW,EAAE,IAAA,EAAQ,4CAAA;AAA6C;AACpE;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,cAAA,EAAgB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC3C;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,oCAAmC;AAAE;AACtE;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,MAAA,EAAQ,QAAA,EAAY,IAAA,EAAK;AAAA,QACnC;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,OAAA,EAAS,KAAA,EAAS,CAAC,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA,EAAE;AAAA,cACrD,EAAE,IAAA,EAAQ,KAAA,EAAO,IAAA,EAAQ,yBAAA;AAA0B;AACrD,WACF;AAAA,UACA,SAAA,EAAa,CAAC,MAAM;AAAA,SACtB;AAAA,QACA,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,cAAA,EAAgB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC3C;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,mCAAkC;AAAE;AACrE;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,mBAAA,EAAoB;AAAA,QAC9B,EAAE,MAAQ,OAAA;AAAQ,OACpB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,2BAA0B;AAAE;AAC7D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,OAAO,CAAA,EAAE;AAAA,QAC9D,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA;AAAK,OACtC;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,6BAA4B;AAAE;AAC/D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,OAAA;AAAQ,OACpB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,6BAA4B;AAAE;AAC/D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,OAAA,EAAQ;AAAA,cACrC;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,CAAA;AAAA,kBAAG,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACzD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACvD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,CAAA;AAAA,kBAAG;AAAA;AACzB,eACF;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,aAAA;AAAc,aAC7C;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA,EAAE,MAAQ,WAAA,EAAY;AAAA,QACtB,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B,EAAE,IAAA,EAAQ,YAAA,EAAc,QAAA,EAAY,IAAA,EAAK;AAAA,QACzC,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,mBAAkB;AAAE;AACrD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,OAAA,EAAS,KAAA,EAAS,CAAC,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA,EAAE;AAAA,cACrD,EAAE,IAAA,EAAQ,KAAA,EAAO,IAAA,EAAQ,yBAAA;AAA0B;AACrD;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,OAAA,EAAQ;AAAA,cACrC;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,CAAA;AAAA,kBAAG,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACzD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACvD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,CAAA;AAAA,kBAAG;AAAA;AACzB,eACF;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,aAAA;AAAc,aAC7C;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA,EAAE,MAAQ,WAAA,EAAY;AAAA,QACtB,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B,EAAE,IAAA,EAAQ,YAAA,EAAc,QAAA,EAAY,IAAA,EAAK;AAAA,QACzC,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,sBAAqB;AAAE;AACxD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,OAAA;AAAQ,OACpB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,0BAAyB;AAAE;AAC5D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,OAAA,EAAQ;AAAA,cACrC;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,CAAA;AAAA,kBAAG,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACzD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACvD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,CAAA;AAAA,kBAAG;AAAA;AACzB,eACF;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,aAAA;AAAc,aAC7C;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,eAAA,EAAgB;AAAA,cAC7C;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,CAAA;AAAA,kBAAG,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACzD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACvD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,CAAA;AAAA,kBAAG;AAAA;AACzB,eACF;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,aAAA;AAAc,aAC7C;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,aAAA,EAAc;AAAA,QACxB,EAAE,MAAQ,cAAA,EAAe;AAAA,QACzB,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA;AAAK,OACtD;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,yBAAwB;AAAE;AAC3D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,mBAAA,EAAoB;AAAA,QAC9B,EAAE,MAAQ,OAAA;AAAQ,OACpB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,8BAA6B;AAAE;AAChE;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,IAAA,EAAQ,KAAA,EAAO,SAAA,EAAa,CAAC,OAAO,CAAA,EAAE;AAAA,QACxC,EAAE,MAAQ,OAAA;AAAQ,OACpB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,yBAAwB;AAAE;AAC3D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,OAAA;AAAQ,OACpB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,yBAAwB;AAAE;AAC3D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,MAAQ,KAAA;AAAM,OAClB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,qBAAoB;AAAE;AACvD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,MAAQ,OAAA,EAAQ;AAAA,QAClB,EAAE,IAAA,EAAQ,KAAA,EAAO,SAAA,EAAa,CAAC,OAAO,CAAA,EAAE;AAAA,QACxC,EAAE,MAAQ,OAAA;AAAQ,OACpB;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,uBAAsB;AAAE;AACzD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,YAAA,EAAc,QAAA,EAAY,IAAA,EAAK;AAAA,QACzC,EAAE,IAAA,EAAQ,OAAA,EAAS,WAAa,CAAC,YAAA,EAAc,QAAQ,CAAA,EAAE;AAAA,QACzD,EAAE,IAAA,EAAQ,QAAA,EAAU,QAAA,EAAY,IAAA,EAAK;AAAA,QACrC;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,YAAY,CAAA;AAAE,OACrE;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,0BAAyB;AAAE;AAC5D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,CAAA,EAAG,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACjD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,YAAA,EAAc,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACzD;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,YAAA,EAAa;AAAA,cAC1C;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,CAAA;AAAA,kBAAG,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACzD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACvD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,CAAA;AAAA,kBAAG;AAAA;AACzB,eACF;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,kBAAA;AAAmB,aAClD;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAA,EAAU,IAAA,EAAK;AAAA,QACtC,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,eAAA,EAAgB;AAAA,QAC1B,EAAE,MAAQ,YAAA,EAAa;AAAA,QACvB,EAAE,IAAA,EAAQ,KAAA,EAAO,QAAA,EAAY,IAAA,EAAK;AAAA,QAClC;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,wBAAuB;AAAE;AAC1D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,YAAA,EAAc,QAAA,EAAY,IAAA,EAAK;AAAA,QACzC,EAAE,IAAA,EAAQ,QAAA,EAAU,SAAA,EAAa,CAAC,YAAY,CAAA,EAAE;AAAA,QAChD,EAAE,IAAA,EAAQ,OAAA,EAAS,SAAA,EAAa,CAAC,QAAQ,CAAA,EAAE;AAAA,QAC3C;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBACvD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK;AAAA;AACnC,eACF;AAAA,cACA,EAAE,IAAA,EAAQ,SAAA,EAAW,IAAA,EAAQ,QAAA;AAAS;AACxC;AACF,SACF;AAAA,QACA,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,YAAY,CAAA,EAAE;AAAA,QACnE,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,IAAA,EAAQ,eAAA,EAAiB,QAAA,EAAY,IAAA,EAAK;AAAA,QAC5C;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA,EAAE,MAAQ,eAAA;AAAgB,OAC5B;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,0BAAyB;AAAE;AAC5D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS,CAAC,EAAE,IAAA,EAAQ,OAAA,EAAS,KAAA,EAAS,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,GAAG;AAAA;AAC9D,SACF;AAAA,QACA,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,mBAAkB;AAAE;AACrD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,CAAA,EAAG,EAAA,EAAI,GAAG,CAAA;AAAA,MACjD,QAAA,EAAY;AAAA,QACV,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,MAAQ,WAAA,EAAa,MAAA,EAAU,MAAM,SAAA,EAAa,CAAC,OAAO,CAAA,EAAE;AAAA,QAC9D,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAK;AAAA,QACpC,EAAE,IAAA,EAAQ,OAAA,EAAS,QAAA,EAAY,IAAA,EAAM,QAAU,IAAA,EAAK;AAAA,QACpD;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,yBAAwB;AAAE;AAC3D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ,CAAC,oCAAoC,CAAA;AAAA,UAC7C,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,+BAA8B;AAAE;AACjE;AACF;AACF,GACF;AAAA,EACA,QAAA,EAAY;AAAA,IACV;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACzD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,CAAC;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACxD;AAAA,IACA,EAAE,IAAA,EAAQ,OAAA,EAAS,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAE,GAC7E;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,GAAG,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACpD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,EAAE;AAAA,KAClD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,CAAA,EAAG,EAAA,EAAI,GAAA,EAAK,EAAE;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,CAAA,EAAG,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,EAAA,EAAI,GAAG;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA;AACtD,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR,EAAE,IAAA,EAAQ,GAAA,EAAM,IAAA,EAAQ,cAAA,EAAe;AAAA,IACvC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,cAAA,EAAe;AAAA,IACvC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA,EAAoB;AAAA,IAC5C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,WAAA,EAAY;AAAA,IACpC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,sBAAA,EAAuB;AAAA,IAC/C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,eAAA,EAAgB;AAAA,IACxC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,wBAAA,EAAyB;AAAA,IACjD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,qBAAA,EAAsB;AAAA,IAC9C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,sBAAA,EAAuB;AAAA,IAC/C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,cAAA,EAAe;AAAA,IACvC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,oBAAA,EAAqB;AAAA,IAC7C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,sBAAA,EAAuB;AAAA,IAC/C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,sBAAA,EAAuB;AAAA,IAC/C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,cAAA,EAAe;AAAA,IACvC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,oBAAA,EAAqB;AAAA,IAC7C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA,EAAoB;AAAA,IAC5C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,6BAAA,EAA8B;AAAA,IACtD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,oBAAA,EAAqB;AAAA,IAC7C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,sBAAA,EAAuB;AAAA,IAC/C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,eAAA,EAAgB;AAAA,IACxC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,eAAA,EAAgB;AAAA,IACxC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,uBAAA,EAAwB;AAAA,IAChD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,wBAAA,EAAyB;AAAA,IACjD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,uBAAA,EAAwB;AAAA,IAChD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,cAAA,EAAe;AAAA,IACvC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,oBAAA,EAAqB;AAAA,IAC7C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,aAAA,EAAc;AAAA,IACtC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,6BAAA,EAA8B;AAAA,IACtD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,iBAAA,EAAkB;AAAA,IAC1C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,sBAAA,EAAuB;AAAA,IAC/C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,wBAAA,EAAyB;AAAA,IACjD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA,EAAoB;AAAA,IAC5C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,4BAAA,EAA6B;AAAA,IACrD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,iBAAA,EAAkB;AAAA,IAC1C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,oBAAA,EAAqB;AAAA,IAC7C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,qBAAA,EAAsB;AAAA,IAC9C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,uBAAA,EAAwB;AAAA,IAChD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA,EAAoB;AAAA,IAC5C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,oBAAA,EAAqB;AAAA,IAC7C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,uBAAA,EAAwB;AAAA,IAChD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,qBAAA,EAAsB;AAAA,IAC9C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA,EAAoB;AAAA,IAC5C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,wBAAA,EAAyB;AAAA,IACjD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA,EAAoB;AAAA,IAC5C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,2BAAA,EAA4B;AAAA,IACpD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,4BAAA,EAA6B;AAAA,IACrD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,eAAA,EAAgB;AAAA,IACxC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kBAAA,EAAmB;AAAA,IAC3C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,6BAAA,EAA8B;AAAA,IACtD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,kCAAA,EAAmC;AAAA,IAC3D,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA,EAAoB;AAAA,IAC5C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,gBAAA,EAAiB;AAAA,IACzC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,gCAAA,EAAiC;AAAA,IACzD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,0BAAA,EAA2B;AAAA,IACnD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,0BAAA,EAA2B;AAAA,IACnD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,qBAAA,EAAsB;AAAA,IAC9C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,YAAA,EAAa;AAAA,IACrC,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,iBAAA,EAAkB;AAAA,IAC1C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,4BAAA,EAA6B;AAAA,IACrD,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,iBAAA,EAAkB;AAAA,IAC1C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA,EAAoB;AAAA,IAC5C,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,mBAAA;AAAoB,GAC9C;AAAA,EACA,KAAA,EAAS;AAAA,IACP;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oDAAoD,CAAA;AAAA,YAC7D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,0CAA0C,CAAA;AAAA,YACnD,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,MAAQ,EAAE,GAAA,EAAO,UAAS,EAAE;AAAA,UAC/C,EAAE,IAAA,EAAQ,SAAA,EAAW,MAAQ,EAAE,GAAA,EAAO,UAAS,EAAE;AAAA,UACjD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,KAAO,EAAE,GAAA,EAAO,MAAA,EAAO,EAAE,EAAE;AAAA,UACzD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,KAAA;AAAM;AACpC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oDAAoD,CAAA;AAAA,YAC7D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ,CAAC,qDAAqD,CAAA;AAAA,YAC9D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,qDAAqD,CAAA;AAAA,YAC9D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACrD;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,0CAA0C,CAAA;AAAA,YACnD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA,EAAS;AAAA,UACrC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA;AAAS;AACtC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA;AAAS;AACvC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,KAAA,EAAM;AAAA,UACrC,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACxD,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,KAAA,EAAM;AAAA,UACtC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,QAAA,EAAS;AAAA,UAC1C,EAAE,IAAA,EAAQ,eAAA,EAAiB,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UAC3D,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,KAAA,EAAM;AAAA,UAChC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,IAAA,EAAK;AAAA,UACtC,EAAE,IAAA,EAAQ,YAAA,EAAc,MAAQ,EAAE,GAAA,EAAO,OAAM;AAAE;AACnD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,MAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,EAAC;AAAE,KAC3C;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,MAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,EAAC;AAAE,KAC3C;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,KAAA,EAAM;AAAA,UACrC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,KAAA,EAAM;AAAA,UACpC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,KAAA,EAAM;AAAA,UACrC,EAAE,IAAA,EAAQ,yBAAA,EAA2B,IAAA,EAAQ,KAAA;AAAM;AACrD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAQ,EAAE,GAAA,EAAO,QAAO,EAAE;AAAA,UAC9C,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,IAAA;AAAK;AACxC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ,CAAC,sDAAsD,CAAA;AAAA,YAC/D,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,SAAQ;AAAE,WAC3C;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gDAAgD,CAAA;AAAA,YACzD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,+CAA+C,CAAA;AAAA,YACxD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA,EAAE,IAAA,EAAQ,gBAAA,EAAkB,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UAC5D;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,yCAAyC,CAAA;AAAA,YAClD,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACtD,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,KAAA,EAAM;AAAA,UACpC,EAAE,IAAA,EAAQ,mBAAA,EAAqB,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC7C,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,QAAA,EAAS;AAAA,UACvC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,IAAI,CAAA,EAAE;AAAE;AACxD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,IAAA,EAAM,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC9B,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,KAAA,EAAM;AAAA,UACrC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,KAAA,EAAM;AAAA,UACrC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,cAAA,EAAgB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACxC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA;AAAM;AACzC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA,EAAS;AAAA,UACrC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA;AAAS;AACtC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,EAAE,MAAA,EAAU,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE;AAC9C;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,EAAE,MAAA,EAAU,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE;AAC9C;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,QAAA,EAAU,IAAA,EAAQ,UAAU;AAAA;AACnD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,QAAA,EAAS;AAAA,UACxC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,EAAE,MAAA,EAAU,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE;AAC9C;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,QAAA,EAAS;AAAA,UACxC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,EAAE,MAAA,EAAU,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE,WAC9C;AAAA,UACA,EAAE,IAAA,EAAQ,mBAAA,EAAqB,IAAA,EAAQ,QAAA;AAAS;AAClD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA,EAAS;AAAA,UACrC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA;AAAS;AACtC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,QAAA,EAAU,IAAA,EAAQ,UAAU;AAAA;AACnD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA;AAAS;AACvC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,aAAA,EAAe,IAAA,EAAQ,OAAO;AAAA;AACrD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,eAAA,EAAiB,MAAQ,EAAE,MAAA,EAAU,UAAS,EAAE;AAAA,UAC1D;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ,EAAE,MAAA,EAAU,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE;AAC9C;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,MAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,EAAC;AAAE,KAC3C;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA,EAAS;AAAA,UACrC;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,mBAAkB;AAAE,WACrD;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,mBAAkB;AAAE,WACrD;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,gBAAe;AAAE,WAClD;AAAA,UACA,EAAE,IAAA,EAAQ,oBAAA,EAAsB,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC9C,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC/B,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACrD;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ,CAAC,WAAW,CAAA;AAAA,YACpB,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,IAAI,CAAA;AAAE;AAClC;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,yDAAyD,CAAA;AAAA,YAClE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,0CAA0C,CAAA;AAAA,YACnD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mDAAmD,CAAA;AAAA,YAC5D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ,CAAC,+BAA+B,CAAA;AAAA,YACxC,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,MAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,EAAC;AAAE,KAC3C;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,YAAA,EAAc,IAAA,EAAQ,UAAU;AAAA;AACvD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,IAAA,EAAK;AAAA,UACrC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,MAAA;AAAO;AACrC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ,CAAC,sDAAsD,CAAA;AAAA,MAC/D,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,uCAAuC,CAAA;AAAA,YAChD,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,kBAAA,EAAmB,EAAE,EAAG,EAAE;AAAA;AAC7D,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iDAAiD,CAAA;AAAA,YAC1D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,cAAA,EAAgB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACxC,EAAE,IAAA,EAAQ,eAAA,EAAiB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACzC,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UAClD,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACrD,EAAE,IAAA,EAAQ,2BAAA,EAA6B,IAAA,EAAQ,IAAA,EAAK;AAAA,UACpD,EAAE,IAAA,EAAQ,uBAAA,EAAyB,IAAA,EAAQ,IAAA,EAAK;AAAA,UAChD,EAAE,IAAA,EAAQ,iBAAA,EAAmB,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC1C,EAAE,IAAA,EAAQ,uBAAA,EAAyB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACjD,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,KAAA,EAAM;AAAA,UACpC,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACxD;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,MAAQ,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,iBAAgB;AAAE,WACnD;AAAA,UACA,EAAE,IAAA,EAAQ,eAAA,EAAiB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACzC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACtD;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,eAAA,EAAgB,EAAE,EAAG,EAAE;AAAA;AAC1D,WACF;AAAA,UACA,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACnD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,uBAAA,EAAyB,IAAA,EAAQ,EAAE,OAAS,CAAC,KAAA,EAAO,EAAE,CAAA,EAAE;AAAE;AACtE;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,MAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,EAAC;AAAE,KAC3C;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,QAAA,EAAS;AAAA,UACnC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA;AAAS;AACvC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,cAAA,EAAgB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACxC,EAAE,IAAA,EAAQ,eAAA,EAAiB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACzC,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UAClD,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,iBAAA,EAAmB,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC1C,EAAE,IAAA,EAAQ,eAAA,EAAiB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACzC,EAAE,IAAA,EAAQ,2BAAA,EAA6B,MAAQ,EAAE,MAAA,EAAU,QAAO;AAAE;AACtE;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,EAAE,MAAA,EAAU,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE,WAC9C;AAAA,UACA,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAQ,EAAE,MAAA,EAAU,UAAS,EAAE;AAAA,UACtD,EAAE,IAAA,EAAQ,cAAA,EAAgB,MAAQ,EAAE,MAAA,EAAU,OAAM,EAAE;AAAA,UACtD,EAAE,IAAA,EAAQ,eAAA,EAAiB,MAAQ,EAAE,MAAA,EAAU,OAAM,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,EAAE,MAAA,EAAU,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA,IAAI,EAAE;AAAA,UAChE;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,EAAE,MAAA,EAAU,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE,WAC9C;AAAA,UACA,EAAE,IAAA,EAAQ,iBAAA,EAAmB,MAAQ,EAAE,MAAA,EAAU,MAAK,EAAE;AAAA,UACxD,EAAE,IAAA,EAAQ,eAAA,EAAiB,MAAQ,EAAE,MAAA,EAAU,OAAM,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,2BAAA,EAA6B,MAAQ,EAAE,MAAA,EAAU,QAAO;AAAE;AACtE;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4CAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,KAAA,EAAM;AAAA,UAChC,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAQ,EAAE,GAAA,EAAO,QAAO;AAAE;AAChD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,KAAA,EAAM;AAAA,UAChC,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAQ,EAAE,GAAA,EAAO,QAAO;AAAE;AAChD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,KAAA,EAAM;AAAA,UAChC;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,EAAE,GAAA,EAAO,EAAE,SAAW,EAAE,IAAA,EAAQ,iBAAA,EAAkB,EAAE;AAAE;AAChE;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,KAAA,EAAM;AAAA,UAChC;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,KAAA,EAAM;AAAA,UAChC;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA,EAAE,IAAA,EAAQ,kBAAA,EAAoB,IAAA,EAAQ,QAAA,EAAS;AAAA,UAC/C,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,IAAA;AAAK;AACvC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,MAAQ,EAAE,GAAA,EAAO,UAAS,EAAE;AAAA,UAC/C,EAAE,IAAA,EAAQ,SAAA,EAAW,MAAQ,EAAE,GAAA,EAAO,UAAS,EAAE;AAAA,UACjD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,KAAO,EAAE,GAAA,EAAO,MAAA,EAAO,EAAE,EAAE;AAAA,UACzD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,KAAA;AAAM;AACpC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,+EAAA;AAAA,QACA,0FAAA;AAAA,QACA,uBAAA;AAAA,QACA,EAAA;AAAA,QACA,gGAAA;AAAA,QACA,8FAAA;AAAA,QACA,4FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,+BAA+B,CAAA;AAAA,YACxC,IAAA,EAAQ,EAAE,KAAA,EAAS,CAAC,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAG,EAAE,CAAA;AAAE,WACnD;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,MAAQ,EAAE,KAAA,EAAS,CAAC,QAAA,EAAU,GAAG,CAAA;AAAE,WACrC;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA,EAAE,IAAA,EAAQ,cAAA,EAAgB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACxC;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA,EAAE,IAAA,EAAQ,gCAAA,EAAkC,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC1D;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,6CAA6C,CAAA;AAAA,YACtD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA,EAAE,IAAA,EAAQ,wCAAA,EAA0C,IAAA,EAAQ,IAAA,EAAK;AAAA,UACjE,EAAE,IAAA,EAAQ,qCAAA,EAAuC,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC9D,EAAE,IAAA,EAAQ,2BAAA,EAA6B,IAAA,EAAQ,IAAA,EAAK;AAAA,UACpD,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,IAAA,EAAK;AAAA,UACtC,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,QAAA,EAAS;AAAA,UACnC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,KAAA,EAAM;AAAA,UACpC,EAAE,IAAA,EAAQ,iBAAA,EAAmB,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC1C,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,KAAA,EAAO,IAAA,EAAQ,QAAA,EAAS;AAAA,UAClC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,KAAA,EAAM;AAAA,UACpC;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,EAAE,KAAA,EAAS,CAAC,EAAE,OAAA,EAAW,EAAE,IAAA,EAAQ,WAAA,EAAY,EAAE,EAAG,CAAC,CAAA;AAAE,WACjE;AAAA,UACA,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE,EAAE;AAAA,UACrD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE;AAAE;AACvD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE;AAC1D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU,CAAC,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA,IAAK;AAAA;AACtE,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,iBAAA,EAAmB,IAAA,EAAQ,MAAM;AAAA;AACxD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,CAAC,EAAE,IAAA,EAAQ,KAAA,EAAO,IAAA,EAAQ,KAAA,EAAO,CAAA;AAAE,KAC3E;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,OAAA,EAAS,IAAA,EAAQ,UAAU;AAAA;AAClD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,gCAAA,EAAkC,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC1D,EAAE,IAAA,EAAQ,wCAAA,EAA0C,IAAA,EAAQ,MAAA,EAAO;AAAA,UACnE,EAAE,IAAA,EAAQ,2BAAA,EAA6B,IAAA,EAAQ,MAAA,EAAO;AAAA,UACtD,EAAE,IAAA,EAAQ,4BAAA,EAA8B,IAAA,EAAQ,KAAA,EAAM;AAAA,UACtD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,KAAA,EAAM;AAAA,UAClC,EAAE,IAAA,EAAQ,cAAA,EAAgB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACxC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA;AAAM;AACzC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,gCAAA,EAAkC,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC1D,EAAE,IAAA,EAAQ,wCAAA,EAA0C,IAAA,EAAQ,MAAA,EAAO;AAAA,UACnE,EAAE,IAAA,EAAQ,2BAAA,EAA6B,IAAA,EAAQ,MAAA,EAAO;AAAA,UACtD,EAAE,IAAA,EAAQ,4BAAA,EAA8B,IAAA,EAAQ,KAAA,EAAM;AAAA,UACtD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,KAAA,EAAM;AAAA,UAClC,EAAE,IAAA,EAAQ,cAAA,EAAgB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACxC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,kBAAA,EAAoB,IAAA,EAAQ,QAAA;AAAS;AACjD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,kBAAA,EAAoB,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UAC9D,EAAE,IAAA,EAAQ,4BAAA,EAA8B,IAAA,EAAQ,KAAA,EAAM;AAAA,UACtD,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACxD,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,KAAA;AAAM;AAClC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,MAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,EAAC;AAAE,KAC3C;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE;AAC1D;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU,CAAC,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA,IAAK;AAAA;AACtE,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,MAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,EAAC;AAAE,KAC3C;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,WAAA,EAAa,MAAQ,EAAE,MAAA,EAAU,UAAS,EAAE;AAAA,UACtD,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAQ,EAAE,MAAA,EAAU,OAAM,EAAE;AAAA,UAChD,EAAE,IAAA,EAAQ,cAAA,EAAgB,MAAQ,EAAE,MAAA,EAAU,OAAM;AAAE;AACxD;AACF,KACF;AAAA,IACA,EAAE,IAAA,EAAQ,mBAAA,EAAqB,IAAA,EAAQ,EAAE,MAAQ,QAAA,EAAU,MAAA,EAAU,EAAC,EAAE,EAAE;AAAA,IAC1E;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,QAAA,EAAU,IAAA,EAAQ,QAAQ;AAAA;AACjD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wDAAwD,CAAA;AAAA,YACjE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,sCAAsC,CAAA;AAAA,YAC/C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACrD;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,sDAAsD,CAAA;AAAA,YAC/D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA,EAAE,IAAA,EAAQ,qBAAA,EAAuB,IAAA,EAAQ,QAAA,EAAS;AAAA,UAClD,EAAE,IAAA,EAAQ,uBAAA,EAAyB,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACnE,EAAE,IAAA,EAAQ,kBAAA,EAAoB,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC5C,EAAE,IAAA,EAAQ,oBAAA,EAAsB,IAAA,EAAQ,EAAE,OAAS,CAAC,QAAA,EAAU,EAAE,CAAA,EAAE,EAAE;AAAA,UACpE,EAAE,IAAA,EAAQ,wBAAA,EAA0B,IAAA,EAAQ,IAAA,EAAK;AAAA,UACjD,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACrD,EAAE,IAAA,EAAQ,wBAAA,EAA0B,IAAA,EAAQ,QAAA,EAAS;AAAA,UACrD;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACxD;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,WAAW,CAAA;AAAA,YACpB,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE,EAAE;AAAA,UACrD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE,EAAE;AAAA,UACrD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE;AAAE;AACvD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,QAAA,EAAS;AAAA,UACxC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,QAAA,EAAS;AAAA,UACpC,EAAE,IAAA,EAAQ,eAAA,EAAiB,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UAC3D,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,KAAA,EAAM;AAAA,UACrC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA,EAAS;AAAA,UACrC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACnD,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,KAAA,EAAM;AAAA,UACpC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE,EAAE;AAAA,UACrD;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,MAAQ,EAAE,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE,CAAA;AAAE,WAChC;AAAA,UACA,EAAE,IAAA,EAAQ,6BAAA,EAA+B,IAAA,EAAQ,KAAA;AAAM;AACzD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,oBAAA,EAAsB,IAAA,EAAQ,QAAA,EAAS;AAAA,UACjD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,QAAA,EAAS;AAAA,UACrC,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,KAAA,EAAM;AAAA,UAChC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE;AACxD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,MAAQ,EAAE,IAAA,EAAQ,QAAA,EAAU,MAAA,EAAU,EAAC;AAAE,KAC3C;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,aAAA,EAAe,IAAA,EAAQ,OAAO;AAAA;AACrD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,IAAA,EAAK;AAAA,UACtC,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE;AAAE;AACrD;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,MAAA,EAAQ,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC/B,EAAE,IAAA,EAAQ,oCAAA,EAAsC,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC7D,EAAE,IAAA,EAAQ,gBAAA,EAAkB,IAAA,EAAQ,IAAA,EAAK;AAAA,UACzC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACrD,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,QAAA,EAAS;AAAA,UACxC,EAAE,IAAA,EAAQ,gBAAA,EAAkB,IAAA,EAAQ,QAAA,EAAS;AAAA,UAC7C,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,KAAA,EAAM;AAAA,UACrC,EAAE,IAAA,EAAQ,cAAA,EAAgB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACxC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE,EAAE;AAAA,UACxD,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,QAAA,EAAS;AAAA,UAC1C,EAAE,IAAA,EAAQ,gBAAA,EAAkB,IAAA,EAAQ,EAAE,OAAS,CAAC,KAAA,EAAO,EAAE,CAAA,EAAE,EAAE;AAAA,UAC7D,EAAE,IAAA,EAAQ,gBAAA,EAAkB,IAAA,EAAQ,IAAA,EAAK;AAAA,UACzC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,IAAA,EAAK;AAAA,UACnC,EAAE,IAAA,EAAQ,4BAAA,EAA8B,IAAA,EAAQ,IAAA,EAAK;AAAA,UACrD,EAAE,IAAA,EAAQ,iBAAA,EAAmB,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC1C,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,KAAA,EAAM;AAAA,UACpC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,KAAA,EAAM;AAAA,UACpC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,UAAA,EAAY,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,CAAC,CAAA,EAAE,EAAE;AAAA,UACrD,EAAE,IAAA,EAAQ,gBAAA,EAAkB,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC1C,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACpD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE,EAAE;AAAA,UACrD,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,GAAG,CAAA,EAAE,EAAE;AAAA,UACrD;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,6BAA6B,CAAA;AAAA,YACtC,MAAQ,EAAE,KAAA,EAAS,CAAC,QAAA,EAAU,EAAE,CAAA;AAAE;AACpC;AACF;AACF,KACF;AAAA,IACA,EAAE,IAAA,EAAQ,iBAAA,EAAmB,IAAA,EAAQ,EAAE,MAAQ,QAAA,EAAU,MAAA,EAAU,EAAC,EAAE,EAAE;AAAA,IACxE;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,eAAA,EAAiB,IAAA,EAAQ,QAAA,EAAS;AAAA,UAC5C,EAAE,IAAA,EAAQ,oCAAA,EAAsC,IAAA,EAAQ,IAAA,EAAK;AAAA,UAC7D,EAAE,IAAA,EAAQ,cAAA,EAAgB,IAAA,EAAQ,KAAA,EAAM;AAAA,UACxC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,QAAA,EAAS;AAAA,UAC1C,EAAE,IAAA,EAAQ,gBAAA,EAAkB,IAAA,EAAQ,KAAA,EAAM;AAAA,UAC1C,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,KAAA,EAAM;AAAA,UACvC,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,QAAA,EAAS;AAAA,UAC1C,EAAE,IAAA,EAAQ,YAAA,EAAc,IAAA,EAAQ,QAAA;AAAS;AAC3C;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,QAAU,CAAC,EAAE,MAAQ,kBAAA,EAAoB,IAAA,EAAQ,OAAO;AAAA;AAC1D,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ,EAAE,IAAA,EAAQ,GAAA,EAAI;AAAA,MACtB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,QAAA,EAAS;AAAA,UACxC,EAAE,IAAA,EAAQ,mBAAA,EAAqB,IAAA,EAAQ,KAAA;AAAM;AAC/C;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gFAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,MAAA,EAAO;AAAA,UAClC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,IAAA,EAAK;AAAA,UACtC,EAAE,IAAA,EAAQ,QAAA,EAAU,IAAA,EAAQ,IAAA;AAAK;AACnC;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oFAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR,EAAE,IAAA,EAAQ,OAAA,EAAS,IAAA,EAAQ,MAAA,EAAO;AAAA,UAClC,EAAE,IAAA,EAAQ,WAAA,EAAa,IAAA,EAAQ,EAAE,OAAS,CAAC,IAAA,EAAM,EAAE,CAAA,EAAE,EAAE;AAAA,UACvD,EAAE,IAAA,EAAQ,aAAA,EAAe,IAAA,EAAQ,IAAA;AAAK;AACxC;AACF;AACF;AAEJ,CAAA;;;AC19EO,IAAM,qCAAA,GAAwC;AA6C9C,IAAM,0BAA0B,IAAI,UAAA;AAAA,EACzC;AACF;AACO,SAAS,sBAAsB,QAAA,EAA6B;AACjE,EAAA,OAAO,IAAI,OAAA,CAAQ,WAAA,EAAoC,QAAQ,CAAA;AACjE;AAEO,SAAS,8BACd,IAAA,EACqB;AACrB,EAAA,MAAM,YAAA,GAAe,wBAAwB,QAAA,CAAS,MAAA;AAAA,IACpD,qBAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,OAAO,YAAA;AACT;AC9DO,IAAM,mBAAmB,IAAIA,SAAAA;AAAA,EAClC;AACF;AACO,IAAM,mBAAmB,IAAIA,SAAAA;AAAA,EAClC;AACF;AAE+B,IAAIA,SAAAA;AAAA,EACjC;AACF;AACmC,IAAIA,SAAAA;AAAA,EACrC;AACF;AAGO,IAAM,gBAAA,GAAmB;AAEzB,IAAM,mBAAmB,gBAAA,GAAmB;AAE5C,IAAM,iBAAiB,gBAAA,GAAmB;AAE1C,IAAM,gBAAgB,cAAA,GAAiB;AAEvC,IAAM,iBAAiB,aAAA,GAAgB;AAGvC,IAAM,+BAAA,GAAkC;AAExC,IAAM,sBAAA,GAAyB;;;ACFtC,IAAM,qBAAgC,IAAIA,SAAAA;AAAA,EACxC;AACF,CAAA;AACA,IAAM,cAAyB,IAAIA,SAAAA;AAAA,EACjC;AACF,CAAA;AAEA,SAAS,gBAAgB,MAAA,EAAmC;AAC1D,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,CAAC,OAAO,MAAA,CAAO,WAAW,KAAK,CAAC,MAAA,CAAO,OAAO,kBAAkB,CAAA;AACzE;AAEA,SAAS,gBAAgB,MAAA,EAA4C;AACnE,EAAA,IAAI,eAAA,CAAgB,MAAM,CAAA,EAAG;AAC3B,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,MAAO;AACL,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEA,IAAM,uBAAuB,CAAC;AAAA,EAC5B,OAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA;AACF,CAAA,KAAkC;AAChC,EAAA,MAAM,EAAA,GAAK,OAAA,CAAQ,OAAA,CAChB,cAAA,GACA,QAAA,CAAS;AAAA,IACR,OAAA;AAAA,IACA,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,gBAAgB,UAAU,CAAA;AAAA,IACtC,sBAAA,EAAwB,gBAAgB,sBAAsB,CAAA;AAAA,IAC9D,qBAAA,EAAuB,gBAAgB,qBAAqB,CAAA;AAAA,IAC5D,WAAA,EAAa,gBAAgB,WAAW;AAAA,GACzC,EACA,WAAA,EAAY;AAEf,EAAA,OAAO,EAAA;AACT,CAAA;AAYO,IAAM,gCAAA,GAAmC,OAAO,IAAA,CAAK;AAAA,EAC1D,EAAA;AAAA,EAAI,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,EAAA;AAAA,EAAI;AACnC,CAAC;AAOM,IAAM,uBAAA,GAA0B,CACrC,aAAA,EACA,UAAA,EACA,OAAA,KAC2B;AAC3B,EAAA,MAAM,IAAA,GAAsB;AAAA;AAAA,IAE1B,EAAE,MAAA,EAAQ,aAAA,EAAe,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAG5D,EAAE,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA;AAAA,IAGxD;AAAA,MACE,MAAA,EAAQ,OAAA;AAAA,MACR,QAAA,EAAU,KAAA;AAAA,MACV,UAAA,EAAY;AAAA;AACd,GACF;AAEA,EAAA,OAAO,IAAIgB,sBAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,gBAAA;AAAA,IACX,IAAA,EAAM;AAAA;AAAA,GACP,CAAA;AACH;AAEA,IAAM,2BAAA,GAA8B,OAAO,IAAA,CAAK;AAAA,EAC9C,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,EAAA;AAAA,EAAI,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK;AACpC,CAAC,CAAA;AAMM,IAAM,SAASb,QAAAA,CAAiC;AAAA,EACrDO,OAAK,kBAAkB;AACzB,CAAC;AAOM,SAAS,0BAAA,CACd,QAAA,EACA,SAAA,GAAuB,gBAAA,EACvB;AACA,EAAA,MAAM,iBAAA,GAAoB,QAAA,CAAS,OAAA,CAAQ,CAAC,OAAA,KAAY;AAAA,IACtD;AAAA,MACE,QAAQ,OAAA,CAAQ,OAAA;AAAA,MAChB,QAAA,EAAU,KAAA;AAAA,MACV,UAAA,EAAY;AAAA,KACd;AAAA,IACA;AAAA,MACE,QAAQ,OAAA,CAAQ,aAAA;AAAA,MAChB,QAAA,EAAU,KAAA;AAAA,MACV,UAAA,EAAY;AAAA;AACd,GACD,CAAA;AAED,EAAA,MAAM,IAAA,GAA2B,CAAC,GAAG,iBAAiB,CAAA;AACtD,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,CAAM,GAAI,CAAA;AAChC,EAAA,MAAM,MAAM,MAAA,CAAO,MAAA;AAAA,IACjB;AAAA,MACE,gBAAA,EAAkB;AAAA,KACpB;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,OAAO,MAAA,CAAO,MAAA,CAAO,CAAC,2BAAA,EAA6B,MAAM,CAAC,CAAA,CAAE,KAAA;AAAA,IAChE,CAAA;AAAA,IACA,CAAA,GAAI;AAAA,GACN;AACA,EAAA,MAAM,EAAA,GAAK,IAAIM,sBAAAA,CAAuB;AAAA,IACpC,SAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAA,OAAO,EAAA;AACT;AAEA,IAAM,iBAAA,GAAoB;AAAA,EACxB,oBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAO,oBAAA,GAAQ,iBAAA;;;ACpKf,eAAsB,iBAAA,CAAkB;AAAA,EACtC,YAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,MAAM,SAAA,GAAY,QAAQ,MAAA,CAAO,SAAA;AACjC,EAAA,MAAM,gBAAgB,OAAA,CAAQ,aAAA;AAC9B,EAAA,MAAM,gBAAA,GAAmB,MAAM,oBAAA,CAAkB,oBAAA,CAAqB;AAAA,IACpE,OAAA,EAAS,YAAA;AAAA,IACT,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,UAAA,EAAY,UAAU,iBAAA,CAAkB,KAAA;AAAA,IACxC,sBAAA,EAAwB,UAAU,wBAAA,CAAyB,eAAA;AAAA,IAC3D,qBAAA,EAAuB,UAAU,wBAAA,CAAyB,cAAA;AAAA,IAC1D,WAAA,EAAa,UAAU,kBAAA,CAAmB;AAAA,GAC3C,CAAA;AAED,EAAA,MAAM,sBAAsB,oBAAA,CAAkB,uBAAA;AAAA,IAC5C,aAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO,CAAC,kBAAkB,mBAAmB,CAAA;AAC/C;;;ACrBO,SAAS,mBACd,aAAA,EACgB;AAChB,EAAA,OAAO;AAAA,IACL,GAAA,EAAK,aAAA,CAAc,GAAA,CAAI,QAAA,EAAS;AAAA,IAChC,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,aAAA,CAAc,UAAA,CAAW,IAAA,CAAK,QAAA,EAAS;AAAA,MAC7C,KAAA,EAAO,cAAc,UAAA,CAAW,KAAA;AAAA,MAChC,WAAA,EAAa,cAAc,UAAA,CAAW,WAAA;AAAA,MACtC,WAAA,EAAa,cAAc,UAAA,CAAW;AAAA,KACxC;AAAA,IACA,aAAA,EAAe,aAAA,CAAc,aAAA,CAAc,QAAA,EAAS;AAAA,IACpD,KAAA,EAAO,aAAA,CAAc,KAAA,CAAM,QAAA,EAAS;AAAA,IACpC,QAAA,EAAU,cAAc,QAAA,CAAS,GAAA;AAAA,MAAI,CAAC,IAAA,KACpC,yBAAA,CAA0B,IAAI;AAAA,KAChC;AAAA,IACA,kCAAA,EACE,aAAA,CAAc,kCAAA,CAAmC,QAAA,EAAS;AAAA,IAC5D,gBAAA,EAAkB,aAAA,CAAc,gBAAA,CAAiB,QAAA,EAAS;AAAA,IAC1D,OAAA,EAAS,cAAc,OAAA,CAAQ,GAAA;AAAA,MAAI,CAAC,IAAA,KAClC,wBAAA,CAAyB,IAAI;AAAA,KAC/B;AAAA,IACA,+BAAA,EACE,aAAA,CAAc,+BAAA,CAAgC,QAAA,EAAS;AAAA,IACzD,2BAAA,EACE,aAAA,CAAc,2BAAA,CAA4B,QAAA,EAAS;AAAA,IACrD,oBAAA,EAAsB,aAAA,CAAc,oBAAA,CAAqB,QAAA,EAAS;AAAA,IAClE,sBAAA,EAAwB,aAAA,CAAc,sBAAA,CAAuB,QAAA,EAAS;AAAA,IACtE,oBAAoB,aAAA,CAAc,kBAAA;AAAA,IAClC,mBAAmB,aAAA,CAAc,iBAAA;AAAA,IACjC,gBAAgB,aAAA,CAAc,cAAA;AAAA,IAC9B,8BAA8B,aAAA,CAAc,4BAAA;AAAA,IAC5C,SAAS,aAAA,CAAc,OAAA;AAAA,IACvB,QAAA,EAAU,aAAA,CAAc,QAAA,CAAS,QAAA,EAAS;AAAA,IAC1C,mBAAmB,aAAA,CAAc,iBAAA;AAAA,IACjC,4BAA4B,aAAA,CAAc,0BAAA;AAAA,IAC1C,+BAA+B,aAAA,CAAc,6BAAA;AAAA,IAC7C,6BAA6B,aAAA,CAAc,2BAAA;AAAA,IAC3C,UAAU,aAAA,CAAc,QAAA;AAAA,IACxB,sBAAA,EAAwB,aAAA,CAAc,sBAAA,CAAuB,QAAA,EAAS;AAAA,IACtE,wCAAA,EACE,aAAA,CAAc,wCAAA,CAAyC,QAAA,EAAS;AAAA,IAClE,MAAA,EAAQ,cAAc,MAAA,CAAO,GAAA,CAAI,CAAC,IAAA,KAAS,oBAAA,CAAqB,IAAI,CAAC,CAAA;AAAA,IACrE,QAAA,EAAU,cAAc,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU;AAAA,GAChE;AACF;AAEO,SAAS,gBAAgB,UAAA,EAAqC;AACnE,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,UAAA,CAAW,OAAA,CAAQ,QAAA,EAAS;AAAA,IACrC,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,UAAA,CAAW,UAAA,CAAW,IAAA,CAAK,QAAA,EAAS;AAAA,MAC1C,KAAA,EAAO,WAAW,UAAA,CAAW,KAAA;AAAA,MAC7B,WAAA,EAAa,WAAW,UAAA,CAAW,WAAA;AAAA,MACnC,WAAA,EAAa,WAAW,UAAA,CAAW;AAAA,KACrC;AAAA,IACA,aAAA,EAAe,UAAA,CAAW,aAAA,CAAc,QAAA,EAAS;AAAA,IACjD,cAAA,EAAgB,UAAA,CAAW,cAAA,CAAe,QAAA,EAAS;AAAA,IACnD,QAAA,EAAU,UAAA,CAAW,QAAA,CAAS,QAAA,EAAS;AAAA,IACvC,SAAA,EAAW,2BAAA,CAA4B,UAAA,CAAW,SAAS,CAAA;AAAA,IAC3D,uBAAA,EAAyB,WAAW,uBAAA,CAAwB,GAAA;AAAA,MAAI,CAAC,IAAA,KAC/D,IAAA,CAAK,QAAA;AAAS,KAChB;AAAA,IACA,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,UAAA,CAAW,UAAA,CAAW,UAAA,CAAW,QAAA,EAAS;AAAA,MACtD,eAAA,EAAiB,UAAA,CAAW,UAAA,CAAW,eAAA,CAAgB,QAAA,EAAS;AAAA,MAChE,WAAA,EAAa,UAAA,CAAW,UAAA,CAAW,WAAA,CAAY,QAAA,EAAS;AAAA,MACxD,QAAA,EAAU,WAAW,UAAA,CAAW,QAAA,CAAS,IAAI,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,EAAU,CAAA;AAAA,MACtE,QAAA,EAAU,WAAW,UAAA,CAAW,QAAA,CAAS,IAAI,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,EAAU;AAAA,KACxE;AAAA,IACA,wBAAA,EAA0B,WAAW,wBAAA,CAAyB,GAAA;AAAA,MAAI,CAAC,IAAA,KACjE,IAAA,CAAK,QAAA;AAAS,KAChB;AAAA,IACA,MAAA,EAAQ,wBAAA,CAAyB,UAAA,CAAW,MAAM,CAAA;AAAA,IAClD,aAAA,EAAe,WAAW,aAAA,CAAc,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU,CAAA;AAAA,IACrE,mCAAA,EACE,UAAA,CAAW,mCAAA,CAAoC,QAAA,EAAS;AAAA,IAC1D,kDAAA,EACE,WAAW,kDAAA,CAAmD,GAAA;AAAA,MAC5D,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA;AAAS,KAC1B;AAAA,IACF,OAAA,EAAS,WAAW,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU;AAAA,GAC3D;AACF;AAEA,SAAS,4BACP,sBAAA,EACsB;AACtB,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,sBAAA,CAAuB,UAAA,CAAW,QAAA,EAAS;AAAA,IACvD,WAAA,EAAa,sBAAA,CAAuB,WAAA,CAAY,QAAA,EAAS;AAAA,IACzD,QAAA,EAAU,sBAAA,CAAuB,QAAA,CAAS,QAAA,EAAS;AAAA,IACnD,eAAA,EAAiB,sBAAA,CAAuB,eAAA,CAAgB,QAAA,EAAS;AAAA,IACjE,gBAAA,EAAkB,sBAAA,CAAuB,gBAAA,CAAiB,QAAA,EAAS;AAAA,IACnE,aAAA,EAAe,sBAAA,CAAuB,aAAA,CAAc,QAAA,EAAS;AAAA,IAC7D,wBAAA,EACE,sBAAA,CAAuB,wBAAA,CAAyB,QAAA,EAAS;AAAA,IAC3D,YAAA,EAAc,sBAAA,CAAuB,YAAA,CAAa,QAAA,EAAS;AAAA,IAC3D,4BAAA,EACE,sBAAA,CAAuB,4BAAA,CAA6B,QAAA,EAAS;AAAA,IAC/D,2BAAA,EACE,sBAAA,CAAuB,2BAAA,CAA4B,QAAA,EAAS;AAAA,IAC9D,uBAAA,EAAyB;AAAA,MACvB,KAAA,EAAO,sBAAA,CAAuB,uBAAA,CAAwB,KAAA,CAAM,GAAA;AAAA,QAAI,CAAC,IAAA,KAC/D,IAAA,CAAK,QAAA;AAAS,OAChB;AAAA,MACA,OAAA,EAAS,sBAAA,CAAuB,uBAAA,CAAwB,OAAA,CAAQ,GAAA;AAAA,QAC9D,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA;AAAS;AAC1B,KACF;AAAA,IACA,yBAAA,EACE,sBAAA,CAAuB,yBAAA,CAA0B,QAAA,EAAS;AAAA,IAC5D,yBAAA,EACE,sBAAA,CAAuB,yBAAA,CAA0B,QAAA,EAAS;AAAA,IAC5D,qBAAA,EACE,sBAAA,CAAuB,qBAAA,CAAsB,QAAA,EAAS;AAAA,IACxD,sBAAA,EACE,sBAAA,CAAuB,sBAAA,CAAuB,QAAA,EAAS;AAAA,IACzD,YAAA,EAAc,sBAAA,CAAuB,YAAA,CAAa,QAAA,EAAS;AAAA,IAC3D,QAAA,EAAU,uBAAuB,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU,CAAA;AAAA,IACvE,QAAA,EAAU,uBAAuB,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU;AAAA,GACzE;AACF;AAEA,SAAS,yBACP,mBAAA,EACmB;AACnB,EAAA,OAAO;AAAA,IACL,QAAQ,mBAAA,CAAoB,MAAA;AAAA,IAC5B,WAAW,mBAAA,CAAoB,SAAA;AAAA,IAC/B,0BAA0B,mBAAA,CAAoB,wBAAA;AAAA,IAC9C,WAAW,mBAAA,CAAoB,SAAA;AAAA,IAC/B,8BACE,mBAAA,CAAoB,4BAAA;AAAA,IACtB,qBAAqB,mBAAA,CAAoB,mBAAA;AAAA,IACzC,2BAA2B,mBAAA,CAAoB,yBAAA;AAAA,IAC/C,gBAAgB,mBAAA,CAAoB,cAAA;AAAA,IACpC,yBAAyB,mBAAA,CAAoB,uBAAA;AAAA,IAC7C,wBAAwB,mBAAA,CAAoB,sBAAA;AAAA,IAC5C,wBAAwB,mBAAA,CAAoB,sBAAA;AAAA,IAC5C,4BAA4B,mBAAA,CAAoB,0BAAA;AAAA,IAChD,gCAAA,EACE,mBAAA,CAAoB,gCAAA,CAAiC,QAAA,EAAS;AAAA,IAChE,sCAAA,EACE,mBAAA,CAAoB,sCAAA,CAAuC,QAAA,EAAS;AAAA,IACtE,IAAA,EAAM;AAAA,MACJ,WAAA,EAAa,mBAAA,CAAoB,IAAA,CAAK,WAAA,CAAY,QAAA,EAAS;AAAA,MAC3D,cAAA,EAAgB,mBAAA,CAAoB,IAAA,CAAK,cAAA,CAAe,QAAA,EAAS;AAAA,MACjE,OAAA,EAAS,oBAAoB,IAAA,CAAK;AAAA,KACpC;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,QAAQ,mBAAA,CAAoB,eAAA,CAAgB,MAAA,CAAO,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,QAChE,oBAAoB,IAAA,CAAK,kBAAA;AAAA,QACzB,eAAe,IAAA,CAAK;AAAA,OACtB,CAAE;AAAA,KACJ;AAAA,IACA,eAAA,EAAiB,mBAAA,CAAoB,eAAA,CAAgB,QAAA,EAAS;AAAA,IAC9D,YAAA,EAAc,mBAAA,CAAoB,YAAA,CAAa,QAAA,EAAS;AAAA,IACxD,WAAA,EAAa,mBAAA,CAAoB,WAAA,CAAY,QAAA,EAAS;AAAA,IACtD,SAAA,EAAW,oBAAA,CAAqB,mBAAA,CAAoB,SAAS,CAAA;AAAA,IAC7D,oBAAA,EAAsB,yBAAA;AAAA,MACpB,mBAAA,CAAoB;AAAA,KACtB;AAAA,IACA,iBAAA,EAAmB,yBAAA;AAAA,MACjB,mBAAA,CAAoB;AAAA,KACtB;AAAA,IACA,iBAAiB,mBAAA,CAAoB,eAAA;AAAA,IACrC,gCACE,mBAAA,CAAoB,8BAAA;AAAA,IACtB,wCACE,mBAAA,CAAoB,sCAAA;AAAA,IACtB,uBAAuB,mBAAA,CAAoB,qBAAA;AAAA,IAC3C,WAAW,mBAAA,CAAoB,SAAA;AAAA,IAC/B,gCAAA,EACE,mBAAA,CAAoB,gCAAA,CAAiC,QAAA,EAAS;AAAA,IAChE,gDAAA,EACE,oBAAoB,gDAAA,CAAiD,GAAA;AAAA,MACnE,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA;AAAS,KAC1B;AAAA,IACF,kCAAA,EACE,mBAAA,CAAoB,kCAAA,CAAmC,QAAA;AAAS,GACpE;AACF;AAEA,SAAS,qBAAqB,eAAA,EAAiD;AAC7E,EAAA,OAAO;AAAA,IACL,MAAM,eAAA,CAAgB,IAAA;AAAA,IACtB,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,eAAA,CAAgB,SAAA,CAAU,KAAA,CAAM,QAAA,EAAS;AAAA,MAChD,KAAA,EAAO,eAAA,CAAgB,SAAA,CAAU,KAAA,CAAM,QAAA,EAAS;AAAA,MAChD,GAAA,EAAK,eAAA,CAAgB,SAAA,CAAU,GAAA,CAAI,QAAA;AAAS,KAC9C;AAAA,IACA,oBAAA,EAAsB,eAAA,CAAgB,oBAAA,CAAqB,QAAA,EAAS;AAAA,IACpE,kBAAA,EAAoB,eAAA,CAAgB,kBAAA,CAAmB,QAAA,EAAS;AAAA,IAChE,iBAAA,EAAmB,eAAA,CAAgB,iBAAA,CAAkB,QAAA,EAAS;AAAA,IAC9D,kBAAA,EAAoB;AAAA,MAClB,SAAA,EAAW,eAAA,CAAgB,kBAAA,CAAmB,SAAA,CAAU,QAAA,EAAS;AAAA,MACjE,UAAA,EAAY,gBAAgB,kBAAA,CAAmB,UAAA;AAAA,MAC/C,SAAA,EAAW,gBAAgB,kBAAA,CAAmB;AAAA,KAChD;AAAA,IACA,wBAAA,EAA0B;AAAA,MACxB,eAAA,EACE,eAAA,CAAgB,wBAAA,CAAyB,eAAA,CAAgB,QAAA,EAAS;AAAA,MACpE,cAAA,EACE,eAAA,CAAgB,wBAAA,CAAyB,cAAA,CAAe,QAAA;AAAS,KACrE;AAAA,IACA,iBAAA,EAAmB;AAAA,MACjB,KAAA,EAAO,eAAA,CAAgB,iBAAA,CAAkB,KAAA,CAAM,QAAA;AAAS,KAC1D;AAAA,IACA,iBAAiB,eAAA,CAAgB,eAAA;AAAA,IACjC,UAAU,eAAA,CAAgB,QAAA;AAAA,IAC1B,OAAA,EAAS,gBAAgB,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU;AAAA,GAChE;AACF;AAEA,SAAS,0BACP,oBAAA,EACoB;AACpB,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,oBAAA,CAAqB,cAAA,CAAe,QAAA,EAAS;AAAA,IAC7D,YAAA,EAAc,oBAAA,CAAqB,YAAA,CAAa,QAAA,EAAS;AAAA,IACzD,0BAAA,EACE,oBAAA,CAAqB,0BAAA,CAA2B,QAAA,EAAS;AAAA,IAC3D,2BAAA,EACE,oBAAA,CAAqB,2BAAA,CAA4B,QAAA;AAAS,GAC9D;AACF;AAEA,SAAS,0BACP,0BAAA,EAC0B;AAC1B,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,0BAAA,CAA2B,cAAA,CAAe,QAAA,EAAS;AAAA,IACnE,eAAA,EAAiB,0BAAA,CAA2B,eAAA,CAAgB,QAAA,EAAS;AAAA,IACrE,aAAA,EAAe,0BAAA,CAA2B,aAAA,CAAc,QAAA,EAAS;AAAA,IACjE,mDAAA,EACE,0BAAA,CAA2B,mDAAA,CAAoD,QAAA,EAAS;AAAA,IAC1F,OAAA,EAAS,2BAA2B,OAAA,CAAQ,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU;AAAA,GAC3E;AACF;AAEA,SAAS,yBACP,yBAAA,EACyB;AACzB,EAAA,OAAO;AAAA,IACL,aAAA,EAAe,yBAAA,CAA0B,aAAA,CAAc,QAAA,EAAS;AAAA,IAChE,uBAAA,EAAyB;AAAA,MACvB,KAAA,EAAO,yBAAA,CAA0B,uBAAA,CAAwB,KAAA,CAAM,GAAA;AAAA,QAC7D,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA;AAAS,OAC1B;AAAA,MACA,OAAA,EAAS,yBAAA,CAA0B,uBAAA,CAAwB,OAAA,CAAQ,GAAA;AAAA,QACjE,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA;AAAS;AAC1B,KACF;AAAA,IACA,OAAA,EAAS,yBAAA,CAA0B,OAAA,CAAQ,QAAA,EAAS;AAAA,IACpD,gBAAA,EAAkB,yBAAA,CAA0B,gBAAA,CAAiB,QAAA,EAAS;AAAA,IACtE,aAAA,EAAe,yBAAA,CAA0B,aAAA,CAAc,QAAA,EAAS;AAAA,IAChE,iCAAA,EACE,yBAAA,CAA0B,iCAAA,CAAkC,QAAA,EAAS;AAAA,IACvE,oCAAA,EACE,yBAAA,CAA0B,oCAAA,CAAqC,QAAA,EAAS;AAAA,IAC1E,QAAA,EAAU,0BAA0B,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU;AAAA,GAC5E;AACF;AAEA,SAAS,qBACP,qBAAA,EACqB;AACrB,EAAA,OAAO;AAAA,IACL,oBAAA,EAAsB,qBAAA,CAAsB,oBAAA,CAAqB,QAAA,EAAS;AAAA,IAC1E,sBAAA,EACE,qBAAA,CAAsB,sBAAA,CAAuB,QAAA,EAAS;AAAA,IACxD,sBAAsB,qBAAA,CAAsB,oBAAA;AAAA,IAC5C,sBAAsB,qBAAA,CAAsB,oBAAA;AAAA,IAC5C,eAAe,qBAAA,CAAsB,aAAA;AAAA,IACrC,iBAAiB,qBAAA,CAAsB,eAAA;AAAA,IACvC,UAAU,qBAAA,CAAsB,QAAA;AAAA,IAChC,QAAA,EAAU,sBAAsB,QAAA,CAAS,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,UAAU;AAAA,GACxE;AACF;;;AC5SA,IAAA,aAAA,GAAA;AAAA,EACE,OAAA,EAAW,6CAAA;AAAA,EACX,QAAA,EAAY;AAAA,IACV,IAAA,EAAQ,gBAAA;AAAA,IACR,OAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAQ;AAAA,GACV;AAAA,EACA,YAAA,EAAgB;AAAA,IACd;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS;AAAA,cACP,IAAA;AAAA,cACA;AAAA;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS;AAAA,cACP,IAAA;AAAA,cACA;AAAA;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,cAAA;AAAA,cACR,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,+BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,UAAY,EAAC;AAAA,MACb,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,iBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,gCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,wBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,kBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,2BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,6BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,gBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,0BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,uCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,sBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,+BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,eAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,+BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,uBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,CAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,eAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,+BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,uBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,kBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,2BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,0BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,0BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,wCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,uBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,kBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,2BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,0BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qDAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wDAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,0BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,wCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,uBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8DAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iEAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,OAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,kBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,2BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,0BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oDAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0CAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uDAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,MAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,YAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,0BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,eAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,gCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,kBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,kCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,mCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,yCAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,uBAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,6BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA,aACV;AAAA,YACA;AAAA,cACE,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,YACV;AAAA,cACE,IAAA,EAAQ,4BAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA,aACd;AAAA,YACA;AAAA,cACE,IAAA,EAAQ,oBAAA;AAAA,cACR,QAAA,EAAY,IAAA;AAAA,cACZ,QAAA,EAAY;AAAA;AACd;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0CAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,+BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,GACF;AAAA,EACA,QAAA,EAAY;AAAA,IACV;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF;AACF,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,aAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,aAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,aAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,aAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gDAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6CAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iDAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0CAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4CAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kDAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,KAAA,EAAS;AAAA,IACP;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA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","file":"vendor.js","sourcesContent":["import { Buffer } from \"buffer\";\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L758\nconst ERR_BUFFER_OUT_OF_BOUNDS = () =>\n new Error(\"Attempt to access memory outside buffer bounds\");\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L968\nconst ERR_INVALID_ARG_TYPE = (name: string, expected: string, actual: any) =>\n new Error(\n `The \"${name}\" argument must be of type ${expected}. Received ${actual}`\n );\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L1262\nconst ERR_OUT_OF_RANGE = (str: string, range: string, received: number) =>\n new Error(\n `The value of \"${str} is out of range. It must be ${range}. Received ${received}`\n );\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/validators.js#L127-L130\nfunction validateNumber(value: any, name: string) {\n if (typeof value !== \"number\")\n throw ERR_INVALID_ARG_TYPE(name, \"number\", value);\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L68-L80\nfunction boundsError(value: number, length: number) {\n if (Math.floor(value) !== value) {\n validateNumber(value, \"offset\");\n throw ERR_OUT_OF_RANGE(\"offset\", \"an integer\", value);\n }\n\n if (length < 0) throw ERR_BUFFER_OUT_OF_BOUNDS();\n\n throw ERR_OUT_OF_RANGE(\"offset\", `>= 0 and <= ${length}`, value);\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L129-L145\nexport function readBigInt64LE(buffer: Buffer, offset = 0): bigint {\n validateNumber(offset, \"offset\");\n const first = buffer[offset];\n const last = buffer[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset, buffer.length - 8);\n // tslint:disable-next-line:no-bitwise\n const val =\n buffer[offset + 4]! +\n buffer[offset + 5]! * 2 ** 8 +\n buffer[offset + 6]! * 2 ** 16 +\n (last! << 24); // Overflow\n return (\n (BigInt(val) << BigInt(32)) + // tslint:disable-line:no-bitwise\n BigInt(\n first! +\n buffer[++offset]! * 2 ** 8 +\n buffer[++offset]! * 2 ** 16 +\n buffer[++offset]! * 2 ** 24\n )\n );\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L89-L107\nexport function readBigUInt64LE(buffer: Buffer, offset = 0): bigint {\n validateNumber(offset, \"offset\");\n const first = buffer[offset];\n const last = buffer[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset, buffer.length - 8);\n\n const lo =\n first! +\n buffer[++offset]! * 2 ** 8 +\n buffer[++offset]! * 2 ** 16 +\n buffer[++offset]! * 2 ** 24;\n\n const hi =\n buffer[++offset]! +\n buffer[++offset]! * 2 ** 8 +\n buffer[++offset]! * 2 ** 16 +\n last! * 2 ** 24;\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32)); // tslint:disable-line:no-bitwise\n}\n","import { readBigInt64LE, readBigUInt64LE } from \"./readBig\";\nimport { PublicKey } from \"@solana/web3.js\";\n\n/** Number of slots that can pass before a publisher's price is no longer included in the aggregate. */\nexport const MAX_SLOT_DIFFERENCE = 25;\nconst empty32Buffer = Buffer.alloc(32);\nconst PKorNull = (data: Buffer) => (data.equals(empty32Buffer) ? null : new PublicKey(data));\n\nexport interface Price {\n priceComponent: bigint;\n price: number;\n confidenceComponent: bigint;\n confidence: number;\n status: PriceStatus;\n corporateAction: CorpAction;\n publishSlot: number;\n}\n\nexport enum PriceStatus {\n Unknown,\n Trading,\n Halted,\n Auction,\n Ignored,\n}\n\nexport enum CorpAction {\n NoCorpAct,\n}\n\nconst parsePriceInfo = (data: Buffer, exponent: number): Price => {\n // aggregate price\n const priceComponent = readBigInt64LE(data, 0);\n const price = Number(priceComponent) * 10 ** exponent;\n // aggregate confidence\n const confidenceComponent = readBigUInt64LE(data, 8);\n const confidence = Number(confidenceComponent) * 10 ** exponent;\n // aggregate status\n const status: PriceStatus = data.readUInt32LE(16);\n // aggregate corporate action\n const corporateAction: CorpAction = data.readUInt32LE(20);\n // aggregate publish slot. It is converted to number to be consistent with Solana's library interface (Slot there is number)\n const publishSlot = Number(readBigUInt64LE(data, 24));\n return {\n priceComponent,\n price,\n confidenceComponent,\n confidence,\n status,\n corporateAction,\n publishSlot,\n };\n};\n\nexport interface PriceData extends Base {\n priceType: PriceType;\n exponent: number;\n numComponentPrices: number;\n numQuoters: number;\n lastSlot: bigint;\n validSlot: bigint;\n emaPrice: Ema;\n emaConfidence: Ema;\n timestamp: bigint;\n minPublishers: number;\n drv2: number;\n drv3: number;\n drv4: number;\n productAccountKey: PublicKey;\n nextPriceAccountKey: PublicKey | null;\n previousSlot: bigint;\n previousPriceComponent: bigint;\n previousPrice: number;\n previousConfidenceComponent: bigint;\n previousConfidence: number;\n previousTimestamp: bigint;\n priceComponents: PriceComponent[];\n aggregate: Price;\n // The current price and confidence and status. The typical use of this interface is to consume these three fields.\n // If undefined, Pyth does not currently have price information for this product. This condition can\n // happen for various reasons (e.g., US equity market is closed, or insufficient publishers), and your\n // application should handle it gracefully. Note that other raw price information fields (such as\n // aggregate.price) may be defined even if this is undefined; you most likely should not use those fields,\n // as their value can be arbitrary when this is undefined.\n price: number | undefined;\n confidence: number | undefined;\n status: PriceStatus;\n}\n\nexport interface Base {\n magic: number;\n version: number;\n type: AccountType;\n size: number;\n}\n\nexport enum AccountType {\n Unknown,\n Mapping,\n Product,\n Price,\n Test,\n Permission,\n}\n\nexport enum PriceType {\n Unknown,\n Price,\n}\n\n/**\n * valueComponent = numerator / denominator\n * value = valueComponent * 10 ^ exponent (from PriceData)\n */\nexport interface Ema {\n valueComponent: bigint;\n value: number;\n numerator: bigint;\n denominator: bigint;\n}\n\nexport interface PriceComponent {\n publisher: PublicKey;\n aggregate: Price;\n latest: Price;\n}\n\n// Provide currentSlot when available to allow status to consider the case when price goes stale. It is optional because\n// it requires an extra request to get it when it is not available which is not always efficient.\nexport const parsePriceData = (data: Buffer, currentSlot?: number): PriceData => {\n // pyth magic number\n const magic = data.readUInt32LE(0);\n // program version\n const version = data.readUInt32LE(4);\n // account type\n const type = data.readUInt32LE(8);\n // price account size\n const size = data.readUInt32LE(12);\n // price or calculation type\n const priceType: PriceType = data.readUInt32LE(16);\n // price exponent\n const exponent = data.readInt32LE(20);\n // number of component prices\n const numComponentPrices = data.readUInt32LE(24);\n // number of quoters that make up aggregate\n const numQuoters = data.readUInt32LE(28);\n // slot of last valid (not unknown) aggregate price\n const lastSlot = readBigUInt64LE(data, 32);\n // valid on-chain slot of aggregate price\n const validSlot = readBigUInt64LE(data, 40);\n // exponential moving average price\n const emaPrice = parseEma(data.slice(48, 72), exponent);\n // exponential moving average confidence interval\n const emaConfidence = parseEma(data.slice(72, 96), exponent);\n // timestamp of the current price\n const timestamp = readBigInt64LE(data, 96);\n // minimum number of publishers for status to be TRADING\n const minPublishers = data.readUInt8(104);\n // space for future derived values\n const drv2 = data.readInt8(105);\n // space for future derived values\n const drv3 = data.readInt16LE(106);\n // space for future derived values\n const drv4 = data.readInt32LE(108);\n // product id / reference account\n const productAccountKey = new PublicKey(data.slice(112, 144));\n // next price account in list\n const nextPriceAccountKey = PKorNull(data.slice(144, 176));\n // valid slot of previous update\n const previousSlot = readBigUInt64LE(data, 176);\n // aggregate price of previous update\n const previousPriceComponent = readBigInt64LE(data, 184);\n const previousPrice = Number(previousPriceComponent) * 10 ** exponent;\n // confidence interval of previous update\n const previousConfidenceComponent = readBigUInt64LE(data, 192);\n const previousConfidence = Number(previousConfidenceComponent) * 10 ** exponent;\n // space for future derived values\n const previousTimestamp = readBigInt64LE(data, 200);\n const aggregate = parsePriceInfo(data.slice(208, 240), exponent);\n\n let status = aggregate.status;\n\n if (currentSlot && status === PriceStatus.Trading) {\n if (currentSlot - aggregate.publishSlot > MAX_SLOT_DIFFERENCE) {\n status = PriceStatus.Unknown;\n }\n }\n\n let price;\n let confidence;\n if (status === PriceStatus.Trading) {\n price = aggregate.price;\n confidence = aggregate.confidence;\n }\n\n // price components - up to 32\n const priceComponents: PriceComponent[] = [];\n let offset = 240;\n while (priceComponents.length < numComponentPrices) {\n const publisher = new PublicKey(data.slice(offset, offset + 32));\n offset += 32;\n const componentAggregate = parsePriceInfo(data.slice(offset, offset + 32), exponent);\n offset += 32;\n const latest = parsePriceInfo(data.slice(offset, offset + 32), exponent);\n offset += 32;\n priceComponents.push({ publisher, aggregate: componentAggregate, latest });\n }\n\n return {\n magic,\n version,\n type,\n size,\n priceType,\n exponent,\n numComponentPrices,\n numQuoters,\n lastSlot,\n validSlot,\n emaPrice,\n emaConfidence,\n timestamp,\n minPublishers,\n drv2,\n drv3,\n drv4,\n productAccountKey,\n nextPriceAccountKey,\n previousSlot,\n previousPriceComponent,\n previousPrice,\n previousConfidenceComponent,\n previousConfidence,\n previousTimestamp,\n aggregate,\n priceComponents,\n price,\n confidence,\n status,\n };\n};\n\nconst parseEma = (data: Buffer, exponent: number): Ema => {\n // current value of ema\n const valueComponent = readBigInt64LE(data, 0);\n const value = Number(valueComponent) * 10 ** exponent;\n // numerator state for next update\n const numerator = readBigInt64LE(data, 8);\n // denominator state for next update\n const denominator = readBigInt64LE(data, 16);\n return { valueComponent, value, numerator, denominator };\n};\n","import { Connection, PublicKey } from \"@solana/web3.js\";\nimport BigNumber from \"bignumber.js\";\nimport { deserialize } from \"borsh\";\nimport { PYTH_PRICE_CONF_INTERVALS } from \"../../constants\";\n\ntype PriceUpdateV2 = {\n writeAuthority: Buffer;\n verificationLevel: number;\n priceMessage: {\n feedId: Buffer;\n price: bigint;\n conf: bigint;\n exponent: number;\n publishTime: bigint;\n prevPublishTime: bigint;\n emaPrice: bigint;\n emaConf: bigint;\n };\n};\n\nconst priceUpdateV2Schema = {\n struct: {\n writeAuthority: {\n array: { type: \"u8\", len: 32 },\n },\n verificationLevel: \"u8\",\n priceMessage: {\n struct: {\n feedId: { array: { type: \"u8\", len: 32 } },\n price: \"i64\",\n conf: \"u64\",\n exponent: \"i32\",\n publishTime: \"i64\",\n prevPublishTime: \"i64\",\n emaPrice: \"i64\",\n emaConf: \"u64\",\n },\n },\n postedSlot: \"u64\",\n },\n};\n\nexport const parsePriceInfo = (data: Buffer): PriceUpdateV2 => {\n let decoded: PriceUpdateV2 = deserialize(priceUpdateV2Schema, data) as any;\n return decoded;\n};\n\nfunction capConfidenceInterval(\n price: BigNumber,\n confidence: BigNumber,\n maxConfidence: BigNumber\n): BigNumber {\n let maxConfidenceInterval = price.times(maxConfidence);\n\n return BigNumber.min(confidence, maxConfidenceInterval);\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const JUPITER_V6_PROGRAM: PublicKey = new PublicKey(\n \"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\"\n);\nexport const SINGLE_POOL_PROGRAM_ID: PublicKey = new PublicKey(\n \"SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE\"\n);\nexport const STAKE_PROGRAM_ID: PublicKey = new PublicKey(\n \"Stake11111111111111111111111111111111111111\"\n);\nexport const MPL_METADATA_PROGRAM_ID: PublicKey = new PublicKey(\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n);\nexport const SYSTEM_PROGRAM_ID: PublicKey = new PublicKey(\"11111111111111111111111111111111\");\nexport const SYSVAR_RENT_ID: PublicKey = new PublicKey(\n \"SysvarRent111111111111111111111111111111111\"\n);\nexport const SYSVAR_CLOCK_ID: PublicKey = new PublicKey(\n \"SysvarC1ock11111111111111111111111111111111\"\n);\nexport const SYSVAR_STAKE_HISTORY_ID: PublicKey = new PublicKey(\n \"SysvarStakeHistory1111111111111111111111111\"\n);\nexport const STAKE_CONFIG_ID: PublicKey = new PublicKey(\n \"StakeConfig11111111111111111111111111111111\"\n);\n","import { PublicKey } from \"@solana/web3.js\";\n\n/** Information about a token account */\nexport interface Account {\n /** Address of the account */\n address: PublicKey;\n /** Mint associated with the account */\n mint: PublicKey;\n /** Owner of the account */\n owner: PublicKey;\n /** Number of tokens the account holds */\n amount: bigint;\n /** Authority that can transfer tokens from the account */\n delegate: PublicKey | null;\n /** Number of tokens the delegate is authorized to transfer */\n delegatedAmount: bigint;\n /** True if the account is initialized */\n isInitialized: boolean;\n /** True if the account is frozen */\n isFrozen: boolean;\n /** True if the account is a native token account */\n isNative: boolean;\n /**\n * If the account is a native token account, it must be rent-exempt. The rent-exempt reserve is the amount that must\n * remain in the balance until the account is closed.\n */\n rentExemptReserve: bigint | null;\n /** Optional authority to close the account */\n closeAuthority: PublicKey | null;\n tlvData: Buffer;\n}\n\n/** Token account state as stored by the program */\nexport enum AccountState {\n Uninitialized = 0,\n Initialized = 1,\n Frozen = 2,\n}\n\n/** Token account as stored by the program */\nexport interface RawAccount {\n mint: PublicKey;\n owner: PublicKey;\n amount: bigint;\n delegateOption: 1 | 0;\n delegate: PublicKey;\n state: AccountState;\n isNativeOption: 1 | 0;\n isNative: bigint;\n delegatedAmount: bigint;\n closeAuthorityOption: 1 | 0;\n closeAuthority: PublicKey;\n}\n","/** Base class for errors */\nexport abstract class TokenError extends Error {\n constructor(message?: string) {\n super(message);\n }\n}\n\n/** Thrown if an account is not found at the expected address */\nexport class TokenAccountNotFoundError extends TokenError {\n name = \"TokenAccountNotFoundError\";\n}\n\n/** Thrown if a program state account is not a valid Account */\nexport class TokenInvalidAccountError extends TokenError {\n name = \"TokenInvalidAccountError\";\n}\n\n/** Thrown if a program state account is not owned by the expected token program */\nexport class TokenInvalidAccountOwnerError extends TokenError {\n name = \"TokenInvalidAccountOwnerError\";\n}\n\n/** Thrown if the byte length of an program state account doesn't match the expected size */\nexport class TokenInvalidAccountSizeError extends TokenError {\n name = \"TokenInvalidAccountSizeError\";\n}\n\n/** Thrown if the mint of a token account doesn't match the expected mint */\nexport class TokenInvalidMintError extends TokenError {\n name = \"TokenInvalidMintError\";\n}\n\n/** Thrown if the owner of a token account doesn't match the expected owner */\nexport class TokenInvalidOwnerError extends TokenError {\n name = \"TokenInvalidOwnerError\";\n}\n\n/** Thrown if the owner of a token account is a PDA (Program Derived Address) */\nexport class TokenOwnerOffCurveError extends TokenError {\n name = \"TokenOwnerOffCurveError\";\n}\n\n/** Thrown if an instruction's program is invalid */\nexport class TokenInvalidInstructionProgramError extends TokenError {\n name = \"TokenInvalidInstructionProgramError\";\n}\n\n/** Thrown if an instruction's keys are invalid */\nexport class TokenInvalidInstructionKeysError extends TokenError {\n name = \"TokenInvalidInstructionKeysError\";\n}\n\n/** Thrown if an instruction's data is invalid */\nexport class TokenInvalidInstructionDataError extends TokenError {\n name = \"TokenInvalidInstructionDataError\";\n}\n\n/** Thrown if an instruction's type is invalid */\nexport class TokenInvalidInstructionTypeError extends TokenError {\n name = \"TokenInvalidInstructionTypeError\";\n}\n\n/** Thrown if the program does not support the desired instruction */\nexport class TokenUnsupportedInstructionError extends TokenError {\n name = \"TokenUnsupportedInstructionError\";\n}\n","import { struct, u8 } from \"@solana/buffer-layout\";\nimport { bool, publicKey } from \"@solana/buffer-layout-utils\";\n\nimport { Multisig } from \"../types\";\n\n/** Multisig as stored by the program */\nexport type RawMultisig = Omit<Multisig, \"address\">;\n\n/** Buffer layout for de/serializing a multisig */\nexport const MultisigLayout = struct<RawMultisig>([\n u8(\"m\"),\n u8(\"n\"),\n bool(\"isInitialized\"),\n publicKey(\"signer1\"),\n publicKey(\"signer2\"),\n publicKey(\"signer3\"),\n publicKey(\"signer4\"),\n publicKey(\"signer5\"),\n publicKey(\"signer6\"),\n publicKey(\"signer7\"),\n publicKey(\"signer8\"),\n publicKey(\"signer9\"),\n publicKey(\"signer10\"),\n publicKey(\"signer11\"),\n]);\n\n/** Byte length of a multisig */\nexport const MULTISIG_SIZE = MultisigLayout.span;\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const MEMO_PROGRAM_ID: PublicKey = new PublicKey(\n \"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\"\n);\n\n/** Address of the SPL Associated Token Account program */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey = new PublicKey(\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n);\n\nexport const TOKEN_PROGRAM_ID = new PublicKey(\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\");\nexport const TOKEN_2022_PROGRAM_ID = new PublicKey(\"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\");\n","import { struct, u32, u8 } from \"@solana/buffer-layout\";\nimport { publicKey, u64 } from \"@solana/buffer-layout-utils\";\nimport { AccountInfo, Commitment, Connection, PublicKey } from \"@solana/web3.js\";\nimport { Buffer } from \"buffer\";\n\nimport { Account, AccountState, RawAccount } from \"../types\";\nimport {\n TokenAccountNotFoundError,\n TokenInvalidAccountError,\n TokenInvalidAccountOwnerError,\n TokenInvalidAccountSizeError,\n} from \"../errors\";\nimport { MULTISIG_SIZE } from \"./multisig.utils\";\nimport { TOKEN_PROGRAM_ID } from \"../constants\";\n\nexport enum SplAccountType {\n Uninitialized,\n Mint,\n Account,\n}\n\nexport const ACCOUNT_TYPE_SIZE = 1;\n\n/** Buffer layout for de/serializing a token account */\nexport const AccountLayout = struct<RawAccount>([\n publicKey(\"mint\"),\n publicKey(\"owner\"),\n u64(\"amount\"),\n u32(\"delegateOption\"),\n publicKey(\"delegate\"),\n u8(\"state\"),\n u32(\"isNativeOption\"),\n u64(\"isNative\"),\n u64(\"delegatedAmount\"),\n u32(\"closeAuthorityOption\"),\n publicKey(\"closeAuthority\"),\n]);\n\n/** Byte length of a token account */\nexport const ACCOUNT_SIZE = AccountLayout.span;\n\nexport const NATIVE_MINT = new PublicKey(\"So11111111111111111111111111111111111111112\");\n\n/**\n * Retrieve information about a token account\n *\n * @param connection Connection to use\n * @param address Token account\n * @param commitment Desired level of commitment for querying the state\n * @param programId SPL Token program account\n *\n * @return Token account information\n */\nexport async function getAccount(\n connection: Connection,\n address: PublicKey,\n commitment?: Commitment,\n programId = TOKEN_PROGRAM_ID\n): Promise<Account> {\n const info = await connection.getAccountInfo(address, commitment);\n return unpackAccount(address, info, programId);\n}\n\n/**\n * Retrieve information about multiple token accounts in a single RPC call\n *\n * @param connection Connection to use\n * @param addresses Token accounts\n * @param commitment Desired level of commitment for querying the state\n * @param programId SPL Token program account\n *\n * @return Token account information\n */\nexport async function getMultipleAccounts(\n connection: Connection,\n addresses: PublicKey[],\n commitment?: Commitment,\n programId = TOKEN_PROGRAM_ID\n): Promise<Account[]> {\n const infos = await connection.getMultipleAccountsInfo(addresses, commitment);\n return addresses.map((address, i) =>\n //@ts-ignore\n unpackAccount(address, infos[i], programId)\n );\n}\n\n/** Get the minimum lamport balance for a base token account to be rent exempt\n *\n * @param connection Connection to use\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptAccount(\n connection: Connection,\n commitment?: Commitment\n): Promise<number> {\n return await getMinimumBalanceForRentExemptAccountWithExtensions(connection, [], commitment);\n}\n\nexport enum ExtensionType {\n Uninitialized,\n TransferFeeConfig,\n TransferFeeAmount,\n MintCloseAuthority,\n ConfidentialTransferMint,\n ConfidentialTransferAccount,\n DefaultAccountState,\n ImmutableOwner,\n MemoTransfer,\n NonTransferable,\n InterestBearingMint,\n}\n\nexport function getAccountLen(extensionTypes: ExtensionType[]): number {\n return getLen(extensionTypes, ACCOUNT_SIZE);\n}\n\nexport const TYPE_SIZE = 2;\nexport const LENGTH_SIZE = 2;\n\nfunction getLen(extensionTypes: ExtensionType[], baseSize: number): number {\n if (extensionTypes.length === 0) {\n return baseSize;\n } else {\n const accountLength = ACCOUNT_SIZE + ACCOUNT_TYPE_SIZE;\n if (accountLength === MULTISIG_SIZE) {\n return accountLength + TYPE_SIZE;\n } else {\n return accountLength;\n }\n }\n}\n\n/** Get the minimum lamport balance for a rent-exempt token account with extensions\n *\n * @param connection Connection to use\n * @param extensions\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptAccountWithExtensions(\n connection: Connection,\n extensions: ExtensionType[],\n commitment?: Commitment\n): Promise<number> {\n const accountLen = getAccountLen(extensions);\n return await connection.getMinimumBalanceForRentExemption(accountLen, commitment);\n}\n\n/**\n * Unpack a token account\n *\n * @param address Token account\n * @param info Token account data\n * @param programId SPL Token program account\n *\n * @return Unpacked token account\n */\nexport function unpackAccount(\n address: PublicKey,\n info: AccountInfo<Buffer> | null,\n programId = TOKEN_PROGRAM_ID\n): Account {\n if (!info) throw new TokenAccountNotFoundError();\n if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n if (info.data.length < ACCOUNT_SIZE) throw new TokenInvalidAccountSizeError();\n\n const rawAccount = AccountLayout.decode(info.data.slice(0, ACCOUNT_SIZE));\n let tlvData = Buffer.alloc(0);\n if (info.data.length > ACCOUNT_SIZE) {\n if (info.data.length === MULTISIG_SIZE) throw new TokenInvalidAccountSizeError();\n if (info.data[ACCOUNT_SIZE] != SplAccountType.Account) throw new TokenInvalidAccountError();\n tlvData = info.data.slice(ACCOUNT_SIZE + ACCOUNT_TYPE_SIZE);\n }\n\n return {\n address,\n mint: rawAccount.mint,\n owner: rawAccount.owner,\n amount: rawAccount.amount,\n delegate: rawAccount.delegateOption ? rawAccount.delegate : null,\n delegatedAmount: rawAccount.delegatedAmount,\n isInitialized: rawAccount.state !== AccountState.Uninitialized,\n isFrozen: rawAccount.state === AccountState.Frozen,\n isNative: !!rawAccount.isNativeOption,\n rentExemptReserve: rawAccount.isNativeOption ? rawAccount.isNative : null,\n closeAuthority: rawAccount.closeAuthorityOption ? rawAccount.closeAuthority : null,\n tlvData,\n };\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nimport { TokenOwnerOffCurveError } from \"../errors\";\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from \"../constants\";\n\n/**\n * Get the address of the associated token account for a given mint and owner\n *\n * @param mint Token mint account\n * @param owner Owner of the new account\n * @param allowOwnerOffCurve Allow the owner account to be a PDA (Program Derived Address)\n * @param programId SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Address of the associated token account\n */\nexport function getAssociatedTokenAddressSync(\n mint: PublicKey,\n owner: PublicKey,\n allowOwnerOffCurve = false,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): PublicKey {\n if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer()))\n throw new TokenOwnerOffCurveError();\n\n const [address] = PublicKey.findProgramAddressSync(\n [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],\n associatedTokenProgramId\n );\n\n return address;\n}\n","import { AccountMeta, PublicKey, Signer } from \"@solana/web3.js\";\n\n/** @internal */\nexport function addSigners(\n keys: AccountMeta[],\n ownerOrAuthority: PublicKey,\n multiSigners: Signer[]\n): AccountMeta[] {\n if (multiSigners.length) {\n keys.push({ pubkey: ownerOrAuthority, isSigner: false, isWritable: false });\n for (const signer of multiSigners) {\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n });\n }\n } else {\n keys.push({ pubkey: ownerOrAuthority, isSigner: true, isWritable: false });\n }\n return keys;\n}\n","import { struct, u32, u8 } from \"@solana/buffer-layout\";\nimport { bool, publicKey, u64 } from \"@solana/buffer-layout-utils\";\nimport { Commitment, Connection, PublicKey } from \"@solana/web3.js\";\n\nimport { Mint, RawMint } from \"../types\";\nimport { TOKEN_PROGRAM_ID } from \"../constants\";\nimport {\n TokenAccountNotFoundError,\n TokenInvalidAccountOwnerError,\n TokenInvalidAccountSizeError,\n} from \"../errors\";\n\n/** Buffer layout for de/serializing a mint */\nexport const MintLayout = struct<RawMint>([\n u32(\"mintAuthorityOption\"),\n publicKey(\"mintAuthority\"),\n u64(\"supply\"),\n u8(\"decimals\"),\n bool(\"isInitialized\"),\n u32(\"freezeAuthorityOption\"),\n publicKey(\"freezeAuthority\"),\n]);\n\n/** Byte length of a mint */\nexport const MINT_SIZE = MintLayout.span;\n\n/**\n * Retrieve information about a mint\n *\n * @param connection Connection to use\n * @param address Mint account\n * @param commitment Desired level of commitment for querying the state\n * @param programId SPL Token program account\n *\n * @return Mint information\n */\nexport async function getMint(\n connection: Connection,\n address: PublicKey,\n commitment?: Commitment,\n programId = TOKEN_PROGRAM_ID\n): Promise<Mint> {\n const info = await connection.getAccountInfo(address, commitment);\n if (!info) throw new TokenAccountNotFoundError();\n if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n if (info.data.length != MINT_SIZE) throw new TokenInvalidAccountSizeError();\n\n const rawMint = MintLayout.decode(info.data);\n\n return {\n address,\n mintAuthority: rawMint.mintAuthorityOption ? rawMint.mintAuthority : null,\n supply: rawMint.supply,\n decimals: rawMint.decimals,\n isInitialized: rawMint.isInitialized,\n freezeAuthority: rawMint.freezeAuthorityOption ? rawMint.freezeAuthority : null,\n };\n}\n","import { struct, u8 } from \"@solana/buffer-layout\";\nimport { u64 } from \"@solana/buffer-layout-utils\";\nimport {\n PublicKey,\n Signer,\n SystemProgram,\n SYSVAR_RENT_PUBKEY,\n TransactionInstruction,\n} from \"@solana/web3.js\";\n\nimport { Buffer } from \"buffer\";\n\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, MEMO_PROGRAM_ID, TOKEN_PROGRAM_ID } from \"./constants\";\nimport { addSigners } from \"./utils/instruction.utils\";\n\n/**\n * Creates and returns an instruction which validates a string of UTF-8\n * encoded characters and verifies that any accounts provided are signers of\n * the transaction. The program also logs the memo, as well as any verified\n * signer addresses, to the transaction log, so that anyone can easily observe\n * memos and know they were approved by zero or more addresses by inspecting\n * the transaction log from a trusted provider.\n *\n * Public keys passed in via the signerPubkeys will identify Signers which\n * must subsequently sign the Transaction including the returned\n * TransactionInstruction in order for the transaction to be valid.\n *\n * @param memo The UTF-8 encoded memo string to validate\n * @param signerPubkeys An array of public keys which must sign the\n * Transaction including the returned TransactionInstruction in order\n * for the transaction to be valid and the memo verification to\n * succeed. null is allowed if there are no signers for the memo\n * verification.\n **/\nexport function createMemoInstruction(\n memo: string,\n signerPubkeys?: Array<PublicKey>\n): TransactionInstruction {\n const keys =\n signerPubkeys == null\n ? []\n : signerPubkeys.map(function (key) {\n return { pubkey: key, isSigner: true, isWritable: false };\n });\n\n return new TransactionInstruction({\n keys: keys,\n programId: MEMO_PROGRAM_ID,\n data: Buffer.from(memo, \"utf8\"),\n });\n}\n\n/** Instructions defined by the program */\nexport enum TokenInstruction {\n InitializeAccount = 1,\n TransferChecked = 12,\n CloseAccount = 9,\n SyncNative = 17,\n}\n\n/** TODO: docs */\nexport interface InitializeAccountInstructionData {\n instruction: TokenInstruction.InitializeAccount;\n}\n\nexport const initializeAccountInstructionData = struct<InitializeAccountInstructionData>([\n u8(\"instruction\"),\n]);\n\n/**\n * Construct an InitializeAccount instruction\n *\n * @param account New token account\n * @param mint Mint account\n * @param owner Owner of the new account\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createInitializeAccountInstruction(\n account: PublicKey,\n mint: PublicKey,\n owner: PublicKey,\n programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = [\n { pubkey: account, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: owner, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n ];\n\n const data = Buffer.alloc(initializeAccountInstructionData.span);\n initializeAccountInstructionData.encode(\n { instruction: TokenInstruction.InitializeAccount },\n data\n );\n\n return new TransactionInstruction({ keys, programId, data });\n}\n\n/**\n * Construct an AssociatedTokenAccount instruction\n *\n * @param payer Payer of the initialization fees\n * @param associatedToken New associated token account\n * @param owner Owner of the new account\n * @param mint Token mint account\n * @param programId SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createAssociatedTokenAccountInstruction(\n payer: PublicKey,\n associatedToken: PublicKey,\n owner: PublicKey,\n mint: PublicKey,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = [\n { pubkey: payer, isSigner: true, isWritable: true },\n { pubkey: associatedToken, isSigner: false, isWritable: true },\n { pubkey: owner, isSigner: false, isWritable: false },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n { pubkey: programId, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n ];\n\n return new TransactionInstruction({\n keys,\n programId: associatedTokenProgramId,\n data: Buffer.alloc(0),\n });\n}\n\n/**\n * Construct a CreateAssociatedTokenAccountIdempotent instruction\n *\n * @param payer Payer of the initialization fees\n * @param associatedToken New associated token account\n * @param owner Owner of the new account\n * @param mint Token mint account\n * @param programId SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createAssociatedTokenAccountIdempotentInstruction(\n payer: PublicKey,\n associatedToken: PublicKey,\n owner: PublicKey,\n mint: PublicKey,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n return buildAssociatedTokenAccountInstruction(\n payer,\n associatedToken,\n owner,\n mint,\n Buffer.from([1]),\n programId,\n associatedTokenProgramId\n );\n}\n\n/** TODO: docs */\nexport interface SyncNativeInstructionData {\n instruction: TokenInstruction.SyncNative;\n}\n\n/** TODO: docs */\nexport const syncNativeInstructionData = struct<SyncNativeInstructionData>([u8(\"instruction\")]);\n\n/**\n * Construct a SyncNative instruction\n *\n * @param account Native account to sync lamports from\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createSyncNativeInstruction(\n account: PublicKey,\n programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = [{ pubkey: account, isSigner: false, isWritable: true }];\n\n const data = Buffer.alloc(syncNativeInstructionData.span);\n syncNativeInstructionData.encode({ instruction: TokenInstruction.SyncNative }, data);\n\n return new TransactionInstruction({ keys, programId, data });\n}\n\n/** TODO: docs */\nexport interface CloseAccountInstructionData {\n instruction: TokenInstruction.CloseAccount;\n}\n\n/** TODO: docs */\nexport const closeAccountInstructionData = struct<CloseAccountInstructionData>([u8(\"instruction\")]);\n\n/**\n * Construct a CloseAccount instruction\n *\n * @param account Account to close\n * @param destination Account to receive the remaining balance of the closed account\n * @param authority Account close authority\n * @param multiSigners Signing accounts if `authority` is a multisig\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createCloseAccountInstruction(\n account: PublicKey,\n destination: PublicKey,\n authority: PublicKey,\n multiSigners: Signer[] = [],\n programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = addSigners(\n [\n { pubkey: account, isSigner: false, isWritable: true },\n { pubkey: destination, isSigner: false, isWritable: true },\n ],\n authority,\n multiSigners\n );\n\n const data = Buffer.alloc(closeAccountInstructionData.span);\n closeAccountInstructionData.encode({ instruction: TokenInstruction.CloseAccount }, data);\n\n return new TransactionInstruction({ keys, programId, data });\n}\n\nfunction buildAssociatedTokenAccountInstruction(\n payer: PublicKey,\n associatedToken: PublicKey,\n owner: PublicKey,\n mint: PublicKey,\n instructionData: Buffer,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = [\n { pubkey: payer, isSigner: true, isWritable: true },\n { pubkey: associatedToken, isSigner: false, isWritable: true },\n { pubkey: owner, isSigner: false, isWritable: false },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n { pubkey: programId, isSigner: false, isWritable: false },\n ];\n\n return new TransactionInstruction({\n keys,\n programId: associatedTokenProgramId,\n data: instructionData,\n });\n}\n\n/** TODO: docs */\nexport interface TransferCheckedInstructionData {\n instruction: TokenInstruction.TransferChecked;\n amount: bigint;\n decimals: number;\n}\n\n/** TODO: docs */\nexport const transferCheckedInstructionData = struct<TransferCheckedInstructionData>([\n u8(\"instruction\"),\n u64(\"amount\"),\n u8(\"decimals\"),\n]);\n\n/**\n * Construct a TransferChecked instruction\n *\n * @param source Source account\n * @param mint Mint account\n * @param destination Destination account\n * @param owner Owner of the source account\n * @param amount Number of tokens to transfer\n * @param decimals Number of decimals in transfer amount\n * @param multiSigners Signing accounts if `owner` is a multisig\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createTransferCheckedInstruction(\n source: PublicKey,\n mint: PublicKey,\n destination: PublicKey,\n owner: PublicKey,\n amount: number | bigint,\n decimals: number,\n multiSigners: Signer[] = [],\n programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = addSigners(\n [\n { pubkey: source, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: destination, isSigner: false, isWritable: true },\n ],\n owner,\n multiSigners\n );\n\n const data = Buffer.alloc(transferCheckedInstructionData.span);\n transferCheckedInstructionData.encode(\n {\n instruction: TokenInstruction.TransferChecked,\n amount: BigInt(amount),\n decimals,\n },\n data\n );\n\n return new TransactionInstruction({ keys, programId, data });\n}\n","import {\n Connection,\n LAMPORTS_PER_SOL,\n PublicKey,\n STAKE_CONFIG_ID,\n SYSVAR_CLOCK_PUBKEY,\n SystemProgram,\n StakeProgram,\n Transaction,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport BigNumber from \"bignumber.js\";\nimport { BN } from \"bn.js\";\n\nimport { SYSVAR_RENT_PUBKEY } from \"@solana/web3.js\";\nimport {\n MPL_METADATA_PROGRAM_ID,\n SINGLE_POOL_PROGRAM_ID,\n STAKE_PROGRAM_ID,\n SYSTEM_PROGRAM_ID,\n SYSVAR_CLOCK_ID,\n SYSVAR_RENT_ID,\n SYSVAR_STAKE_HISTORY_ID,\n} from \"~/constants\";\n\nimport { TOKEN_PROGRAM_ID } from \"../spl\";\n\ninterface AccountMeta {\n pubkey: PublicKey;\n isSigner: boolean;\n isWritable: boolean;\n}\n\n// Instruction type enum\nenum SinglePoolInstructionType {\n InitializePool = 0,\n ReplenishPool,\n DepositStake,\n WithdrawStake,\n CreateTokenMetadata,\n UpdateTokenMetadata,\n InitializeOnRamp,\n}\n\nconst SinglePoolInstruction = {\n initializePool: (voteAccount: PublicKey): TransactionInstruction => {\n const pool = findPoolAddress(voteAccount);\n const stake = findPoolStakeAddress(pool);\n const mint = findPoolMintAddress(pool);\n const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: voteAccount, isSigner: false, isWritable: false },\n { pubkey: pool, isSigner: false, isWritable: true },\n { pubkey: stake, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: true },\n { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n { pubkey: mintAuthority, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_ID, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_CONFIG_ID, isSigner: false, isWritable: false },\n { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n Buffer.from([SinglePoolInstructionType.InitializePool])\n );\n },\n\n initializeOnRamp: (pool: PublicKey): TransactionInstruction => {\n const onRamp = findPoolOnRampAddress(pool);\n const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: onRamp, isSigner: false, isWritable: true },\n { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_ID, isSigner: false, isWritable: false },\n { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n Buffer.from([SinglePoolInstructionType.InitializeOnRamp])\n );\n },\n\n depositStake: async (\n pool: PublicKey,\n userStakeAccount: PublicKey,\n userTokenAccount: PublicKey,\n userLamportAccount: PublicKey\n ): Promise<TransactionInstruction> => {\n const stake = findPoolStakeAddress(pool);\n const mint = findPoolMintAddress(pool);\n const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: stake, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: true },\n { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n { pubkey: mintAuthority, isSigner: false, isWritable: false },\n { pubkey: userStakeAccount, isSigner: false, isWritable: true },\n { pubkey: userTokenAccount, isSigner: false, isWritable: true },\n { pubkey: userLamportAccount, isSigner: false, isWritable: true },\n { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n Buffer.from([SinglePoolInstructionType.DepositStake])\n );\n },\n\n withdrawStake: async (\n pool: PublicKey,\n userStakeAccount: PublicKey,\n userStakeAuthority: PublicKey,\n userTokenAccount: PublicKey,\n tokenAmount: BigNumber\n ): Promise<TransactionInstruction> => {\n const stake = findPoolStakeAddress(pool);\n const mint = findPoolMintAddress(pool);\n const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n // Try using BigInt for more precise conversion\n const rawAmount = BigInt(tokenAmount.multipliedBy(1e9).toString());\n\n const data = Buffer.concat([\n Buffer.from([SinglePoolInstructionType.WithdrawStake]),\n userStakeAuthority.toBuffer(),\n Buffer.from(new BN(rawAmount.toString()).toArray(\"le\", 8)),\n ]);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: stake, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: true },\n { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n { pubkey: mintAuthority, isSigner: false, isWritable: false },\n { pubkey: userStakeAccount, isSigner: false, isWritable: true },\n { pubkey: userTokenAccount, isSigner: false, isWritable: true },\n { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n data\n );\n },\n\n createTokenMetadata: async (\n pool: PublicKey,\n payer: PublicKey\n ): Promise<TransactionInstruction> => {\n const mint = findPoolMintAddress(pool);\n const [mintAuthority, mplAuthority, mplMetadata] = await Promise.all([\n findPoolMintAuthorityAddress(pool),\n findPoolMplAuthorityAddress(pool),\n findMplMetadataAddress(mint),\n ]);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: mintAuthority, isSigner: false, isWritable: false },\n { pubkey: mplAuthority, isSigner: false, isWritable: false },\n { pubkey: payer, isSigner: true, isWritable: true },\n { pubkey: mplMetadata, isSigner: false, isWritable: true },\n { pubkey: MPL_METADATA_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n Buffer.from([SinglePoolInstructionType.CreateTokenMetadata])\n );\n },\n\n updateTokenMetadata: async (\n voteAccount: PublicKey,\n authorizedWithdrawer: PublicKey,\n tokenName: string,\n tokenSymbol: string,\n tokenUri: string = \"\"\n ): Promise<TransactionInstruction> => {\n if (tokenName.length > 32) {\n throw new Error(\"maximum token name length is 32 characters\");\n }\n if (tokenSymbol.length > 10) {\n throw new Error(\"maximum token symbol length is 10 characters\");\n }\n if (tokenUri.length > 200) {\n throw new Error(\"maximum token uri length is 200 characters\");\n }\n\n const pool = findPoolAddress(voteAccount);\n const [mint, mplAuthority] = await Promise.all([\n findPoolMintAddress(pool),\n findPoolMplAuthorityAddress(pool),\n ]);\n const mplMetadata = await findMplMetadataAddress(mint);\n\n const data = Buffer.concat([\n Buffer.from([SinglePoolInstructionType.UpdateTokenMetadata]),\n Buffer.from(new Uint32Array([tokenName.length]).buffer),\n Buffer.from(tokenName),\n Buffer.from(new Uint32Array([tokenSymbol.length]).buffer),\n Buffer.from(tokenSymbol),\n Buffer.from(new Uint32Array([tokenUri.length]).buffer),\n Buffer.from(tokenUri),\n ]);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: voteAccount, isSigner: false, isWritable: false },\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: mplAuthority, isSigner: false, isWritable: false },\n { pubkey: authorizedWithdrawer, isSigner: true, isWritable: false },\n { pubkey: mplMetadata, isSigner: false, isWritable: true },\n { pubkey: MPL_METADATA_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n data\n );\n },\n};\n\nconst createTransactionInstruction = (\n programId: PublicKey,\n keys: AccountMeta[],\n data: Buffer\n): TransactionInstruction => {\n return {\n programId,\n keys,\n data,\n };\n};\n\nconst findPda = (\n baseAddress: PublicKey,\n prefix: string,\n programId: PublicKey = SINGLE_POOL_PROGRAM_ID\n): PublicKey => {\n const [pda] = PublicKey.findProgramAddressSync(\n [Buffer.from(prefix), baseAddress.toBuffer()],\n programId\n );\n return pda;\n};\n\nconst findPoolMintAddressByVoteAccount = (voteAccountAddress: PublicKey): PublicKey =>\n findPda(findPoolAddress(voteAccountAddress), \"mint\");\nconst findPoolAddress = (voteAccountAddress: PublicKey): PublicKey =>\n findPda(voteAccountAddress, \"pool\");\nconst findPoolMintAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"mint\");\nconst findPoolStakeAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"stake\");\nconst findPoolStakeAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n findPda(poolAddress, \"stake_authority\");\nconst findPoolMintAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n findPda(poolAddress, \"mint_authority\");\nconst findPoolMplAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n findPda(poolAddress, \"mpl_authority\");\nconst findPoolOnRampAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"onramp\");\n\nconst findMplMetadataAddress = async (poolMintAddress: PublicKey): Promise<PublicKey> => {\n const [pda] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"metadata\"), MPL_METADATA_PROGRAM_ID.toBuffer(), poolMintAddress.toBuffer()],\n MPL_METADATA_PROGRAM_ID\n );\n return pda;\n};\n\nconst SINGLE_POOL_ACCOUNT_SIZE = BigInt(33);\nconst STAKE_ACCOUNT_SIZE = BigInt(200);\nconst MINT_SIZE = BigInt(82);\n\nasync function initializeStakedPoolTx(\n connection: Connection,\n payer: PublicKey,\n voteAccountAddress: PublicKey\n) {\n const instructions = await initializeStakedPoolIxs(connection, payer, voteAccountAddress);\n const tx = new Transaction().add(...instructions);\n return tx;\n}\n\nasync function initializeStakedPoolIxs(\n connection: Connection,\n payer: PublicKey,\n voteAccountAddress: PublicKey\n) {\n const poolAddress = findPoolAddress(voteAccountAddress);\n\n const stakeAddress = findPoolStakeAddress(poolAddress);\n const mintAddress = findPoolMintAddress(poolAddress);\n const onRampAddress = findPoolOnRampAddress(poolAddress);\n\n // get min rent\n const [poolRent, stakeRent, mintRent, minimumDelegationObj] = await Promise.all([\n connection.getMinimumBalanceForRentExemption(Number(SINGLE_POOL_ACCOUNT_SIZE), \"confirmed\"),\n connection.getMinimumBalanceForRentExemption(Number(STAKE_ACCOUNT_SIZE), \"confirmed\"),\n connection.getMinimumBalanceForRentExemption(Number(MINT_SIZE), \"confirmed\"),\n connection.getStakeMinimumDelegation(),\n ]);\n\n const minimumDelegation = minimumDelegationObj.value;\n\n const instructions: TransactionInstruction[] = [];\n\n // instructions\n instructions.push(\n SystemProgram.transfer({ fromPubkey: payer, toPubkey: poolAddress, lamports: poolRent })\n );\n instructions.push(\n SystemProgram.transfer({\n fromPubkey: payer,\n toPubkey: stakeAddress,\n lamports: stakeRent + minimumDelegation + LAMPORTS_PER_SOL * 1,\n })\n );\n instructions.push(\n SystemProgram.transfer({ fromPubkey: payer, toPubkey: onRampAddress, lamports: stakeRent })\n );\n instructions.push(\n SystemProgram.transfer({ fromPubkey: payer, toPubkey: mintAddress, lamports: mintRent })\n );\n\n instructions.push(SinglePoolInstruction.initializePool(voteAccountAddress));\n instructions.push(SinglePoolInstruction.initializeOnRamp(poolAddress));\n instructions.push(await SinglePoolInstruction.createTokenMetadata(poolAddress, payer));\n\n return instructions;\n}\n\nconst createAccountIx = (\n from: PublicKey,\n newAccount: PublicKey,\n lamports: number,\n space: number,\n programAddress: PublicKey\n) => {\n const data = Buffer.concat([\n Buffer.from([0]), // Assuming the first byte is an instruction type or similar\n Buffer.from(new BN(lamports).toArray(\"le\", 8)),\n Buffer.from(new BN(space).toArray(\"le\", 8)),\n programAddress.toBuffer(),\n ]);\n\n const accounts = [\n { pubkey: from, isSigner: true, isWritable: true },\n { pubkey: newAccount, isSigner: true, isWritable: true },\n ];\n\n return createTransactionInstruction(SYSTEM_PROGRAM_ID, accounts, data);\n};\n\nconst createPoolOnrampIx = (voteAccount: PublicKey): TransactionInstruction => {\n const poolAccount = findPoolAddress(voteAccount);\n const onRampAccount = findPoolOnRampAddress(poolAccount);\n const poolStakeAuthority = findPoolStakeAuthorityAddress(poolAccount);\n\n const keys = [\n { pubkey: poolAccount, isSigner: false, isWritable: false },\n { pubkey: onRampAccount, isSigner: false, isWritable: true },\n { pubkey: poolStakeAuthority, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n { pubkey: StakeProgram.programId, isSigner: false, isWritable: false },\n ];\n\n // TODO don't hard code the instruction index? (or why not, it's not gna change is it?)\n const data = Buffer.from(Uint8Array.of(6));\n\n return new TransactionInstruction({\n keys,\n programId: SINGLE_POOL_PROGRAM_ID,\n data,\n });\n};\n\nconst replenishPoolIx = (voteAccount: PublicKey): TransactionInstruction => {\n const poolAccount = findPoolAddress(voteAccount);\n const stakePool = findPoolStakeAddress(poolAccount);\n const onRampPool = findPoolOnRampAddress(poolAccount);\n const authority = findPoolStakeAuthorityAddress(poolAccount);\n\n const keys = [\n { pubkey: voteAccount, isSigner: false, isWritable: false },\n { pubkey: poolAccount, isSigner: false, isWritable: false },\n { pubkey: stakePool, isSigner: false, isWritable: true },\n { pubkey: onRampPool, isSigner: false, isWritable: true },\n { pubkey: authority, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_CONFIG_ID, isSigner: false, isWritable: false },\n { pubkey: StakeProgram.programId, isSigner: false, isWritable: false },\n ];\n\n // TODO don't hard code the instruction index? (or why not, it's not gna change is it?)\n const data = Buffer.from(Uint8Array.of(1));\n\n return createTransactionInstruction(SINGLE_POOL_PROGRAM_ID, keys, data);\n};\n\nexport {\n SinglePoolInstruction,\n initializeStakedPoolIxs,\n initializeStakedPoolTx,\n findPoolAddress,\n findPoolMintAddress,\n findPoolStakeAddress,\n findPoolStakeAuthorityAddress,\n findPoolMintAuthorityAddress,\n findPoolMplAuthorityAddress,\n findMplMetadataAddress,\n findPoolOnRampAddress,\n findPoolMintAddressByVoteAccount,\n createAccountIx,\n createPoolOnrampIx,\n replenishPoolIx,\n};\n","import { PublicKey } from \"@solana/web3.js\";\n\n/**\n * Parsed content of an on-chain StakeAccount\n *\n * Copied from https://github.com/solana-developers/solana-rpc-get-stake-activation/blob/main/web3js-1.0/src/stake.ts\n * */\nexport type StakeAccount = {\n discriminant: bigint;\n meta: {\n rentExemptReserve: bigint;\n authorized: {\n staker: PublicKey;\n withdrawer: PublicKey;\n };\n lockup: {\n unixTimestamp: bigint;\n epoch: bigint;\n custodian: PublicKey;\n };\n };\n stake: {\n delegation: {\n voterPubkey: PublicKey;\n stake: bigint;\n activationEpoch: bigint;\n deactivationEpoch: bigint;\n };\n creditsObserved: bigint;\n };\n};\n\n/**\n * Decode a StakeAccount from parsed account data.\n *\n * Copied from https://github.com/solana-developers/solana-rpc-get-stake-activation/blob/main/web3js-1.0/src/stake.ts\n * */\nexport const getStakeAccount = function (data: Buffer): StakeAccount {\n let offset = 0;\n\n // Discriminant (4 bytes)\n const discriminant = data.readBigUInt64LE(offset);\n offset += 4;\n\n // Meta\n const rentExemptReserve = data.readBigUInt64LE(offset);\n offset += 8;\n\n // Authorized staker and withdrawer (2 public keys)\n const staker = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n const withdrawer = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n // Lockup: unixTimestamp, epoch, custodian\n const unixTimestamp = data.readBigUInt64LE(offset);\n offset += 8;\n const epoch = data.readBigUInt64LE(offset);\n offset += 8;\n const custodian = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n // Stake: Delegation\n const voterPubkey = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n const stake = data.readBigUInt64LE(offset);\n offset += 8;\n const activationEpoch = data.readBigUInt64LE(offset);\n offset += 8;\n const deactivationEpoch = data.readBigUInt64LE(offset);\n offset += 8;\n\n // Credits observed\n const creditsObserved = data.readBigUInt64LE(offset);\n\n // Return the parsed StakeAccount object\n return {\n discriminant,\n meta: {\n rentExemptReserve,\n authorized: {\n staker,\n withdrawer,\n },\n lockup: {\n unixTimestamp,\n epoch,\n custodian,\n },\n },\n stake: {\n delegation: {\n voterPubkey,\n stake,\n activationEpoch,\n deactivationEpoch,\n },\n creditsObserved,\n },\n };\n};\n","{\n \"address\": \"SBondMDrcV3K4kxZR1HNVT7osZxAHVHgYXL5Ze1oMUv\",\n \"metadata\": {\n \"name\": \"sb_on_demand\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Created with Anchor\"\n },\n \"instructions\": [\n {\n \"name\": \"guardian_quote_verify\",\n \"discriminator\": [168, 36, 93, 156, 157, 150, 148, 45],\n \"accounts\": [\n { \"name\": \"guardian\", \"writable\": true },\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n { \"name\": \"guardian_queue\", \"writable\": true, \"relations\": [\"state\"] },\n { \"name\": \"state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"GuardianQuoteVerifyParams\" } }\n }\n ]\n },\n {\n \"name\": \"guardian_register\",\n \"discriminator\": [159, 76, 53, 117, 219, 29, 116, 135],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"state\" },\n { \"name\": \"guardian_queue\", \"relations\": [\"state\"] },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"GuardianRegisterParams\" } }\n }\n ]\n },\n {\n \"name\": \"guardian_unregister\",\n \"discriminator\": [215, 19, 61, 120, 155, 224, 120, 60],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"state\" },\n { \"name\": \"guardian_queue\", \"writable\": true, \"relations\": [\"state\"] },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"GuardianUnregisterParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_heartbeat\",\n \"discriminator\": [10, 175, 217, 130, 111, 35, 117, 54],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n {\n \"name\": \"oracle_stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"oracle_signer\", \"signer\": true },\n {\n \"name\": \"queue\",\n \"writable\": true,\n \"relations\": [\"oracle\", \"gc_node\"]\n },\n { \"name\": \"gc_node\", \"writable\": true },\n { \"name\": \"program_state\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"native_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"queue_escrow\", \"writable\": true },\n { \"name\": \"stake_program\" },\n { \"name\": \"delegation_pool\" },\n { \"name\": \"delegation_group\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleHeartbeatParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_heartbeat_v2\",\n \"discriminator\": [122, 231, 66, 32, 226, 62, 144, 103],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n {\n \"name\": \"oracle_stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"oracle_signer\", \"signer\": true },\n {\n \"name\": \"queue\",\n \"writable\": true,\n \"relations\": [\"oracle\", \"gc_node\"]\n },\n { \"name\": \"gc_node\", \"writable\": true },\n { \"name\": \"program_state\", \"writable\": true }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleHeartbeatV2Params\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_init\",\n \"discriminator\": [21, 158, 66, 65, 60, 221, 148, 61],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"oracle_stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"program_state\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_init_svm\",\n \"discriminator\": [106, 20, 36, 117, 166, 175, 131, 83],\n \"accounts\": [\n {\n \"name\": \"oracle\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"const\", \"value\": [79, 114, 97, 99, 108, 101] },\n { \"kind\": \"arg\", \"path\": \"params.queue\" },\n { \"kind\": \"arg\", \"path\": \"params.source_oracle_key\" }\n ]\n }\n },\n {\n \"name\": \"oracle_stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"program_state\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n { \"name\": \"stake_program\" },\n { \"name\": \"stake_pool\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleInitSVMParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_reset_lut\",\n \"discriminator\": [147, 244, 108, 198, 152, 219, 0, 22],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"program_state\" },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleResetLutParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_set_configs\",\n \"discriminator\": [129, 111, 223, 4, 191, 188, 70, 180],\n \"accounts\": [\n { \"name\": \"oracle\" },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleSetConfigsParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_set_operator\",\n \"discriminator\": [210, 232, 155, 124, 69, 176, 242, 133],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n { \"name\": \"operator\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleSetOperatorParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_sync_lut\",\n \"discriminator\": [138, 99, 12, 59, 18, 170, 171, 45],\n \"accounts\": [\n { \"name\": \"oracle\" },\n { \"name\": \"queue\", \"relations\": [\"oracle\"] },\n { \"name\": \"ncn\" },\n { \"name\": \"vault\" },\n { \"name\": \"state\" },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n { \"name\": \"operator\", \"relations\": [\"oracle\"] },\n { \"name\": \"ncn_operator_state\" },\n { \"name\": \"operator_vault_ticket\" },\n { \"name\": \"vault_operator_delegation\" },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n { \"name\": \"payer\", \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleSyncLutParams\" } }\n }\n ]\n },\n {\n \"name\": \"permission_set\",\n \"discriminator\": [211, 122, 185, 120, 129, 182, 55, 103],\n \"accounts\": [\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"granter\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PermissionSetParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_close\",\n \"discriminator\": [19, 134, 50, 142, 177, 215, 196, 83],\n \"accounts\": [\n { \"name\": \"pull_feed\", \"writable\": true },\n { \"name\": \"reward_escrow\", \"writable\": true },\n { \"name\": \"lut\", \"writable\": true },\n { \"name\": \"lut_signer\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n { \"name\": \"state\" },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\"pull_feed\"]\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedCloseParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_init\",\n \"discriminator\": [198, 130, 53, 198, 235, 61, 143, 40],\n \"accounts\": [\n { \"name\": \"pull_feed\", \"writable\": true, \"signer\": true },\n { \"name\": \"queue\" },\n { \"name\": \"authority\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"program_state\" },\n {\n \"name\": \"reward_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"pull_feed\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"wrapped_sol_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"wrapped_sol_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_set_configs\",\n \"discriminator\": [217, 45, 11, 246, 64, 26, 82, 168],\n \"accounts\": [\n { \"name\": \"pull_feed\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"pull_feed\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedSetConfigsParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response\",\n \"discriminator\": [150, 22, 215, 166, 143, 93, 48, 137],\n \"accounts\": [\n { \"name\": \"feed\", \"writable\": true },\n { \"name\": \"queue\", \"relations\": [\"feed\"] },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_vault\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"token_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response_consensus\",\n \"discriminator\": [239, 124, 39, 184, 147, 222, 16, 248],\n \"accounts\": [\n { \"name\": \"queue\" },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_vault\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"token_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n {\n \"name\": \"ix_sysvar\",\n \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": { \"name\": \"PullFeedSubmitResponseConsensusParams\" }\n }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response_consensus_light\",\n \"discriminator\": [178, 179, 88, 144, 175, 130, 157, 87],\n \"accounts\": [\n { \"name\": \"queue\" },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n {\n \"name\": \"ix_sysvar\",\n \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": { \"name\": \"PullFeedSubmitResponseConsensusLightParams\" }\n }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response_many\",\n \"discriminator\": [47, 156, 45, 25, 200, 71, 37, 215],\n \"accounts\": [\n { \"name\": \"queue\" },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_vault\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"token_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseManyParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response_svm\",\n \"discriminator\": [123, 7, 190, 12, 220, 230, 198, 148],\n \"accounts\": [\n { \"name\": \"feed\", \"writable\": true },\n {\n \"name\": \"queue\",\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"const\", \"value\": [81, 117, 101, 117, 101] },\n { \"kind\": \"arg\", \"path\": \"params.source_queue_key\" }\n ]\n },\n \"relations\": [\"feed\"]\n },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_vault\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"token_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseSVMParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_add_mr_enclave\",\n \"discriminator\": [199, 255, 81, 50, 60, 133, 171, 138],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"program_authority\" },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueAddMrEnclaveParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_allow_subsidies\",\n \"discriminator\": [94, 203, 82, 157, 188, 138, 202, 108],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] },\n { \"name\": \"state\", \"writable\": true }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueAllowSubsidiesParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_garbage_collect\",\n \"discriminator\": [187, 208, 104, 247, 16, 91, 96, 98],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueGarbageCollectParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_init\",\n \"discriminator\": [144, 18, 99, 145, 133, 27, 207, 13],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"queue_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"queue\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"native_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n { \"name\": \"authority\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"native_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"program_state\" },\n { \"name\": \"lut_signer\", \"writable\": true },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_init_svm\",\n \"discriminator\": [175, 94, 119, 151, 45, 144, 173, 235],\n \"accounts\": [\n {\n \"name\": \"queue\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"const\", \"value\": [81, 117, 101, 117, 101] },\n { \"kind\": \"arg\", \"path\": \"params.source_queue_key\" }\n ]\n }\n },\n {\n \"name\": \"queue_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"queue\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"native_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n { \"name\": \"authority\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"native_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"program_state\" },\n { \"name\": \"lut_signer\", \"writable\": true },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueInitSVMParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_override_svm\",\n \"discriminator\": [43, 103, 15, 35, 89, 14, 244, 165],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueOverrideSVMParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_pay_subsidy\",\n \"discriminator\": [85, 84, 51, 251, 144, 57, 105, 200],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"program_state\" },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"vault\" },\n {\n \"name\": \"reward_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"vault\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"switch_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n {\n \"name\": \"subsidy_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"program_state\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"switch_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"wsol_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"switch_mint\" },\n { \"name\": \"vault_config\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueuePaySubsidyParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_remove_mr_enclave\",\n \"discriminator\": [3, 64, 135, 33, 190, 133, 68, 252],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"program_authority\" },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueRemoveMrEnclaveParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_reset_vault\",\n \"discriminator\": [232, 255, 48, 111, 240, 168, 253, 40],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" },\n { \"name\": \"ncn\", \"relations\": [\"queue\"] },\n { \"name\": \"vault\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueResetVaultParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_set_configs\",\n \"discriminator\": [54, 183, 243, 199, 49, 103, 142, 48],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueSetConfigsParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_set_ncn\",\n \"discriminator\": [232, 223, 179, 12, 20, 136, 181, 219],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" },\n { \"name\": \"ncn\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueSetNcnParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_set_vault\",\n \"discriminator\": [48, 47, 102, 99, 241, 249, 196, 246],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" },\n { \"name\": \"ncn\", \"relations\": [\"queue\"] },\n { \"name\": \"vault\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueSetVaultParams\" } }\n }\n ]\n },\n {\n \"name\": \"randomness_commit\",\n \"discriminator\": [52, 170, 152, 201, 179, 133, 242, 141],\n \"accounts\": [\n { \"name\": \"randomness\", \"writable\": true },\n { \"name\": \"queue\", \"relations\": [\"randomness\", \"oracle\"] },\n { \"name\": \"oracle\", \"writable\": true },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"randomness\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"RandomnessCommitParams\" } }\n }\n ]\n },\n {\n \"name\": \"randomness_init\",\n \"discriminator\": [9, 9, 204, 33, 50, 116, 113, 15],\n \"accounts\": [\n { \"name\": \"randomness\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"reward_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"randomness\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"wrapped_sol_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"wrapped_sol_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"program_state\" },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"RandomnessInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"randomness_reveal\",\n \"discriminator\": [197, 181, 187, 10, 30, 58, 20, 73],\n \"accounts\": [\n { \"name\": \"randomness\", \"writable\": true },\n { \"name\": \"oracle\", \"relations\": [\"randomness\"] },\n { \"name\": \"queue\", \"relations\": [\"oracle\"] },\n {\n \"name\": \"stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 79, 114, 97, 99, 108, 101, 82, 97, 110, 100, 111, 109, 110,\n 101, 115, 115, 83, 116, 97, 116, 115\n ]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"randomness\"] },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_escrow\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"wrapped_sol_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"program_state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"RandomnessRevealParams\" } }\n }\n ]\n },\n {\n \"name\": \"state_init\",\n \"discriminator\": [103, 241, 106, 190, 217, 153, 87, 105],\n \"accounts\": [\n {\n \"name\": \"state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [{ \"kind\": \"const\", \"value\": [83, 84, 65, 84, 69] }]\n }\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"StateInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"state_set_configs\",\n \"discriminator\": [40, 98, 76, 37, 206, 9, 47, 144],\n \"accounts\": [\n { \"name\": \"state\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] },\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"StateSetConfigsParams\" } }\n }\n ]\n },\n {\n \"name\": \"test_update_oracle_stats\",\n \"discriminator\": [175, 48, 162, 252, 154, 197, 149, 187],\n \"accounts\": [\n {\n \"name\": \"oracle_stats\",\n \"docs\": [\"The OracleStats account to update.\"],\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"TestUpdateOracleStatsParams\" } }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"OracleAccountData\",\n \"discriminator\": [128, 30, 16, 241, 170, 73, 55, 54]\n },\n {\n \"name\": \"OracleStatsAccountData\",\n \"discriminator\": [180, 157, 178, 234, 240, 27, 152, 179]\n },\n {\n \"name\": \"PullFeedAccountData\",\n \"discriminator\": [196, 27, 108, 196, 10, 215, 219, 40]\n },\n {\n \"name\": \"QueueAccountData\",\n \"discriminator\": [217, 194, 55, 127, 184, 83, 138, 1]\n },\n {\n \"name\": \"RandomnessAccountData\",\n \"discriminator\": [10, 66, 229, 135, 220, 239, 217, 114]\n },\n { \"name\": \"State\", \"discriminator\": [216, 146, 107, 94, 104, 75, 182, 177] }\n ],\n \"events\": [\n {\n \"name\": \"CostWhitelistEvent\",\n \"discriminator\": [56, 107, 191, 127, 116, 6, 138, 149]\n },\n {\n \"name\": \"GarbageCollectionEvent\",\n \"discriminator\": [232, 235, 2, 188, 8, 143, 145, 237]\n },\n {\n \"name\": \"GuardianQuoteVerifyEvent\",\n \"discriminator\": [31, 37, 39, 6, 214, 186, 33, 115]\n },\n {\n \"name\": \"OracleHeartbeatEvent\",\n \"discriminator\": [52, 29, 166, 2, 94, 7, 188, 13]\n },\n {\n \"name\": \"OracleInitEvent\",\n \"discriminator\": [89, 193, 219, 200, 1, 83, 167, 24]\n },\n {\n \"name\": \"OracleQuoteOverrideEvent\",\n \"discriminator\": [78, 204, 191, 210, 164, 196, 244, 65]\n },\n {\n \"name\": \"OracleQuoteRotateEvent\",\n \"discriminator\": [26, 189, 196, 192, 225, 127, 26, 228]\n },\n {\n \"name\": \"OracleQuoteVerifyRequestEvent\",\n \"discriminator\": [203, 209, 79, 0, 20, 71, 226, 202]\n },\n {\n \"name\": \"PermissionSetEvent\",\n \"discriminator\": [148, 86, 123, 0, 102, 20, 119, 206]\n },\n {\n \"name\": \"PullFeedErrorValueEvent\",\n \"discriminator\": [225, 80, 192, 95, 14, 12, 83, 192]\n },\n {\n \"name\": \"PullFeedValueEvents\",\n \"discriminator\": [86, 7, 231, 28, 122, 161, 117, 69]\n },\n {\n \"name\": \"QueueAddMrEnclaveEvent\",\n \"discriminator\": [170, 186, 175, 38, 216, 51, 69, 175]\n },\n {\n \"name\": \"QueueInitEvent\",\n \"discriminator\": [44, 137, 99, 227, 107, 8, 30, 105]\n },\n {\n \"name\": \"QueueRemoveMrEnclaveEvent\",\n \"discriminator\": [4, 105, 196, 60, 84, 122, 203, 196]\n },\n {\n \"name\": \"RandomnessCommitEvent\",\n \"discriminator\": [88, 60, 172, 90, 112, 10, 206, 147]\n }\n ],\n \"errors\": [\n { \"code\": 6000, \"name\": \"GenericError\" },\n { \"code\": 6001, \"name\": \"InvalidQuote\" },\n { \"code\": 6002, \"name\": \"InsufficientQueue\" },\n { \"code\": 6003, \"name\": \"QueueFull\" },\n { \"code\": 6004, \"name\": \"InvalidEnclaveSigner\" },\n { \"code\": 6005, \"name\": \"InvalidSigner\" },\n { \"code\": 6006, \"name\": \"MrEnclaveAlreadyExists\" },\n { \"code\": 6007, \"name\": \"MrEnclaveAtCapacity\" },\n { \"code\": 6008, \"name\": \"MrEnclaveDoesntExist\" },\n { \"code\": 6009, \"name\": \"PermissionDenied\" },\n { \"code\": 6010, \"name\": \"InvalidQueue\" },\n { \"code\": 6011, \"name\": \"IncorrectMrEnclave\" },\n { \"code\": 6012, \"name\": \"InvalidAuthority\" },\n { \"code\": 6013, \"name\": \"InvalidMrEnclave\" },\n { \"code\": 6014, \"name\": \"InvalidTimestamp\" },\n { \"code\": 6015, \"name\": \"InvalidOracleIdx\" },\n { \"code\": 6016, \"name\": \"InvalidSecpSignature\" },\n { \"code\": 6017, \"name\": \"InvalidGuardianQueue\" },\n { \"code\": 6018, \"name\": \"InvalidIndex\" },\n { \"code\": 6019, \"name\": \"InvalidOracleQueue\" },\n { \"code\": 6020, \"name\": \"InvalidPermission\" },\n { \"code\": 6021, \"name\": \"InvalidePermissionedAccount\" },\n { \"code\": 6022, \"name\": \"InvalidEpochRotate\" },\n { \"code\": 6023, \"name\": \"InvalidEpochFinalize\" },\n { \"code\": 6024, \"name\": \"InvalidEscrow\" },\n { \"code\": 6025, \"name\": \"IllegalOracle\" },\n { \"code\": 6026, \"name\": \"IllegalExecuteAttempt\" },\n { \"code\": 6027, \"name\": \"IllegalFeedValue\" },\n { \"code\": 6028, \"name\": \"InvalidOracleFeedStats\" },\n { \"code\": 6029, \"name\": \"InvalidStateAuthority\" },\n { \"code\": 6030, \"name\": \"NotEnoughSamples\" },\n { \"code\": 6031, \"name\": \"OracleIsVerified\" },\n { \"code\": 6032, \"name\": \"QueueIsEmpty\" },\n { \"code\": 6033, \"name\": \"SecpRecoverFailure\" },\n { \"code\": 6034, \"name\": \"StaleSample\" },\n { \"code\": 6035, \"name\": \"SwitchboardRandomnessTooOld\" },\n { \"code\": 6036, \"name\": \"EpochIdMismatch\" },\n { \"code\": 6037, \"name\": \"GuardianAlreadyVoted\" },\n { \"code\": 6038, \"name\": \"RandomnessNotRequested\" },\n { \"code\": 6039, \"name\": \"InvalidSlotNumber\" },\n { \"code\": 6040, \"name\": \"RandomnessOracleKeyExpired\" },\n { \"code\": 6041, \"name\": \"InvalidAdvisory\" },\n { \"code\": 6042, \"name\": \"InvalidOracleStats\" },\n { \"code\": 6043, \"name\": \"InvalidStakeProgram\" },\n { \"code\": 6044, \"name\": \"InvalidStakePool\" },\n { \"code\": 6045, \"name\": \"InvalidDelegationPool\" },\n { \"code\": 6046, \"name\": \"UnparsableAccount\" },\n { \"code\": 6047, \"name\": \"InvalidInstruction\" },\n { \"code\": 6048, \"name\": \"OracleAlreadyVerified\" },\n { \"code\": 6049, \"name\": \"GuardianNotVerified\" },\n { \"code\": 6050, \"name\": \"InvalidConstraint\" },\n { \"code\": 6051, \"name\": \"InvalidDelegationGroup\" },\n { \"code\": 6052, \"name\": \"OracleKeyNotFound\" },\n { \"code\": 6053, \"name\": \"GuardianReregisterAttempt\" },\n { \"code\": 6054, \"name\": \"InvalidManySubmissionCount\" },\n { \"code\": 6055, \"name\": \"MissingSecpIx\" },\n { \"code\": 6056, \"name\": \"ChecksumMismatch\" },\n { \"code\": 6057, \"name\": \"InvalidSubmissionFeedsCount\" },\n { \"code\": 6058, \"name\": \"InvalidSecpSignatureOraclesCount\" },\n { \"code\": 6059, \"name\": \"InvalidEthAddress\" },\n { \"code\": 6060, \"name\": \"NoLutKeysAdded\" },\n { \"code\": 6061, \"name\": \"InvalidVaultOperatorDelegation\" },\n { \"code\": 6062, \"name\": \"InvalidVaultTokenAccount\" },\n { \"code\": 6063, \"name\": \"InvalidRemainingAccounts\" },\n { \"code\": 6064, \"name\": \"SubsidiesNotAllowed\" },\n { \"code\": 6065, \"name\": \"MissingVod\" },\n { \"code\": 6066, \"name\": \"InvalidVodEpoch\" },\n { \"code\": 6067, \"name\": \"InvalidOracleSubsidyWallet\" },\n { \"code\": 6068, \"name\": \"InvalidOperator\" },\n { \"code\": 6069, \"name\": \"Max128SampleValue\" },\n { \"code\": 6070, \"name\": \"RewardAlreadyPaid\" }\n ],\n \"types\": [\n {\n \"name\": \"CompactResult\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"std_dev\",\n \"docs\": [\n \"The standard deviation of the submissions needed for quorom size\"\n ],\n \"type\": \"f32\"\n },\n {\n \"name\": \"mean\",\n \"docs\": [\"The mean of the submissions needed for quorom size\"],\n \"type\": \"f32\"\n },\n {\n \"name\": \"slot\",\n \"docs\": [\"The slot at which this value was signed.\"],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"CostWhitelistEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"feeds\", \"type\": { \"vec\": \"pubkey\" } },\n { \"name\": \"oracles\", \"type\": { \"vec\": \"pubkey\" } },\n { \"name\": \"values\", \"type\": { \"vec\": { \"vec\": \"i128\" } } },\n { \"name\": \"reward\", \"type\": \"u32\" }\n ]\n }\n },\n {\n \"name\": \"CurrentResult\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"value\",\n \"docs\": [\n \"The median value of the submissions needed for quorom size\"\n ],\n \"type\": \"i128\"\n },\n {\n \"name\": \"std_dev\",\n \"docs\": [\n \"The standard deviation of the submissions needed for quorom size\"\n ],\n \"type\": \"i128\"\n },\n {\n \"name\": \"mean\",\n \"docs\": [\"The mean of the submissions needed for quorom size\"],\n \"type\": \"i128\"\n },\n {\n \"name\": \"range\",\n \"docs\": [\"The range of the submissions needed for quorom size\"],\n \"type\": \"i128\"\n },\n {\n \"name\": \"min_value\",\n \"docs\": [\n \"The minimum value of the submissions needed for quorom size\"\n ],\n \"type\": \"i128\"\n },\n {\n \"name\": \"max_value\",\n \"docs\": [\n \"The maximum value of the submissions needed for quorom size\"\n ],\n \"type\": \"i128\"\n },\n {\n \"name\": \"num_samples\",\n \"docs\": [\"The number of samples used to calculate this result\"],\n \"type\": \"u8\"\n },\n {\n \"name\": \"submission_idx\",\n \"docs\": [\n \"The index of the submission that was used to calculate this result\"\n ],\n \"type\": \"u8\"\n },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 6] } },\n {\n \"name\": \"slot\",\n \"docs\": [\"The slot at which this value was signed.\"],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_slot\",\n \"docs\": [\n \"The slot at which the first considered submission was made\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_slot\",\n \"docs\": [\n \"The slot at which the last considered submission was made\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"GarbageCollectionEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"GuardianQuoteVerifyEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"quote\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"GuardianQuoteVerifyParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"timestamp\", \"type\": \"i64\" },\n { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"_reserved1\", \"type\": \"u32\" },\n { \"name\": \"ed25519_key\", \"type\": \"pubkey\" },\n { \"name\": \"secp256k1_key\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"slot\", \"type\": \"u64\" },\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" },\n { \"name\": \"advisories\", \"type\": { \"vec\": \"u32\" } }\n ]\n }\n },\n {\n \"name\": \"GuardianRegisterParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"GuardianUnregisterParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"MegaSlotInfo\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"reserved1\", \"type\": \"u64\" },\n { \"name\": \"slot_end\", \"type\": \"u64\" },\n { \"name\": \"perf_goal\", \"type\": \"i64\" },\n { \"name\": \"current_signature_count\", \"type\": \"i64\" }\n ]\n }\n },\n {\n \"name\": \"MultiSubmission\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } },\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" }\n ]\n }\n },\n {\n \"name\": \"OracleAccountData\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"enclave\",\n \"docs\": [\"Represents the state of the quote verifiers enclave.\"],\n \"type\": { \"defined\": { \"name\": \"Quote\" } }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"The authority of the EnclaveAccount which is permitted to make account changes.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"queue\",\n \"docs\": [\n \"Queue used for attestation to verify a MRENCLAVE measurement.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"created_at\",\n \"docs\": [\"The unix timestamp when the quote was created.\"],\n \"type\": \"i64\"\n },\n {\n \"name\": \"last_heartbeat\",\n \"docs\": [\"The last time the quote heartbeated on-chain.\"],\n \"type\": \"i64\"\n },\n { \"name\": \"secp_authority\", \"type\": { \"array\": [\"u8\", 64] } },\n {\n \"name\": \"gateway_uri\",\n \"docs\": [\"URI location of the verifier's gateway.\"],\n \"type\": { \"array\": [\"u8\", 64] }\n },\n { \"name\": \"permissions\", \"type\": \"u64\" },\n {\n \"name\": \"is_on_queue\",\n \"docs\": [\n \"Whether the quote is located on the AttestationQueues buffer.\"\n ],\n \"type\": \"u8\"\n },\n { \"name\": \"_padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"last_reward_epoch\", \"type\": \"u64\" },\n { \"name\": \"operator\", \"type\": \"pubkey\" },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 16] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 1024] } }\n ]\n }\n },\n {\n \"name\": \"OracleEpochInfo\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"id\", \"type\": \"u64\" },\n { \"name\": \"reserved1\", \"type\": \"u64\" },\n { \"name\": \"_reserved\", \"type\": \"u64\" },\n { \"name\": \"slash_score\", \"type\": \"u64\" },\n { \"name\": \"reward_score\", \"type\": \"u64\" },\n { \"name\": \"stake_score\", \"type\": \"u64\" }\n ]\n }\n },\n {\n \"name\": \"OracleHeartbeatEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"OracleHeartbeatParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway_uri\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n }\n ]\n }\n },\n {\n \"name\": \"OracleHeartbeatV2Params\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway_uri\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n }\n ]\n }\n },\n {\n \"name\": \"OracleInitEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"oracle\", \"type\": \"pubkey\" }]\n }\n },\n {\n \"name\": \"OracleInitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"recent_slot\", \"type\": \"u64\" },\n { \"name\": \"authority\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n {\n \"name\": \"secp_authority\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n }\n ]\n }\n },\n {\n \"name\": \"OracleInitSVMParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"recent_slot\", \"type\": \"u64\" },\n { \"name\": \"authority\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n {\n \"name\": \"secp_authority\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n },\n { \"name\": \"source_oracle_key\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"OracleQuoteOverrideEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"OracleQuoteRotateEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"oracle\", \"type\": \"pubkey\" }]\n }\n },\n {\n \"name\": \"OracleQuoteVerifyRequestEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"quote\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"OracleResetLutParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"recent_slot\", \"type\": \"u64\" }]\n }\n },\n {\n \"name\": \"OracleSetConfigsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"new_authority\", \"type\": { \"option\": \"pubkey\" } },\n {\n \"name\": \"new_secp_authority\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n }\n ]\n }\n },\n {\n \"name\": \"OracleSetOperatorParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"OracleStatsAccountData\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"owner\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n {\n \"name\": \"finalized_epoch\",\n \"docs\": [\n \"The last epoch that has completed. cleared after registered with the\",\n \"staking program.\"\n ],\n \"type\": { \"defined\": { \"name\": \"OracleEpochInfo\" } }\n },\n {\n \"name\": \"current_epoch\",\n \"docs\": [\n \"The current epoch info being used by the oracle. for stake. Will moved\",\n \"to finalized_epoch as soon as the epoch is over.\"\n ],\n \"type\": { \"defined\": { \"name\": \"OracleEpochInfo\" } }\n },\n {\n \"name\": \"mega_slot_info\",\n \"type\": { \"defined\": { \"name\": \"MegaSlotInfo\" } }\n },\n { \"name\": \"last_transfer_slot\", \"type\": \"u64\" },\n { \"name\": \"bump\", \"type\": \"u8\" },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n {\n \"name\": \"_ebuf\",\n \"docs\": [\"Reserved.\"],\n \"type\": { \"array\": [\"u8\", 1024] }\n }\n ]\n }\n },\n {\n \"name\": \"OracleSubmission\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"oracle\",\n \"docs\": [\"The public key of the oracle that submitted this value.\"],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"slot\",\n \"docs\": [\"The slot at which this value was signed.\"],\n \"type\": \"u64\"\n },\n {\n \"name\": \"landed_at\",\n \"docs\": [\"The slot at which this value was landed on chain.\"],\n \"type\": \"u64\"\n },\n {\n \"name\": \"value\",\n \"docs\": [\"The value that was submitted.\"],\n \"type\": \"i128\"\n }\n ]\n }\n },\n {\n \"name\": \"OracleSyncLutParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"PermissionSetEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"permission\", \"type\": \"pubkey\" }]\n }\n },\n {\n \"name\": \"PermissionSetParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"permission\", \"type\": \"u8\" },\n { \"name\": \"enable\", \"type\": \"bool\" }\n ]\n }\n },\n {\n \"name\": \"PullFeedAccountData\",\n \"docs\": [\"A representation of the data in a pull feed account.\"],\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"submissions\",\n \"docs\": [\"The oracle submissions for this feed.\"],\n \"type\": {\n \"array\": [{ \"defined\": { \"name\": \"OracleSubmission\" } }, 32]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"The public key of the authority that can update the feed hash that\",\n \"this account will use for registering updates.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"queue\",\n \"docs\": [\n \"The public key of the queue which oracles must be bound to in order to\",\n \"submit data to this feed.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"feed_hash\",\n \"docs\": [\n \"SHA-256 hash of the job schema oracles will execute to produce data\",\n \"for this feed.\"\n ],\n \"type\": { \"array\": [\"u8\", 32] }\n },\n {\n \"name\": \"initialized_at\",\n \"docs\": [\"The slot at which this account was initialized.\"],\n \"type\": \"i64\"\n },\n { \"name\": \"permissions\", \"type\": \"u64\" },\n { \"name\": \"max_variance\", \"type\": \"u64\" },\n { \"name\": \"min_responses\", \"type\": \"u32\" },\n { \"name\": \"name\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 1] } },\n { \"name\": \"permit_write_by_authority\", \"type\": \"u8\" },\n { \"name\": \"historical_result_idx\", \"type\": \"u8\" },\n { \"name\": \"min_sample_size\", \"type\": \"u8\" },\n { \"name\": \"last_update_timestamp\", \"type\": \"i64\" },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"_reserved1\", \"type\": { \"array\": [\"u8\", 32] } },\n {\n \"name\": \"result\",\n \"type\": { \"defined\": { \"name\": \"CurrentResult\" } }\n },\n { \"name\": \"max_staleness\", \"type\": \"u32\" },\n { \"name\": \"padding2\", \"type\": { \"array\": [\"u8\", 12] } },\n {\n \"name\": \"historical_results\",\n \"type\": {\n \"array\": [{ \"defined\": { \"name\": \"CompactResult\" } }, 32]\n }\n },\n { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 8] } },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 24] } },\n { \"name\": \"submission_timestamps\", \"type\": { \"array\": [\"i64\", 32] } }\n ]\n }\n },\n {\n \"name\": \"PullFeedCloseParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"PullFeedErrorValueEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"feed\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"PullFeedInitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"feed_hash\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"max_variance\", \"type\": \"u64\" },\n { \"name\": \"min_responses\", \"type\": \"u32\" },\n { \"name\": \"name\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"recent_slot\", \"type\": \"u64\" },\n { \"name\": \"ipfs_hash\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"min_sample_size\", \"type\": \"u8\" },\n { \"name\": \"max_staleness\", \"type\": \"u32\" },\n { \"name\": \"permit_write_by_authority\", \"type\": { \"option\": \"bool\" } }\n ]\n }\n },\n {\n \"name\": \"PullFeedSetConfigsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"feed_hash\",\n \"type\": { \"option\": { \"array\": [\"u8\", 32] } }\n },\n { \"name\": \"authority\", \"type\": { \"option\": \"pubkey\" } },\n { \"name\": \"max_variance\", \"type\": { \"option\": \"u64\" } },\n { \"name\": \"min_responses\", \"type\": { \"option\": \"u32\" } },\n { \"name\": \"name\", \"type\": { \"option\": { \"array\": [\"u8\", 32] } } },\n {\n \"name\": \"ipfs_hash\",\n \"type\": { \"option\": { \"array\": [\"u8\", 32] } }\n },\n { \"name\": \"min_sample_size\", \"type\": { \"option\": \"u8\" } },\n { \"name\": \"max_staleness\", \"type\": { \"option\": \"u32\" } },\n { \"name\": \"permit_write_by_authority\", \"type\": { \"option\": \"bool\" } }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseConsensusLightParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseConsensusParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseManyParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n {\n \"name\": \"submissions\",\n \"type\": { \"vec\": { \"defined\": { \"name\": \"MultiSubmission\" } } }\n }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n {\n \"name\": \"submissions\",\n \"type\": {\n \"vec\": {\n \"defined\": {\n \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_action::Submission\"\n }\n }\n }\n }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseSVMParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n {\n \"name\": \"submissions\",\n \"type\": {\n \"vec\": {\n \"defined\": {\n \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_svm_action::Submission\"\n }\n }\n }\n },\n { \"name\": \"source_queue_key\", \"type\": \"pubkey\" },\n { \"name\": \"queue_bump\", \"type\": \"u8\" }\n ]\n }\n },\n {\n \"name\": \"PullFeedValueEvents\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"feeds\", \"type\": { \"vec\": \"pubkey\" } },\n { \"name\": \"oracles\", \"type\": { \"vec\": \"pubkey\" } },\n { \"name\": \"values\", \"type\": { \"vec\": { \"vec\": \"i128\" } } },\n { \"name\": \"reward\", \"type\": \"u32\" }\n ]\n }\n },\n {\n \"name\": \"QueueAccountData\",\n \"docs\": [\n \"An Queue represents a round-robin queue of oracle oracles who attest on-chain\",\n \"whether a Switchboard Function was executed within an enclave against an expected set of\",\n \"enclave measurements.\",\n \"\",\n \"For an oracle to join the queue, the oracle must first submit their enclave quote on-chain and\",\n \"wait for an existing oracle to attest their quote. If the oracle's quote matches an expected\",\n \"measurement within the queues mr_enclaves config, it is granted permissions and will start\",\n \"being assigned update requests.\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"The address of the authority which is permitted to add/remove allowed enclave measurements.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mr_enclaves\",\n \"docs\": [\"Allowed enclave measurements.\"],\n \"type\": { \"array\": [{ \"array\": [\"u8\", 32] }, 32] }\n },\n {\n \"name\": \"oracle_keys\",\n \"docs\": [\n \"The addresses of the quote oracles who have a valid\",\n \"verification status and have heartbeated on-chain recently.\"\n ],\n \"type\": { \"array\": [\"pubkey\", 128] }\n },\n {\n \"name\": \"max_quote_verification_age\",\n \"docs\": [\n \"The maximum allowable time until a EnclaveAccount needs to be re-verified on-chain.\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"last_heartbeat\",\n \"docs\": [\n \"The unix timestamp when the last quote oracle heartbeated on-chain.\"\n ],\n \"type\": \"i64\"\n },\n { \"name\": \"node_timeout\", \"type\": \"i64\" },\n {\n \"name\": \"oracle_min_stake\",\n \"docs\": [\n \"The minimum number of lamports a quote oracle needs to lock-up in order to heartbeat and verify other quotes.\"\n ],\n \"type\": \"u64\"\n },\n { \"name\": \"allow_authority_override_after\", \"type\": \"i64\" },\n {\n \"name\": \"mr_enclaves_len\",\n \"docs\": [\"The number of allowed enclave measurements.\"],\n \"type\": \"u32\"\n },\n {\n \"name\": \"oracle_keys_len\",\n \"docs\": [\n \"The length of valid quote oracles for the given attestation queue.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"reward\",\n \"docs\": [\n \"The reward paid to quote oracles for attesting on-chain.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"curr_idx\",\n \"docs\": [\n \"Incrementer used to track the current quote oracle permitted to run any available functions.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"gc_idx\",\n \"docs\": [\n \"Incrementer used to garbage collect and remove stale quote oracles.\"\n ],\n \"type\": \"u32\"\n },\n { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"u8\" },\n { \"name\": \"require_authority_verify_permission\", \"type\": \"u8\" },\n { \"name\": \"require_usage_permissions\", \"type\": \"u8\" },\n { \"name\": \"signer_bump\", \"type\": \"u8\" },\n { \"name\": \"mint\", \"type\": \"pubkey\" },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"allow_subsidies\", \"type\": \"u8\" },\n { \"name\": \"_ebuf6\", \"type\": { \"array\": [\"u8\", 15] } },\n { \"name\": \"ncn\", \"type\": \"pubkey\" },\n { \"name\": \"_resrved\", \"type\": \"u64\" },\n {\n \"name\": \"vaults\",\n \"type\": { \"array\": [{ \"defined\": { \"name\": \"VaultInfo\" } }, 4] }\n },\n { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 256] } },\n { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 512] } }\n ]\n }\n },\n {\n \"name\": \"QueueAddMrEnclaveEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }\n ]\n }\n },\n {\n \"name\": \"QueueAddMrEnclaveParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }]\n }\n },\n {\n \"name\": \"QueueAllowSubsidiesParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"allow_subsidies\", \"type\": \"u8\" }]\n }\n },\n {\n \"name\": \"QueueGarbageCollectParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [{ \"name\": \"idx\", \"type\": \"u32\" }] }\n },\n {\n \"name\": \"QueueInitEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"queue\", \"type\": \"pubkey\" }]\n }\n },\n {\n \"name\": \"QueueInitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"allow_authority_override_after\", \"type\": \"u32\" },\n { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"bool\" },\n { \"name\": \"require_usage_permissions\", \"type\": \"bool\" },\n { \"name\": \"max_quote_verification_age\", \"type\": \"u32\" },\n { \"name\": \"reward\", \"type\": \"u32\" },\n { \"name\": \"node_timeout\", \"type\": \"u32\" },\n { \"name\": \"recent_slot\", \"type\": \"u64\" }\n ]\n }\n },\n {\n \"name\": \"QueueInitSVMParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"allow_authority_override_after\", \"type\": \"u32\" },\n { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"bool\" },\n { \"name\": \"require_usage_permissions\", \"type\": \"bool\" },\n { \"name\": \"max_quote_verification_age\", \"type\": \"u32\" },\n { \"name\": \"reward\", \"type\": \"u32\" },\n { \"name\": \"node_timeout\", \"type\": \"u32\" },\n { \"name\": \"recent_slot\", \"type\": \"u64\" },\n { \"name\": \"source_queue_key\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"QueueOverrideSVMParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"secp256k1_signer\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"max_quote_verification_age\", \"type\": \"i64\" },\n { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"slot\", \"type\": \"u64\" }\n ]\n }\n },\n {\n \"name\": \"QueuePaySubsidyParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"QueueRemoveMrEnclaveEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }\n ]\n }\n },\n {\n \"name\": \"QueueRemoveMrEnclaveParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }]\n }\n },\n {\n \"name\": \"QueueResetVaultParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"QueueSetConfigsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"authority\", \"type\": { \"option\": \"pubkey\" } },\n { \"name\": \"reward\", \"type\": { \"option\": \"u32\" } },\n { \"name\": \"node_timeout\", \"type\": { \"option\": \"i64\" } }\n ]\n }\n },\n { \"name\": \"QueueSetNcnParams\", \"type\": { \"kind\": \"struct\", \"fields\": [] } },\n {\n \"name\": \"QueueSetVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"enable\", \"type\": \"bool\" }]\n }\n },\n {\n \"name\": \"Quote\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"enclave_signer\",\n \"docs\": [\"The address of the signer generated within an enclave.\"],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mr_enclave\",\n \"docs\": [\n \"The quotes MRENCLAVE measurement dictating the contents of the secure enclave.\"\n ],\n \"type\": { \"array\": [\"u8\", 32] }\n },\n {\n \"name\": \"verification_status\",\n \"docs\": [\"The VerificationStatus of the quote.\"],\n \"type\": \"u8\"\n },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n {\n \"name\": \"verification_timestamp\",\n \"docs\": [\"The unix timestamp when the quote was last verified.\"],\n \"type\": \"i64\"\n },\n {\n \"name\": \"valid_until\",\n \"docs\": [\n \"The unix timestamp when the quotes verification status expires.\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"quote_registry\",\n \"docs\": [\n \"The off-chain registry where the verifiers quote can be located.\"\n ],\n \"type\": { \"array\": [\"u8\", 32] }\n },\n {\n \"name\": \"registry_key\",\n \"docs\": [\n \"Key to lookup the buffer data on IPFS or an alternative decentralized storage solution.\"\n ],\n \"type\": { \"array\": [\"u8\", 64] }\n },\n {\n \"name\": \"secp256k1_signer\",\n \"docs\": [\n \"The secp256k1 public key of the enclave signer. Derived from the enclave_signer.\"\n ],\n \"type\": { \"array\": [\"u8\", 64] }\n },\n { \"name\": \"last_ed25519_signer\", \"type\": \"pubkey\" },\n { \"name\": \"last_secp256k1_signer\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"last_rotate_slot\", \"type\": \"u64\" },\n { \"name\": \"guardian_approvers\", \"type\": { \"array\": [\"pubkey\", 64] } },\n { \"name\": \"guardian_approvers_len\", \"type\": \"u8\" },\n { \"name\": \"padding2\", \"type\": { \"array\": [\"u8\", 7] } },\n { \"name\": \"staging_ed25519_signer\", \"type\": \"pubkey\" },\n {\n \"name\": \"staging_secp256k1_signer\",\n \"type\": { \"array\": [\"u8\", 64] }\n },\n { \"name\": \"eth_signer\", \"type\": { \"array\": [\"u8\", 20] } },\n {\n \"name\": \"_ebuf4\",\n \"docs\": [\"Reserved.\"],\n \"type\": { \"array\": [\"u8\", 12] }\n },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 128] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 256] } },\n { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 512] } }\n ]\n }\n },\n {\n \"name\": \"RandomnessAccountData\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"authority\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n { \"name\": \"seed_slothash\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"seed_slot\", \"type\": \"u64\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"reveal_slot\", \"type\": \"u64\" },\n { \"name\": \"value\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 24] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 128] } },\n {\n \"name\": \"active_secp256k1_signer\",\n \"type\": { \"array\": [\"u8\", 64] }\n },\n { \"name\": \"active_secp256k1_expiration\", \"type\": \"i64\" }\n ]\n }\n },\n {\n \"name\": \"RandomnessCommitEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"randomness_account\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"slot\", \"type\": \"u64\" },\n { \"name\": \"slothash\", \"type\": { \"array\": [\"u8\", 32] } }\n ]\n }\n },\n {\n \"name\": \"RandomnessCommitParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"RandomnessInitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"recent_slot\", \"type\": \"u64\" }]\n }\n },\n {\n \"name\": \"RandomnessRevealParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" },\n { \"name\": \"value\", \"type\": { \"array\": [\"u8\", 32] } }\n ]\n }\n },\n {\n \"name\": \"State\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"bump\", \"type\": \"u8\" },\n { \"name\": \"test_only_disable_mr_enclave_check\", \"type\": \"u8\" },\n { \"name\": \"enable_staking\", \"type\": \"u8\" },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 5] } },\n { \"name\": \"authority\", \"type\": \"pubkey\" },\n { \"name\": \"guardian_queue\", \"type\": \"pubkey\" },\n { \"name\": \"reserved1\", \"type\": \"u64\" },\n { \"name\": \"epoch_length\", \"type\": \"u64\" },\n { \"name\": \"reserved2\", \"type\": { \"array\": [\"u8\", 136] } },\n { \"name\": \"switch_mint\", \"type\": \"pubkey\" },\n { \"name\": \"sgx_advisories\", \"type\": { \"array\": [\"u16\", 32] } },\n { \"name\": \"advisories_len\", \"type\": \"u8\" },\n { \"name\": \"padding2\", \"type\": \"u8\" },\n { \"name\": \"flat_reward_cut_percentage\", \"type\": \"u8\" },\n { \"name\": \"enable_slashing\", \"type\": \"u8\" },\n { \"name\": \"padding3\", \"type\": \"u32\" },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"base_reward\", \"type\": \"u32\" },\n { \"name\": \"padding4\", \"type\": { \"array\": [\"u8\", 4] } },\n { \"name\": \"subsidy_amount\", \"type\": \"u64\" },\n { \"name\": \"_ebuf6\", \"type\": { \"array\": [\"u8\", 16] } },\n { \"name\": \"_ebuf5\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 128] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 512] } },\n {\n \"name\": \"cost_whitelist\",\n \"docs\": [\"Cost whitelist by authority\"],\n \"type\": { \"array\": [\"pubkey\", 32] }\n }\n ]\n }\n },\n { \"name\": \"StateInitParams\", \"type\": { \"kind\": \"struct\", \"fields\": [] } },\n {\n \"name\": \"StateSetConfigsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"new_authority\", \"type\": \"pubkey\" },\n { \"name\": \"test_only_disable_mr_enclave_check\", \"type\": \"u8\" },\n { \"name\": \"add_advisory\", \"type\": \"u16\" },\n { \"name\": \"rm_advisory\", \"type\": \"u16\" },\n { \"name\": \"switch_mint\", \"type\": \"pubkey\" },\n { \"name\": \"subsidy_amount\", \"type\": \"u64\" },\n { \"name\": \"base_reward\", \"type\": \"u32\" },\n { \"name\": \"add_cost_wl\", \"type\": \"pubkey\" },\n { \"name\": \"rm_cost_wl\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"TestUpdateOracleStatsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"new_reward_score\", \"type\": \"u64\" }]\n }\n },\n {\n \"name\": \"VaultInfo\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"vault_key\", \"type\": \"pubkey\" },\n { \"name\": \"last_reward_epoch\", \"type\": \"u64\" }\n ]\n }\n },\n {\n \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_action::Submission\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"value\", \"type\": \"i128\" },\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" },\n { \"name\": \"offset\", \"type\": \"u8\" }\n ]\n }\n },\n {\n \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_svm_action::Submission\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"value\", \"type\": \"i128\" },\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" }\n ]\n }\n }\n ]\n}\n","import { BN, BorshCoder, Idl, Program, Provider } from \"@coral-xyz/anchor\";\nimport SWB_ONDEMAND_IDL from \"./idl.json\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport const SWITCHBOARD_ONDEMANDE_PRICE_PRECISION = 18;\n\nexport interface CurrentResult {\n value: BN;\n std_dev: BN;\n mean: BN;\n range: BN;\n min_value: BN;\n max_vaalue: BN;\n slot: BN;\n min_slot: BN;\n max_slot: BN;\n}\n\nexport interface OracleSubmission {\n oracle: PublicKey;\n slot: BN;\n value: BN;\n}\n\nexport interface PullFeedAccountData {\n submissions: OracleSubmission[];\n authority: PublicKey;\n queue: PublicKey;\n feed_hash: Buffer;\n initialized_at: BN;\n permissions: BN;\n max_variance: BN;\n min_responses: number;\n name: Buffer;\n sample_size: number;\n last_update_timestamp: BN;\n lut_slot: BN;\n result: CurrentResult;\n max_staleness: number;\n min_sample_size: number;\n}\n\nexport type CrossbarSimulatePayload = FeedResponse[];\n\nexport interface FeedResponse {\n feedHash: string;\n results: number[];\n}\n\nexport const switchboardAccountCoder = new BorshCoder(\n SWB_ONDEMAND_IDL as unknown as Idl\n);\nexport function getSwitchboardProgram(provider: Provider): Program {\n return new Program(SWB_ONDEMAND_IDL as unknown as Idl, provider);\n}\n\nexport function decodeSwitchboardPullFeedData(\n data: Buffer\n): PullFeedAccountData {\n const pullFeedDAta = switchboardAccountCoder.accounts.decode(\n \"PullFeedAccountData\",\n data\n ) as PullFeedAccountData;\n return pullFeedDAta;\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const KLEND_PROGRAM_ID = new PublicKey(\n \"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD\"\n);\nexport const FARMS_PROGRAM_ID = new PublicKey(\n \"FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr\"\n);\n\nconst MAIN_MARKET: PublicKey = new PublicKey(\n \"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF\"\n);\nconst MAIN_MARKET_LUT: PublicKey = new PublicKey(\n \"284iwGtA9X9aLy3KsyV8uT2pXLARhYbiSi5SiM2g47M2\"\n);\n\n// Slot timing constants (matches Kamino SDK)\nexport const SLOTS_PER_SECOND = 2;\n\nexport const SLOTS_PER_MINUTE = SLOTS_PER_SECOND * 60;\n\nexport const SLOTS_PER_HOUR = SLOTS_PER_MINUTE * 60;\n\nexport const SLOTS_PER_DAY = SLOTS_PER_HOUR * 24;\n\nexport const SLOTS_PER_YEAR = SLOTS_PER_DAY * 365;\n\n// Default slot duration in milliseconds\nexport const DEFAULT_RECENT_SLOT_DURATION_MS = 450;\n\nexport const ONE_HUNDRED_PCT_IN_BPS = 10_000;\n\nconst klendConstants = {\n MAIN_MARKET,\n MAIN_MARKET_LUT,\n KLEND_PROGRAM_ID,\n FARMS_PROGRAM_ID,\n};\n\nexport default klendConstants;\n","import { Address, Program } from \"@coral-xyz/anchor\";\nimport {\n AccountMeta,\n PublicKey,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { KlendIdlType } from \"./idl\";\nimport { bool, struct } from \"@coral-xyz/borsh\";\nimport { KLEND_PROGRAM_ID } from \"./constants\";\n\n/**\n * Refresh a generic Kamino reserve with a legacy Pyth oracle\n * @param program\n * @param reserve\n * @param market\n * @param oracle\n * @returns\n */\ntype MakeRefreshReserveIxParams = {\n program: Program<KlendIdlType>;\n reserve: PublicKey;\n market: PublicKey;\n pythOracle: PublicKey | null;\n switchboardPriceOracle: PublicKey | null;\n switchboardTwapOracle: PublicKey | null;\n scopePrices: PublicKey | null;\n};\n\nconst DEFAULT_PUBLIC_KEY: PublicKey = new PublicKey(\n \"11111111111111111111111111111111\"\n);\nconst NULL_PUBKEY: PublicKey = new PublicKey(\n \"nu11111111111111111111111111111111111111111\"\n);\n\nfunction isNotNullPubkey(pubkey: PublicKey | null): boolean {\n if (!pubkey) {\n return false;\n }\n return !pubkey.equals(NULL_PUBKEY) && !pubkey.equals(DEFAULT_PUBLIC_KEY);\n}\n\nfunction optionalAccount(pubkey: PublicKey | null): PublicKey | null {\n if (isNotNullPubkey(pubkey)) {\n return pubkey;\n } else {\n return null;\n }\n}\n\nconst makeRefreshReserveIx = ({\n program,\n reserve,\n market,\n pythOracle,\n switchboardPriceOracle,\n switchboardTwapOracle,\n scopePrices,\n}: MakeRefreshReserveIxParams) => {\n const ix = program.methods\n .refreshReserve()\n .accounts({\n reserve: reserve,\n lendingMarket: market,\n pythOracle: optionalAccount(pythOracle),\n switchboardPriceOracle: optionalAccount(switchboardPriceOracle),\n switchboardTwapOracle: optionalAccount(switchboardTwapOracle),\n scopePrices: optionalAccount(scopePrices),\n })\n .instruction();\n\n return ix;\n};\n\n/**\n * Refresh a generic Kamino obligation\n * @param program\n * @param market\n * @param obligation\n * @param remaining - pack the reserves used in this obligation, in the order they appear, starting\n * with lending reserves. For example, a user lending USDC at index 0, SOL at index 1, borrowing\n * BONK at index 0, pass [USDC, SOL, BONK] reserves\n * @returns\n */\nexport const REFRESH_OBLIGATION_DISCRIMINATOR = Buffer.from([\n 33, 132, 147, 228, 151, 192, 72, 89,\n]);\n\nexport interface RefreshObligationAccounts {\n lendingMarket: Address;\n obligation: Address;\n}\n\nexport const makeRefreshObligationIx = (\n lendingMarket: PublicKey,\n obligation: PublicKey,\n reserve: PublicKey\n): TransactionInstruction => {\n const keys: AccountMeta[] = [\n // lendingMarket: read-only, not a signer\n { pubkey: lendingMarket, isSigner: false, isWritable: false },\n\n // obligation: writable, not a signer (typical for state being updated)\n { pubkey: obligation, isSigner: false, isWritable: true },\n\n // any additional metas (e.g., oracles, reserves, payer signer, sysvars, etc.)\n {\n pubkey: reserve,\n isSigner: false,\n isWritable: false,\n },\n ];\n\n return new TransactionInstruction({\n keys,\n programId: KLEND_PROGRAM_ID,\n data: REFRESH_OBLIGATION_DISCRIMINATOR, // no extra encoding—just the 8-byte discriminator\n });\n};\n\nconst REFRESH_BATCH_DISCRIMINATOR = Buffer.from([\n 144, 110, 26, 103, 162, 204, 252, 147,\n]);\n\ninterface RefreshReservesBatchArgs {\n skipPriceUpdates: boolean;\n}\n\nexport const layout = struct<RefreshReservesBatchArgs>([\n bool(\"skipPriceUpdates\"),\n]);\n\ntype ReserveRemainingAccounts = {\n reserve: PublicKey;\n lendingMarket: PublicKey;\n};\n\nexport function makeRefreshReservesBatchIx(\n reserves: ReserveRemainingAccounts[],\n programId: PublicKey = KLEND_PROGRAM_ID\n) {\n const remainingAccounts = reserves.flatMap((reserve) => [\n {\n pubkey: reserve.reserve,\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: reserve.lendingMarket,\n isSigner: false,\n isWritable: false,\n },\n ]);\n\n const keys: Array<AccountMeta> = [...remainingAccounts];\n const buffer = Buffer.alloc(1000);\n const len = layout.encode(\n {\n skipPriceUpdates: true,\n },\n buffer\n );\n const data = Buffer.concat([REFRESH_BATCH_DISCRIMINATOR, buffer]).slice(\n 0,\n 8 + len\n );\n const ix = new TransactionInstruction({\n programId,\n keys,\n data,\n });\n return ix;\n}\n\nconst klendInstructions = {\n makeRefreshReserveIx,\n makeRefreshObligationIx,\n makeRefreshReservesBatchIx,\n};\n\nexport default klendInstructions;\n","import { Program } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nimport { KlendIdlType } from \"./idl\";\nimport klendInstructions from \"./instructions\";\nimport { ReserveRaw } from \"./types\";\n\ntype MakeRefreshingIxsParams = {\n klendProgram: Program<KlendIdlType>;\n // A \"bank\" in Kamino parlance\n reserve: ReserveRaw;\n reserveKey: PublicKey;\n obligationKey: PublicKey;\n program: Program<KlendIdlType>;\n};\n\nexport async function makeRefreshingIxs({\n klendProgram,\n reserve,\n reserveKey,\n obligationKey,\n program,\n}: MakeRefreshingIxsParams) {\n const tokenInfo = reserve.config.tokenInfo;\n const lendingMarket = reserve.lendingMarket;\n const refreshReserveIx = await klendInstructions.makeRefreshReserveIx({\n program: klendProgram,\n reserve: reserveKey,\n market: lendingMarket,\n pythOracle: tokenInfo.pythConfiguration.price,\n switchboardPriceOracle: tokenInfo.switchboardConfiguration.priceAggregator,\n switchboardTwapOracle: tokenInfo.switchboardConfiguration.twapAggregator,\n scopePrices: tokenInfo.scopeConfiguration.priceFeed,\n });\n\n const refreshObligationIx = klendInstructions.makeRefreshObligationIx(\n lendingMarket,\n obligationKey,\n reserveKey\n );\n\n return [refreshReserveIx, refreshObligationIx];\n}\n","import {\n ObligationCollateralFields,\n ObligationCollateralJSON,\n ObligationJSON,\n ObligationLiquidityFields,\n ObligationLiquidityJSON,\n ObligationOrderFields,\n ObligationOrderJSON,\n ObligationRaw,\n ReserveConfigFields,\n ReserveConfigJSON,\n ReserveJSON,\n ReserveLiquidityFields,\n ReserveLiquidityJSON,\n ReserveRaw,\n TokenInfoFields,\n TokenInfoJSON,\n WithdrawalCapsFields,\n WithdrawalCapsJSON,\n} from \"../../types\";\n\nexport function obligationRawToDto(\n obligationRaw: ObligationRaw\n): ObligationJSON {\n return {\n tag: obligationRaw.tag.toString(),\n lastUpdate: {\n slot: obligationRaw.lastUpdate.slot.toString(),\n stale: obligationRaw.lastUpdate.stale,\n priceStatus: obligationRaw.lastUpdate.priceStatus,\n placeholder: obligationRaw.lastUpdate.placeholder,\n },\n lendingMarket: obligationRaw.lendingMarket.toBase58(),\n owner: obligationRaw.owner.toBase58(),\n deposits: obligationRaw.deposits.map((item) =>\n obligationCollateralToDto(item)\n ),\n lowestReserveDepositLiquidationLtv:\n obligationRaw.lowestReserveDepositLiquidationLtv.toString(),\n depositedValueSf: obligationRaw.depositedValueSf.toString(),\n borrows: obligationRaw.borrows.map((item) =>\n obligationLiquidityToDto(item)\n ),\n borrowFactorAdjustedDebtValueSf:\n obligationRaw.borrowFactorAdjustedDebtValueSf.toString(),\n borrowedAssetsMarketValueSf:\n obligationRaw.borrowedAssetsMarketValueSf.toString(),\n allowedBorrowValueSf: obligationRaw.allowedBorrowValueSf.toString(),\n unhealthyBorrowValueSf: obligationRaw.unhealthyBorrowValueSf.toString(),\n depositsAssetTiers: obligationRaw.depositsAssetTiers,\n borrowsAssetTiers: obligationRaw.borrowsAssetTiers,\n elevationGroup: obligationRaw.elevationGroup,\n numOfObsoleteDepositReserves: obligationRaw.numOfObsoleteDepositReserves,\n hasDebt: obligationRaw.hasDebt,\n referrer: obligationRaw.referrer.toBase58(),\n borrowingDisabled: obligationRaw.borrowingDisabled,\n autodeleverageTargetLtvPct: obligationRaw.autodeleverageTargetLtvPct,\n lowestReserveDepositMaxLtvPct: obligationRaw.lowestReserveDepositMaxLtvPct,\n numOfObsoleteBorrowReserves: obligationRaw.numOfObsoleteBorrowReserves,\n reserved: obligationRaw.reserved,\n highestBorrowFactorPct: obligationRaw.highestBorrowFactorPct.toString(),\n autodeleverageMarginCallStartedTimestamp:\n obligationRaw.autodeleverageMarginCallStartedTimestamp.toString(),\n orders: obligationRaw.orders.map((item) => obligationOrderToDto(item)),\n padding3: obligationRaw.padding3.map((item) => item.toString()),\n };\n}\n\nexport function reserveRawToDto(reserveRaw: ReserveRaw): ReserveJSON {\n return {\n version: reserveRaw.version.toString(),\n lastUpdate: {\n slot: reserveRaw.lastUpdate.slot.toString(),\n stale: reserveRaw.lastUpdate.stale,\n priceStatus: reserveRaw.lastUpdate.priceStatus,\n placeholder: reserveRaw.lastUpdate.placeholder,\n },\n lendingMarket: reserveRaw.lendingMarket.toBase58(),\n farmCollateral: reserveRaw.farmCollateral.toBase58(),\n farmDebt: reserveRaw.farmDebt.toBase58(),\n liquidity: reserveLiquidityFieldsToDto(reserveRaw.liquidity),\n reserveLiquidityPadding: reserveRaw.reserveLiquidityPadding.map((item) =>\n item.toString()\n ),\n collateral: {\n mintPubkey: reserveRaw.collateral.mintPubkey.toBase58(),\n mintTotalSupply: reserveRaw.collateral.mintTotalSupply.toString(),\n supplyVault: reserveRaw.collateral.supplyVault.toBase58(),\n padding1: reserveRaw.collateral.padding1.map((item) => item.toString()),\n padding2: reserveRaw.collateral.padding2.map((item) => item.toString()),\n },\n reserveCollateralPadding: reserveRaw.reserveCollateralPadding.map((item) =>\n item.toString()\n ),\n config: reserveConfigFieldsToDto(reserveRaw.config),\n configPadding: reserveRaw.configPadding.map((item) => item.toString()),\n borrowedAmountOutsideElevationGroup:\n reserveRaw.borrowedAmountOutsideElevationGroup.toString(),\n borrowedAmountsAgainstThisReserveInElevationGroups:\n reserveRaw.borrowedAmountsAgainstThisReserveInElevationGroups.map(\n (item) => item.toString()\n ),\n padding: reserveRaw.padding.map((item) => item.toString()),\n };\n}\n\nfunction reserveLiquidityFieldsToDto(\n reserveLiquidityFields: ReserveLiquidityFields\n): ReserveLiquidityJSON {\n return {\n mintPubkey: reserveLiquidityFields.mintPubkey.toBase58(),\n supplyVault: reserveLiquidityFields.supplyVault.toBase58(),\n feeVault: reserveLiquidityFields.feeVault.toBase58(),\n availableAmount: reserveLiquidityFields.availableAmount.toString(),\n borrowedAmountSf: reserveLiquidityFields.borrowedAmountSf.toString(),\n marketPriceSf: reserveLiquidityFields.marketPriceSf.toString(),\n marketPriceLastUpdatedTs:\n reserveLiquidityFields.marketPriceLastUpdatedTs.toString(),\n mintDecimals: reserveLiquidityFields.mintDecimals.toString(),\n depositLimitCrossedTimestamp:\n reserveLiquidityFields.depositLimitCrossedTimestamp.toString(),\n borrowLimitCrossedTimestamp:\n reserveLiquidityFields.borrowLimitCrossedTimestamp.toString(),\n cumulativeBorrowRateBsf: {\n value: reserveLiquidityFields.cumulativeBorrowRateBsf.value.map((item) =>\n item.toString()\n ),\n padding: reserveLiquidityFields.cumulativeBorrowRateBsf.padding.map(\n (item) => item.toString()\n ),\n },\n accumulatedProtocolFeesSf:\n reserveLiquidityFields.accumulatedProtocolFeesSf.toString(),\n accumulatedReferrerFeesSf:\n reserveLiquidityFields.accumulatedReferrerFeesSf.toString(),\n pendingReferrerFeesSf:\n reserveLiquidityFields.pendingReferrerFeesSf.toString(),\n absoluteReferralRateSf:\n reserveLiquidityFields.absoluteReferralRateSf.toString(),\n tokenProgram: reserveLiquidityFields.tokenProgram.toBase58(),\n padding2: reserveLiquidityFields.padding2.map((item) => item.toString()),\n padding3: reserveLiquidityFields.padding3.map((item) => item.toString()),\n };\n}\n\nfunction reserveConfigFieldsToDto(\n reserveConfigFields: ReserveConfigFields\n): ReserveConfigJSON {\n return {\n status: reserveConfigFields.status,\n assetTier: reserveConfigFields.assetTier,\n hostFixedInterestRateBps: reserveConfigFields.hostFixedInterestRateBps,\n reserved2: reserveConfigFields.reserved2,\n protocolOrderExecutionFeePct:\n reserveConfigFields.protocolOrderExecutionFeePct,\n protocolTakeRatePct: reserveConfigFields.protocolTakeRatePct,\n protocolLiquidationFeePct: reserveConfigFields.protocolLiquidationFeePct,\n loanToValuePct: reserveConfigFields.loanToValuePct,\n liquidationThresholdPct: reserveConfigFields.liquidationThresholdPct,\n minLiquidationBonusBps: reserveConfigFields.minLiquidationBonusBps,\n maxLiquidationBonusBps: reserveConfigFields.maxLiquidationBonusBps,\n badDebtLiquidationBonusBps: reserveConfigFields.badDebtLiquidationBonusBps,\n deleveragingMarginCallPeriodSecs:\n reserveConfigFields.deleveragingMarginCallPeriodSecs.toString(),\n deleveragingThresholdDecreaseBpsPerDay:\n reserveConfigFields.deleveragingThresholdDecreaseBpsPerDay.toString(),\n fees: {\n borrowFeeSf: reserveConfigFields.fees.borrowFeeSf.toString(),\n flashLoanFeeSf: reserveConfigFields.fees.flashLoanFeeSf.toString(),\n padding: reserveConfigFields.fees.padding,\n },\n borrowRateCurve: {\n points: reserveConfigFields.borrowRateCurve.points.map((item) => ({\n utilizationRateBps: item.utilizationRateBps,\n borrowRateBps: item.borrowRateBps,\n })),\n },\n borrowFactorPct: reserveConfigFields.borrowFactorPct.toString(),\n depositLimit: reserveConfigFields.depositLimit.toString(),\n borrowLimit: reserveConfigFields.borrowLimit.toString(),\n tokenInfo: tokenInfoFieldsToDto(reserveConfigFields.tokenInfo),\n depositWithdrawalCap: withdrawalCapsFieldsToDto(\n reserveConfigFields.depositWithdrawalCap\n ),\n debtWithdrawalCap: withdrawalCapsFieldsToDto(\n reserveConfigFields.debtWithdrawalCap\n ),\n elevationGroups: reserveConfigFields.elevationGroups,\n disableUsageAsCollOutsideEmode:\n reserveConfigFields.disableUsageAsCollOutsideEmode,\n utilizationLimitBlockBorrowingAbovePct:\n reserveConfigFields.utilizationLimitBlockBorrowingAbovePct,\n autodeleverageEnabled: reserveConfigFields.autodeleverageEnabled,\n reserved1: reserveConfigFields.reserved1,\n borrowLimitOutsideElevationGroup:\n reserveConfigFields.borrowLimitOutsideElevationGroup.toString(),\n borrowLimitAgainstThisCollateralInElevationGroup:\n reserveConfigFields.borrowLimitAgainstThisCollateralInElevationGroup.map(\n (item) => item.toString()\n ),\n deleveragingBonusIncreaseBpsPerDay:\n reserveConfigFields.deleveragingBonusIncreaseBpsPerDay.toString(),\n };\n}\n\nfunction tokenInfoFieldsToDto(tokenInfoFields: TokenInfoFields): TokenInfoJSON {\n return {\n name: tokenInfoFields.name,\n heuristic: {\n lower: tokenInfoFields.heuristic.lower.toString(),\n upper: tokenInfoFields.heuristic.upper.toString(),\n exp: tokenInfoFields.heuristic.exp.toString(),\n },\n maxTwapDivergenceBps: tokenInfoFields.maxTwapDivergenceBps.toString(),\n maxAgePriceSeconds: tokenInfoFields.maxAgePriceSeconds.toString(),\n maxAgeTwapSeconds: tokenInfoFields.maxAgeTwapSeconds.toString(),\n scopeConfiguration: {\n priceFeed: tokenInfoFields.scopeConfiguration.priceFeed.toBase58(),\n priceChain: tokenInfoFields.scopeConfiguration.priceChain,\n twapChain: tokenInfoFields.scopeConfiguration.twapChain,\n },\n switchboardConfiguration: {\n priceAggregator:\n tokenInfoFields.switchboardConfiguration.priceAggregator.toBase58(),\n twapAggregator:\n tokenInfoFields.switchboardConfiguration.twapAggregator.toBase58(),\n },\n pythConfiguration: {\n price: tokenInfoFields.pythConfiguration.price.toBase58(),\n },\n blockPriceUsage: tokenInfoFields.blockPriceUsage,\n reserved: tokenInfoFields.reserved,\n padding: tokenInfoFields.padding.map((item) => item.toString()),\n };\n}\n\nfunction withdrawalCapsFieldsToDto(\n withdrawalCapsFields: WithdrawalCapsFields\n): WithdrawalCapsJSON {\n return {\n configCapacity: withdrawalCapsFields.configCapacity.toString(),\n currentTotal: withdrawalCapsFields.currentTotal.toString(),\n lastIntervalStartTimestamp:\n withdrawalCapsFields.lastIntervalStartTimestamp.toString(),\n configIntervalLengthSeconds:\n withdrawalCapsFields.configIntervalLengthSeconds.toString(),\n };\n}\n\nfunction obligationCollateralToDto(\n obligationCollateralFields: ObligationCollateralFields\n): ObligationCollateralJSON {\n return {\n depositReserve: obligationCollateralFields.depositReserve.toBase58(),\n depositedAmount: obligationCollateralFields.depositedAmount.toString(),\n marketValueSf: obligationCollateralFields.marketValueSf.toString(),\n borrowedAmountAgainstThisCollateralInElevationGroup:\n obligationCollateralFields.borrowedAmountAgainstThisCollateralInElevationGroup.toString(),\n padding: obligationCollateralFields.padding.map((item) => item.toString()),\n };\n}\n\nfunction obligationLiquidityToDto(\n obligationLiquidityFields: ObligationLiquidityFields\n): ObligationLiquidityJSON {\n return {\n borrowReserve: obligationLiquidityFields.borrowReserve.toBase58(),\n cumulativeBorrowRateBsf: {\n value: obligationLiquidityFields.cumulativeBorrowRateBsf.value.map(\n (item) => item.toString()\n ),\n padding: obligationLiquidityFields.cumulativeBorrowRateBsf.padding.map(\n (item) => item.toString()\n ),\n },\n padding: obligationLiquidityFields.padding.toString(),\n borrowedAmountSf: obligationLiquidityFields.borrowedAmountSf.toString(),\n marketValueSf: obligationLiquidityFields.marketValueSf.toString(),\n borrowFactorAdjustedMarketValueSf:\n obligationLiquidityFields.borrowFactorAdjustedMarketValueSf.toString(),\n borrowedAmountOutsideElevationGroups:\n obligationLiquidityFields.borrowedAmountOutsideElevationGroups.toString(),\n padding2: obligationLiquidityFields.padding2.map((item) => item.toString()),\n };\n}\n\nfunction obligationOrderToDto(\n obligationOrderFields: ObligationOrderFields\n): ObligationOrderJSON {\n return {\n conditionThresholdSf: obligationOrderFields.conditionThresholdSf.toString(),\n opportunityParameterSf:\n obligationOrderFields.opportunityParameterSf.toString(),\n minExecutionBonusBps: obligationOrderFields.minExecutionBonusBps,\n maxExecutionBonusBps: obligationOrderFields.maxExecutionBonusBps,\n conditionType: obligationOrderFields.conditionType,\n opportunityType: obligationOrderFields.opportunityType,\n padding1: obligationOrderFields.padding1,\n padding2: obligationOrderFields.padding2.map((item) => item.toString()),\n };\n}\n","{\n \"address\": \"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD\",\n \"metadata\": {\n \"name\": \"kamino_lending\",\n \"version\": \"1.11.0\",\n \"spec\": \"0.1.0\"\n },\n \"instructions\": [\n {\n \"name\": \"init_lending_market\",\n \"discriminator\": [\n 34,\n 162,\n 116,\n 14,\n 101,\n 137,\n 94,\n 239\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"lending_market\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": [\n {\n \"name\": \"quote_currency\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n },\n {\n \"name\": \"update_lending_market\",\n \"discriminator\": [\n 209,\n 157,\n 53,\n 210,\n 97,\n 180,\n 31,\n 45\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u8\",\n 72\n ]\n }\n }\n ]\n },\n {\n \"name\": \"update_lending_market_owner\",\n \"discriminator\": [\n 118,\n 224,\n 10,\n 62,\n 196,\n 230,\n 184,\n 89\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner_cached\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"init_reserve\",\n \"discriminator\": [\n 138,\n 245,\n 71,\n 225,\n 153,\n 4,\n 3,\n 43\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_supply\",\n \"writable\": true\n },\n {\n \"name\": \"initial_liquidity_source\",\n \"writable\": true\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"init_farms_for_reserve\",\n \"discriminator\": [\n 218,\n 6,\n 62,\n 233,\n 1,\n 33,\n 232,\n 82\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"farms_program\"\n },\n {\n \"name\": \"farms_global_config\"\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"farms_vault_authority\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"update_reserve_config\",\n \"discriminator\": [\n 61,\n 148,\n 100,\n 70,\n 143,\n 107,\n 17,\n 13\n ],\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateConfigMode\"\n }\n }\n },\n {\n \"name\": \"value\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"skip_config_integrity_validation\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"redeem_fees\",\n \"discriminator\": [\n 215,\n 39,\n 180,\n 41,\n 173,\n 46,\n 248,\n 220\n ],\n \"accounts\": [\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_supply_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_protocol_fee\",\n \"discriminator\": [\n 158,\n 201,\n 158,\n 189,\n 33,\n 93,\n 162,\n 103\n ],\n \"accounts\": [\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\"\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"fee_vault\",\n \"writable\": true\n },\n {\n \"name\": \"fee_collector_ata\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"socialize_loss\",\n \"discriminator\": [\n 245,\n 75,\n 91,\n 0,\n 236,\n 97,\n 19,\n 3\n ],\n \"accounts\": [\n {\n \"name\": \"risk_council\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"socialize_loss_v2\",\n \"discriminator\": [\n 238,\n 95,\n 98,\n 220,\n 187,\n 40,\n 204,\n 154\n ],\n \"accounts\": [\n {\n \"name\": \"socialize_loss_accounts\",\n \"accounts\": [\n {\n \"name\": \"risk_council\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"mark_obligation_for_deleveraging\",\n \"discriminator\": [\n 164,\n 35,\n 182,\n 19,\n 0,\n 116,\n 243,\n 127\n ],\n \"accounts\": [\n {\n \"name\": \"risk_council\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n }\n ],\n \"args\": [\n {\n \"name\": \"autodeleverage_target_ltv_pct\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"refresh_reserve\",\n \"discriminator\": [\n 2,\n 218,\n 138,\n 235,\n 79,\n 201,\n 25,\n 102\n ],\n \"accounts\": [\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"pyth_oracle\",\n \"optional\": true\n },\n {\n \"name\": \"switchboard_price_oracle\",\n \"optional\": true\n },\n {\n \"name\": \"switchboard_twap_oracle\",\n \"optional\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"refresh_reserves_batch\",\n \"discriminator\": [\n 144,\n 110,\n 26,\n 103,\n 162,\n 204,\n 252,\n 147\n ],\n \"accounts\": [],\n \"args\": [\n {\n \"name\": \"skip_price_updates\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"deposit_reserve_liquidity\",\n \"discriminator\": [\n 169,\n 201,\n 30,\n 126,\n 6,\n 205,\n 102,\n 68\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"redeem_reserve_collateral\",\n \"discriminator\": [\n 234,\n 117,\n 181,\n 125,\n 185,\n 142,\n 220,\n 29\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"init_obligation\",\n \"discriminator\": [\n 251,\n 10,\n 231,\n 76,\n 27,\n 11,\n 159,\n 96\n ],\n \"accounts\": [\n {\n \"name\": \"obligation_owner\",\n \"signer\": true\n },\n {\n \"name\": \"fee_payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"seed1_account\"\n },\n {\n \"name\": \"seed2_account\"\n },\n {\n \"name\": \"owner_user_metadata\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitObligationArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"init_obligation_farms_for_reserve\",\n \"discriminator\": [\n 136,\n 63,\n 15,\n 186,\n 211,\n 152,\n 168,\n 164\n ],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"owner\"\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"obligation_farm\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"farms_program\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"refresh_obligation_farms_for_reserve\",\n \"discriminator\": [\n 140,\n 144,\n 253,\n 21,\n 10,\n 74,\n 248,\n 3\n ],\n \"accounts\": [\n {\n \"name\": \"crank\",\n \"signer\": true\n },\n {\n \"name\": \"base_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\"\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"refresh_obligation\",\n \"discriminator\": [\n 33,\n 132,\n 147,\n 228,\n 151,\n 192,\n 72,\n 89\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"deposit_obligation_collateral\",\n \"discriminator\": [\n 108,\n 209,\n 4,\n 72,\n 21,\n 22,\n 118,\n 133\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"deposit_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_obligation_collateral_v2\",\n \"discriminator\": [\n 137,\n 145,\n 151,\n 94,\n 167,\n 113,\n 4,\n 145\n ],\n \"accounts\": [\n {\n \"name\": \"deposit_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"deposit_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_obligation_collateral\",\n \"discriminator\": [\n 37,\n 116,\n 205,\n 103,\n 243,\n 192,\n 92,\n 198\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_obligation_collateral_v2\",\n \"discriminator\": [\n 202,\n 249,\n 117,\n 114,\n 231,\n 192,\n 47,\n 138\n ],\n \"accounts\": [\n {\n \"name\": \"withdraw_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"borrow_obligation_liquidity\",\n \"discriminator\": [\n 121,\n 127,\n 18,\n 204,\n 73,\n 245,\n 225,\n 65\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"borrow_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"borrow_reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"borrow_reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"borrow_obligation_liquidity_v2\",\n \"discriminator\": [\n 161,\n 128,\n 143,\n 245,\n 171,\n 199,\n 194,\n 6\n ],\n \"accounts\": [\n {\n \"name\": \"borrow_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"borrow_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"borrow_reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"borrow_reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"repay_obligation_liquidity\",\n \"discriminator\": [\n 145,\n 178,\n 13,\n 225,\n 76,\n 240,\n 147,\n 72\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"repay_obligation_liquidity_v2\",\n \"discriminator\": [\n 116,\n 174,\n 213,\n 76,\n 180,\n 53,\n 210,\n 144\n ],\n \"accounts\": [\n {\n \"name\": \"repay_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"repay_and_withdraw_and_redeem\",\n \"discriminator\": [\n 2,\n 54,\n 152,\n 3,\n 148,\n 96,\n 109,\n 218\n ],\n \"accounts\": [\n {\n \"name\": \"repay_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"withdraw_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"collateral_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"debt_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"repay_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdraw_collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_and_withdraw\",\n \"discriminator\": [\n 141,\n 153,\n 39,\n 15,\n 64,\n 61,\n 88,\n 84\n ],\n \"accounts\": [\n {\n \"name\": \"deposit_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_deposit_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"withdraw_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"deposit_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"withdraw_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdraw_collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_reserve_liquidity_and_obligation_collateral\",\n \"discriminator\": [\n 129,\n 199,\n 4,\n 2,\n 222,\n 39,\n 26,\n 46\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_deposit_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_reserve_liquidity_and_obligation_collateral_v2\",\n \"discriminator\": [\n 216,\n 224,\n 191,\n 27,\n 204,\n 151,\n 102,\n 175\n ],\n \"accounts\": [\n {\n \"name\": \"deposit_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_deposit_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_obligation_collateral_and_redeem_reserve_collateral\",\n \"discriminator\": [\n 75,\n 93,\n 93,\n 220,\n 34,\n 150,\n 218,\n 196\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_obligation_collateral_and_redeem_reserve_collateral_v2\",\n \"discriminator\": [\n 235,\n 52,\n 119,\n 152,\n 149,\n 197,\n 20,\n 7\n ],\n \"accounts\": [\n {\n \"name\": \"withdraw_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"liquidate_obligation_and_redeem_reserve_collateral\",\n \"discriminator\": [\n 177,\n 71,\n 154,\n 188,\n 226,\n 133,\n 74,\n 55\n ],\n \"accounts\": [\n {\n \"name\": \"liquidator\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"repay_reserve_liquidity_mint\"\n },\n {\n \"name\": \"repay_reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_mint\"\n },\n {\n \"name\": \"withdraw_reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_collateral_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"repay_liquidity_token_program\"\n },\n {\n \"name\": \"withdraw_liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_acceptable_received_liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_allowed_ltv_override_percent\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"liquidate_obligation_and_redeem_reserve_collateral_v2\",\n \"discriminator\": [\n 162,\n 161,\n 35,\n 143,\n 30,\n 187,\n 185,\n 103\n ],\n \"accounts\": [\n {\n \"name\": \"liquidation_accounts\",\n \"accounts\": [\n {\n \"name\": \"liquidator\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\",\n \"writable\": true\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"repay_reserve_liquidity_mint\"\n },\n {\n \"name\": \"repay_reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_mint\"\n },\n {\n \"name\": \"withdraw_reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_collateral_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"repay_liquidity_token_program\"\n },\n {\n \"name\": \"withdraw_liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"collateral_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"debt_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_acceptable_received_liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_allowed_ltv_override_percent\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"flash_repay_reserve_liquidity\",\n \"discriminator\": [\n 185,\n 117,\n 0,\n 203,\n 96,\n 245,\n 180,\n 186\n ],\n \"accounts\": [\n {\n \"name\": \"user_transfer_authority\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"referrer_account\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"sysvar_info\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrow_instruction_index\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"flash_borrow_reserve_liquidity\",\n \"discriminator\": [\n 135,\n 231,\n 52,\n 167,\n 7,\n 52,\n 212,\n 193\n ],\n \"accounts\": [\n {\n \"name\": \"user_transfer_authority\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"referrer_account\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"sysvar_info\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"request_elevation_group\",\n \"discriminator\": [\n 36,\n 119,\n 251,\n 129,\n 34,\n 240,\n 7,\n 147\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n }\n ],\n \"args\": [\n {\n \"name\": \"elevation_group\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"init_referrer_token_state\",\n \"discriminator\": [\n 116,\n 45,\n 66,\n 148,\n 58,\n 13,\n 218,\n 115\n ],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\"\n },\n {\n \"name\": \"referrer\"\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"init_user_metadata\",\n \"discriminator\": [\n 117,\n 169,\n 176,\n 69,\n 197,\n 23,\n 15,\n 162\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"fee_payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"user_metadata\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_user_metadata\",\n \"optional\": true\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"user_lookup_table\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"withdraw_referrer_fees\",\n \"discriminator\": [\n 171,\n 118,\n 121,\n 201,\n 233,\n 140,\n 23,\n 228\n ],\n \"accounts\": [\n {\n \"name\": \"referrer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_supply_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"init_referrer_state_and_short_url\",\n \"discriminator\": [\n 165,\n 19,\n 25,\n 127,\n 100,\n 55,\n 31,\n 90\n ],\n \"accounts\": [\n {\n \"name\": \"referrer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"referrer_state\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_short_url\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_user_metadata\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"short_url\",\n \"type\": \"string\"\n }\n ]\n },\n {\n \"name\": \"delete_referrer_state_and_short_url\",\n \"discriminator\": [\n 153,\n 185,\n 99,\n 28,\n 228,\n 179,\n 187,\n 150\n ],\n \"accounts\": [\n {\n \"name\": \"referrer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"referrer_state\",\n \"writable\": true\n },\n {\n \"name\": \"short_url\",\n \"writable\": true\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"set_obligation_order\",\n \"discriminator\": [\n 81,\n 1,\n 99,\n 156,\n 211,\n 83,\n 78,\n 46\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n }\n ],\n \"args\": [\n {\n \"name\": \"index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"order\",\n \"type\": {\n \"defined\": {\n \"name\": \"ObligationOrder\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"init_global_config\",\n \"discriminator\": [\n 140,\n 136,\n 214,\n 48,\n 87,\n 0,\n 120,\n 255\n ],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n },\n {\n \"name\": \"program_data\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_global_config\",\n \"discriminator\": [\n 164,\n 84,\n 130,\n 189,\n 111,\n 58,\n 250,\n 200\n ],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateGlobalConfigMode\"\n }\n }\n },\n {\n \"name\": \"value\",\n \"type\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"update_global_config_admin\",\n \"discriminator\": [\n 184,\n 87,\n 23,\n 193,\n 156,\n 238,\n 175,\n 119\n ],\n \"accounts\": [\n {\n \"name\": \"pending_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"idl_missing_types\",\n \"discriminator\": [\n 130,\n 80,\n 38,\n 153,\n 80,\n 212,\n 182,\n 253\n ],\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"reserve_farm_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveFarmKind\"\n }\n }\n },\n {\n \"name\": \"asset_tier\",\n \"type\": {\n \"defined\": {\n \"name\": \"AssetTier\"\n }\n }\n },\n {\n \"name\": \"fee_calculation\",\n \"type\": {\n \"defined\": {\n \"name\": \"FeeCalculation\"\n }\n }\n },\n {\n \"name\": \"reserve_status\",\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveStatus\"\n }\n }\n },\n {\n \"name\": \"update_config_mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateConfigMode\"\n }\n }\n },\n {\n \"name\": \"update_lending_market_config_value\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateLendingMarketConfigValue\"\n }\n }\n },\n {\n \"name\": \"update_lending_market_config_mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateLendingMarketMode\"\n }\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"UserState\",\n \"discriminator\": [\n 72,\n 177,\n 85,\n 249,\n 76,\n 167,\n 186,\n 126\n ]\n },\n {\n \"name\": \"GlobalConfig\",\n \"discriminator\": [\n 149,\n 8,\n 156,\n 202,\n 160,\n 252,\n 176,\n 217\n ]\n },\n {\n \"name\": \"LendingMarket\",\n \"discriminator\": [\n 246,\n 114,\n 50,\n 98,\n 72,\n 157,\n 28,\n 120\n ]\n },\n {\n \"name\": \"Obligation\",\n \"discriminator\": [\n 168,\n 206,\n 141,\n 106,\n 88,\n 76,\n 172,\n 167\n ]\n },\n {\n \"name\": \"ReferrerState\",\n \"discriminator\": [\n 194,\n 81,\n 217,\n 103,\n 12,\n 19,\n 12,\n 66\n ]\n },\n {\n \"name\": \"ReferrerTokenState\",\n \"discriminator\": [\n 39,\n 15,\n 208,\n 77,\n 32,\n 195,\n 105,\n 56\n ]\n },\n {\n \"name\": \"ShortUrl\",\n \"discriminator\": [\n 28,\n 89,\n 174,\n 25,\n 226,\n 124,\n 126,\n 212\n ]\n },\n {\n \"name\": \"UserMetadata\",\n \"discriminator\": [\n 157,\n 214,\n 220,\n 235,\n 98,\n 135,\n 171,\n 28\n ]\n },\n {\n \"name\": \"Reserve\",\n \"discriminator\": [\n 43,\n 242,\n 204,\n 202,\n 26,\n 247,\n 59,\n 127\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InvalidMarketAuthority\",\n \"msg\": \"Market authority is invalid\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidMarketOwner\",\n \"msg\": \"Market owner is invalid\"\n },\n {\n \"code\": 6002,\n \"name\": \"InvalidAccountOwner\",\n \"msg\": \"Input account owner is not the program address\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidAmount\",\n \"msg\": \"Input amount is invalid\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidConfig\",\n \"msg\": \"Input config value is invalid\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidSigner\",\n \"msg\": \"Input account must be a signer\"\n },\n {\n \"code\": 6006,\n \"name\": \"InvalidAccountInput\",\n \"msg\": \"Invalid account input\"\n },\n {\n \"code\": 6007,\n \"name\": \"MathOverflow\",\n \"msg\": \"Math operation overflow\"\n },\n {\n \"code\": 6008,\n \"name\": \"InsufficientLiquidity\",\n \"msg\": \"Insufficient liquidity available\"\n },\n {\n \"code\": 6009,\n \"name\": \"ReserveStale\",\n \"msg\": \"Reserve state needs to be refreshed\"\n },\n {\n \"code\": 6010,\n \"name\": \"WithdrawTooSmall\",\n \"msg\": \"Withdraw amount too small\"\n },\n {\n \"code\": 6011,\n \"name\": \"WithdrawTooLarge\",\n \"msg\": \"Withdraw amount too large\"\n },\n {\n \"code\": 6012,\n \"name\": \"BorrowTooSmall\",\n \"msg\": \"Borrow amount too small to receive liquidity after fees\"\n },\n {\n \"code\": 6013,\n \"name\": \"BorrowTooLarge\",\n \"msg\": \"Borrow amount too large for deposited collateral\"\n },\n {\n \"code\": 6014,\n \"name\": \"RepayTooSmall\",\n \"msg\": \"Repay amount too small to transfer liquidity\"\n },\n {\n \"code\": 6015,\n \"name\": \"LiquidationTooSmall\",\n \"msg\": \"Liquidation amount too small to receive collateral\"\n },\n {\n \"code\": 6016,\n \"name\": \"ObligationHealthy\",\n \"msg\": \"Cannot liquidate healthy obligations\"\n },\n {\n \"code\": 6017,\n \"name\": \"ObligationStale\",\n \"msg\": \"Obligation state needs to be refreshed\"\n },\n {\n \"code\": 6018,\n \"name\": \"ObligationReserveLimit\",\n \"msg\": \"Obligation reserve limit exceeded\"\n },\n {\n \"code\": 6019,\n \"name\": \"InvalidObligationOwner\",\n \"msg\": \"Obligation owner is invalid\"\n },\n {\n \"code\": 6020,\n \"name\": \"ObligationDepositsEmpty\",\n \"msg\": \"Obligation deposits are empty\"\n },\n {\n \"code\": 6021,\n \"name\": \"ObligationBorrowsEmpty\",\n \"msg\": \"Obligation borrows are empty\"\n },\n {\n \"code\": 6022,\n \"name\": \"ObligationDepositsZero\",\n \"msg\": \"Obligation deposits have zero value\"\n },\n {\n \"code\": 6023,\n \"name\": \"ObligationBorrowsZero\",\n \"msg\": \"Obligation borrows have zero value\"\n },\n {\n \"code\": 6024,\n \"name\": \"InvalidObligationCollateral\",\n \"msg\": \"Invalid obligation collateral\"\n },\n {\n \"code\": 6025,\n \"name\": \"InvalidObligationLiquidity\",\n \"msg\": \"Invalid obligation liquidity\"\n },\n {\n \"code\": 6026,\n \"name\": \"ObligationCollateralEmpty\",\n \"msg\": \"Obligation collateral is empty\"\n },\n {\n \"code\": 6027,\n \"name\": \"ObligationLiquidityEmpty\",\n \"msg\": \"Obligation liquidity is empty\"\n },\n {\n \"code\": 6028,\n \"name\": \"NegativeInterestRate\",\n \"msg\": \"Interest rate is negative\"\n },\n {\n \"code\": 6029,\n \"name\": \"InvalidOracleConfig\",\n \"msg\": \"Input oracle config is invalid\"\n },\n {\n \"code\": 6030,\n \"name\": \"InsufficientProtocolFeesToRedeem\",\n \"msg\": \"Insufficient protocol fees to claim or no liquidity available\"\n },\n {\n \"code\": 6031,\n \"name\": \"FlashBorrowCpi\",\n \"msg\": \"No cpi flash borrows allowed\"\n },\n {\n \"code\": 6032,\n \"name\": \"NoFlashRepayFound\",\n \"msg\": \"No corresponding repay found for flash borrow\"\n },\n {\n \"code\": 6033,\n \"name\": \"InvalidFlashRepay\",\n \"msg\": \"Invalid repay found\"\n },\n {\n \"code\": 6034,\n \"name\": \"FlashRepayCpi\",\n \"msg\": \"No cpi flash repays allowed\"\n },\n {\n \"code\": 6035,\n \"name\": \"MultipleFlashBorrows\",\n \"msg\": \"Multiple flash borrows not allowed in the same transaction\"\n },\n {\n \"code\": 6036,\n \"name\": \"FlashLoansDisabled\",\n \"msg\": \"Flash loans are disabled for this reserve\"\n },\n {\n \"code\": 6037,\n \"name\": \"SwitchboardV2Error\",\n \"msg\": \"Switchboard error\"\n },\n {\n \"code\": 6038,\n \"name\": \"CouldNotDeserializeScope\",\n \"msg\": \"Cannot deserialize the scope price account\"\n },\n {\n \"code\": 6039,\n \"name\": \"PriceTooOld\",\n \"msg\": \"Price too old\"\n },\n {\n \"code\": 6040,\n \"name\": \"PriceTooDivergentFromTwap\",\n \"msg\": \"Price too divergent from twap\"\n },\n {\n \"code\": 6041,\n \"name\": \"InvalidTwapPrice\",\n \"msg\": \"Invalid twap price\"\n },\n {\n \"code\": 6042,\n \"name\": \"GlobalEmergencyMode\",\n \"msg\": \"Emergency mode is enabled\"\n },\n {\n \"code\": 6043,\n \"name\": \"InvalidFlag\",\n \"msg\": \"Invalid lending market config\"\n },\n {\n \"code\": 6044,\n \"name\": \"PriceNotValid\",\n \"msg\": \"Price is not valid\"\n },\n {\n \"code\": 6045,\n \"name\": \"PriceIsBiggerThanHeuristic\",\n \"msg\": \"Price is bigger than allowed by heuristic\"\n },\n {\n \"code\": 6046,\n \"name\": \"PriceIsLowerThanHeuristic\",\n \"msg\": \"Price lower than allowed by heuristic\"\n },\n {\n \"code\": 6047,\n \"name\": \"PriceIsZero\",\n \"msg\": \"Price is zero\"\n },\n {\n \"code\": 6048,\n \"name\": \"PriceConfidenceTooWide\",\n \"msg\": \"Price confidence too wide\"\n },\n {\n \"code\": 6049,\n \"name\": \"IntegerOverflow\",\n \"msg\": \"Conversion between integers failed\"\n },\n {\n \"code\": 6050,\n \"name\": \"NoFarmForReserve\",\n \"msg\": \"This reserve does not have a farm\"\n },\n {\n \"code\": 6051,\n \"name\": \"IncorrectInstructionInPosition\",\n \"msg\": \"Wrong instruction at expected position\"\n },\n {\n \"code\": 6052,\n \"name\": \"NoPriceFound\",\n \"msg\": \"No price found\"\n },\n {\n \"code\": 6053,\n \"name\": \"InvalidTwapConfig\",\n \"msg\": \"Invalid Twap configuration: Twap is enabled but one of the enabled price doesn't have a twap\"\n },\n {\n \"code\": 6054,\n \"name\": \"InvalidPythPriceAccount\",\n \"msg\": \"Pyth price account does not match configuration\"\n },\n {\n \"code\": 6055,\n \"name\": \"InvalidSwitchboardAccount\",\n \"msg\": \"Switchboard account(s) do not match configuration\"\n },\n {\n \"code\": 6056,\n \"name\": \"InvalidScopePriceAccount\",\n \"msg\": \"Scope price account does not match configuration\"\n },\n {\n \"code\": 6057,\n \"name\": \"ObligationCollateralLtvZero\",\n \"msg\": \"The obligation has one collateral with an LTV set to 0. Withdraw it before withdrawing other collaterals\"\n },\n {\n \"code\": 6058,\n \"name\": \"InvalidObligationSeedsValue\",\n \"msg\": \"Seeds must be default pubkeys for tag 0, and mint addresses for tag 1 or 2\"\n },\n {\n \"code\": 6059,\n \"name\": \"DeprecatedInvalidObligationId\",\n \"msg\": \"[DEPRECATED] Obligation id must be 0\"\n },\n {\n \"code\": 6060,\n \"name\": \"InvalidBorrowRateCurvePoint\",\n \"msg\": \"Invalid borrow rate curve point\"\n },\n {\n \"code\": 6061,\n \"name\": \"InvalidUtilizationRate\",\n \"msg\": \"Invalid utilization rate\"\n },\n {\n \"code\": 6062,\n \"name\": \"CannotSocializeObligationWithCollateral\",\n \"msg\": \"Obligation hasn't been fully liquidated and debt cannot be socialized.\"\n },\n {\n \"code\": 6063,\n \"name\": \"ObligationEmpty\",\n \"msg\": \"Obligation has no borrows or deposits.\"\n },\n {\n \"code\": 6064,\n \"name\": \"WithdrawalCapReached\",\n \"msg\": \"Withdrawal cap is reached\"\n },\n {\n \"code\": 6065,\n \"name\": \"LastTimestampGreaterThanCurrent\",\n \"msg\": \"The last interval start timestamp is greater than the current timestamp\"\n },\n {\n \"code\": 6066,\n \"name\": \"LiquidationRewardTooSmall\",\n \"msg\": \"The reward amount is less than the minimum acceptable received liquidity\"\n },\n {\n \"code\": 6067,\n \"name\": \"IsolatedAssetTierViolation\",\n \"msg\": \"Isolated Asset Tier Violation\"\n },\n {\n \"code\": 6068,\n \"name\": \"InconsistentElevationGroup\",\n \"msg\": \"The obligation's elevation group and the reserve's are not the same\"\n },\n {\n \"code\": 6069,\n \"name\": \"InvalidElevationGroup\",\n \"msg\": \"The elevation group chosen for the reserve does not exist in the lending market\"\n },\n {\n \"code\": 6070,\n \"name\": \"InvalidElevationGroupConfig\",\n \"msg\": \"The elevation group updated has wrong parameters set\"\n },\n {\n \"code\": 6071,\n \"name\": \"UnhealthyElevationGroupLtv\",\n \"msg\": \"The current obligation must have most or all its debt repaid before changing the elevation group\"\n },\n {\n \"code\": 6072,\n \"name\": \"ElevationGroupNewLoansDisabled\",\n \"msg\": \"Elevation group does not accept any new loans or any new borrows/withdrawals\"\n },\n {\n \"code\": 6073,\n \"name\": \"ReserveDeprecated\",\n \"msg\": \"Reserve was deprecated, no longer usable\"\n },\n {\n \"code\": 6074,\n \"name\": \"ReferrerAccountNotInitialized\",\n \"msg\": \"Referrer account not initialized\"\n },\n {\n \"code\": 6075,\n \"name\": \"ReferrerAccountMintMissmatch\",\n \"msg\": \"Referrer account mint does not match the operation reserve mint\"\n },\n {\n \"code\": 6076,\n \"name\": \"ReferrerAccountWrongAddress\",\n \"msg\": \"Referrer account address is not a valid program address\"\n },\n {\n \"code\": 6077,\n \"name\": \"ReferrerAccountReferrerMissmatch\",\n \"msg\": \"Referrer account referrer does not match the owner referrer\"\n },\n {\n \"code\": 6078,\n \"name\": \"ReferrerAccountMissing\",\n \"msg\": \"Referrer account missing for obligation with referrer\"\n },\n {\n \"code\": 6079,\n \"name\": \"InsufficientReferralFeesToRedeem\",\n \"msg\": \"Insufficient referral fees to claim or no liquidity available\"\n },\n {\n \"code\": 6080,\n \"name\": \"CpiDisabled\",\n \"msg\": \"CPI disabled for this instruction\"\n },\n {\n \"code\": 6081,\n \"name\": \"ShortUrlNotAsciiAlphanumeric\",\n \"msg\": \"Referrer short_url is not ascii alphanumeric\"\n },\n {\n \"code\": 6082,\n \"name\": \"ReserveObsolete\",\n \"msg\": \"Reserve is marked as obsolete\"\n },\n {\n \"code\": 6083,\n \"name\": \"ElevationGroupAlreadyActivated\",\n \"msg\": \"Obligation already part of the same elevation group\"\n },\n {\n \"code\": 6084,\n \"name\": \"ObligationInObsoleteReserve\",\n \"msg\": \"Obligation has a deposit or borrow in an obsolete reserve\"\n },\n {\n \"code\": 6085,\n \"name\": \"ReferrerStateOwnerMismatch\",\n \"msg\": \"Referrer state owner does not match the given signer\"\n },\n {\n \"code\": 6086,\n \"name\": \"UserMetadataOwnerAlreadySet\",\n \"msg\": \"User metadata owner is already set\"\n },\n {\n \"code\": 6087,\n \"name\": \"CollateralNonLiquidatable\",\n \"msg\": \"This collateral cannot be liquidated (LTV set to 0)\"\n },\n {\n \"code\": 6088,\n \"name\": \"BorrowingDisabled\",\n \"msg\": \"Borrowing is disabled\"\n },\n {\n \"code\": 6089,\n \"name\": \"BorrowLimitExceeded\",\n \"msg\": \"Cannot borrow above borrow limit\"\n },\n {\n \"code\": 6090,\n \"name\": \"DepositLimitExceeded\",\n \"msg\": \"Cannot deposit above deposit limit\"\n },\n {\n \"code\": 6091,\n \"name\": \"BorrowingDisabledOutsideElevationGroup\",\n \"msg\": \"Reserve does not accept any new borrows outside elevation group\"\n },\n {\n \"code\": 6092,\n \"name\": \"NetValueRemainingTooSmall\",\n \"msg\": \"Net value remaining too small\"\n },\n {\n \"code\": 6093,\n \"name\": \"WorseLtvBlocked\",\n \"msg\": \"Cannot get the obligation in a worse position\"\n },\n {\n \"code\": 6094,\n \"name\": \"LiabilitiesBiggerThanAssets\",\n \"msg\": \"Cannot have more liabilities than assets in a position\"\n },\n {\n \"code\": 6095,\n \"name\": \"ReserveTokenBalanceMismatch\",\n \"msg\": \"Reserve state and token account cannot drift\"\n },\n {\n \"code\": 6096,\n \"name\": \"ReserveVaultBalanceMismatch\",\n \"msg\": \"Reserve token account has been unexpectedly modified\"\n },\n {\n \"code\": 6097,\n \"name\": \"ReserveAccountingMismatch\",\n \"msg\": \"Reserve internal state accounting has been unexpectedly modified\"\n },\n {\n \"code\": 6098,\n \"name\": \"BorrowingAboveUtilizationRateDisabled\",\n \"msg\": \"Borrowing above set utilization rate is disabled\"\n },\n {\n \"code\": 6099,\n \"name\": \"LiquidationBorrowFactorPriority\",\n \"msg\": \"Liquidation must prioritize the debt with the highest borrow factor\"\n },\n {\n \"code\": 6100,\n \"name\": \"LiquidationLowestLiquidationLtvPriority\",\n \"msg\": \"Liquidation must prioritize the collateral with the lowest liquidation LTV\"\n },\n {\n \"code\": 6101,\n \"name\": \"ElevationGroupBorrowLimitExceeded\",\n \"msg\": \"Elevation group borrow limit exceeded\"\n },\n {\n \"code\": 6102,\n \"name\": \"ElevationGroupWithoutDebtReserve\",\n \"msg\": \"The elevation group does not have a debt reserve defined\"\n },\n {\n \"code\": 6103,\n \"name\": \"ElevationGroupMaxCollateralReserveZero\",\n \"msg\": \"The elevation group does not allow any collateral reserves\"\n },\n {\n \"code\": 6104,\n \"name\": \"ElevationGroupHasAnotherDebtReserve\",\n \"msg\": \"In elevation group attempt to borrow from a reserve that is not the debt reserve\"\n },\n {\n \"code\": 6105,\n \"name\": \"ElevationGroupDebtReserveAsCollateral\",\n \"msg\": \"The elevation group's debt reserve cannot be used as a collateral reserve\"\n },\n {\n \"code\": 6106,\n \"name\": \"ObligationCollateralExceedsElevationGroupLimit\",\n \"msg\": \"Obligation have more collateral than the maximum allowed by the elevation group\"\n },\n {\n \"code\": 6107,\n \"name\": \"ObligationElevationGroupMultipleDebtReserve\",\n \"msg\": \"Obligation is an elevation group but have more than one debt reserve\"\n },\n {\n \"code\": 6108,\n \"name\": \"UnsupportedTokenExtension\",\n \"msg\": \"Mint has a token (2022) extension that is not supported\"\n },\n {\n \"code\": 6109,\n \"name\": \"InvalidTokenAccount\",\n \"msg\": \"Can't have an spl token mint with a t22 account\"\n },\n {\n \"code\": 6110,\n \"name\": \"DepositDisabledOutsideElevationGroup\",\n \"msg\": \"Can't deposit into this reserve outside elevation group\"\n },\n {\n \"code\": 6111,\n \"name\": \"CannotCalculateReferralAmountDueToSlotsMismatch\",\n \"msg\": \"Cannot calculate referral amount due to slots mismatch\"\n },\n {\n \"code\": 6112,\n \"name\": \"ObligationOwnersMustMatch\",\n \"msg\": \"Obligation owners must match\"\n },\n {\n \"code\": 6113,\n \"name\": \"ObligationsMustMatch\",\n \"msg\": \"Obligations must match\"\n },\n {\n \"code\": 6114,\n \"name\": \"LendingMarketsMustMatch\",\n \"msg\": \"Lending markets must match\"\n },\n {\n \"code\": 6115,\n \"name\": \"ObligationCurrentlyMarkedForDeleveraging\",\n \"msg\": \"Obligation is already marked for deleveraging\"\n },\n {\n \"code\": 6116,\n \"name\": \"MaximumWithdrawValueZero\",\n \"msg\": \"Maximum withdrawable value of this collateral is zero, LTV needs improved\"\n },\n {\n \"code\": 6117,\n \"name\": \"ZeroMaxLtvAssetsInDeposits\",\n \"msg\": \"No max LTV 0 assets allowed in deposits for repay and withdraw\"\n },\n {\n \"code\": 6118,\n \"name\": \"LowestLtvAssetsPriority\",\n \"msg\": \"Withdrawing must prioritize the collateral with the lowest reserve max-LTV\"\n },\n {\n \"code\": 6119,\n \"name\": \"WorseLtvThanUnhealthyLtv\",\n \"msg\": \"Cannot get the obligation liquidatable\"\n },\n {\n \"code\": 6120,\n \"name\": \"FarmAccountsMissing\",\n \"msg\": \"Farm accounts to refresh are missing\"\n },\n {\n \"code\": 6121,\n \"name\": \"RepayTooSmallForFullLiquidation\",\n \"msg\": \"Repay amount is too small to satisfy the mandatory full liquidation\"\n },\n {\n \"code\": 6122,\n \"name\": \"InsufficientRepayAmount\",\n \"msg\": \"Liquidator provided repay amount lower than required by liquidation rules\"\n },\n {\n \"code\": 6123,\n \"name\": \"OrderIndexOutOfBounds\",\n \"msg\": \"Obligation order of the given index cannot exist\"\n },\n {\n \"code\": 6124,\n \"name\": \"InvalidOrderConfiguration\",\n \"msg\": \"Given order configuration has wrong parameters\"\n },\n {\n \"code\": 6125,\n \"name\": \"OrderConfigurationNotSupportedByObligation\",\n \"msg\": \"Given order configuration cannot be used with the current state of the obligation\"\n },\n {\n \"code\": 6126,\n \"name\": \"OperationNotPermittedWithCurrentObligationOrders\",\n \"msg\": \"Single debt, single collateral obligation orders have to be cancelled before changing the deposit/borrow count\"\n },\n {\n \"code\": 6127,\n \"name\": \"OperationNotPermittedMarketImmutable\",\n \"msg\": \"Cannot update lending market because it is set as immutable\"\n },\n {\n \"code\": 6128,\n \"name\": \"OrderCreationDisabled\",\n \"msg\": \"Creation of new orders is disabled\"\n },\n {\n \"code\": 6129,\n \"name\": \"NoUpgradeAuthority\",\n \"msg\": \"Cannot initialize global config because there is no upgrade authority to the program\"\n }\n ],\n \"types\": [\n {\n \"name\": \"UpdateConfigMode\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"UpdateLoanToValuePct\"\n },\n {\n \"name\": \"UpdateMaxLiquidationBonusBps\"\n },\n {\n \"name\": \"UpdateLiquidationThresholdPct\"\n },\n {\n \"name\": \"UpdateProtocolLiquidationFee\"\n },\n {\n \"name\": \"UpdateProtocolTakeRate\"\n },\n {\n \"name\": \"UpdateFeesBorrowFee\"\n },\n {\n \"name\": \"UpdateFeesFlashLoanFee\"\n },\n {\n \"name\": \"DeprecatedUpdateFeesReferralFeeBps\"\n },\n {\n \"name\": \"UpdateDepositLimit\"\n },\n {\n \"name\": \"UpdateBorrowLimit\"\n },\n {\n \"name\": \"UpdateTokenInfoLowerHeuristic\"\n },\n {\n \"name\": \"UpdateTokenInfoUpperHeuristic\"\n },\n {\n \"name\": \"UpdateTokenInfoExpHeuristic\"\n },\n {\n \"name\": \"UpdateTokenInfoTwapDivergence\"\n },\n {\n \"name\": \"UpdateTokenInfoScopeTwap\"\n },\n {\n \"name\": \"UpdateTokenInfoScopeChain\"\n },\n {\n \"name\": \"UpdateTokenInfoName\"\n },\n {\n \"name\": \"UpdateTokenInfoPriceMaxAge\"\n },\n {\n \"name\": \"UpdateTokenInfoTwapMaxAge\"\n },\n {\n \"name\": \"UpdateScopePriceFeed\"\n },\n {\n \"name\": \"UpdatePythPrice\"\n },\n {\n \"name\": \"UpdateSwitchboardFeed\"\n },\n {\n \"name\": \"UpdateSwitchboardTwapFeed\"\n },\n {\n \"name\": \"UpdateBorrowRateCurve\"\n },\n {\n \"name\": \"UpdateEntireReserveConfig\"\n },\n {\n \"name\": \"UpdateDebtWithdrawalCap\"\n },\n {\n \"name\": \"UpdateDepositWithdrawalCap\"\n },\n {\n \"name\": \"DeprecatedUpdateDebtWithdrawalCapCurrentTotal\"\n },\n {\n \"name\": \"DeprecatedUpdateDepositWithdrawalCapCurrentTotal\"\n },\n {\n \"name\": \"UpdateBadDebtLiquidationBonusBps\"\n },\n {\n \"name\": \"UpdateMinLiquidationBonusBps\"\n },\n {\n \"name\": \"UpdateDeleveragingMarginCallPeriod\"\n },\n {\n \"name\": \"UpdateBorrowFactor\"\n },\n {\n \"name\": \"UpdateAssetTier\"\n },\n {\n \"name\": \"UpdateElevationGroup\"\n },\n {\n \"name\": \"UpdateDeleveragingThresholdDecreaseBpsPerDay\"\n },\n {\n \"name\": \"DeprecatedUpdateMultiplierSideBoost\"\n },\n {\n \"name\": \"DeprecatedUpdateMultiplierTagBoost\"\n },\n {\n \"name\": \"UpdateReserveStatus\"\n },\n {\n \"name\": \"UpdateFarmCollateral\"\n },\n {\n \"name\": \"UpdateFarmDebt\"\n },\n {\n \"name\": \"UpdateDisableUsageAsCollateralOutsideEmode\"\n },\n {\n \"name\": \"UpdateBlockBorrowingAboveUtilizationPct\"\n },\n {\n \"name\": \"UpdateBlockPriceUsage\"\n },\n {\n \"name\": \"UpdateBorrowLimitOutsideElevationGroup\"\n },\n {\n \"name\": \"UpdateBorrowLimitsInElevationGroupAgainstThisReserve\"\n },\n {\n \"name\": \"UpdateHostFixedInterestRateBps\"\n },\n {\n \"name\": \"UpdateAutodeleverageEnabled\"\n },\n {\n \"name\": \"UpdateDeleveragingBonusIncreaseBpsPerDay\"\n },\n {\n \"name\": \"UpdateProtocolOrderExecutionFee\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdateLendingMarketConfigValue\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Bool\",\n \"fields\": [\n \"bool\"\n ]\n },\n {\n \"name\": \"U8\",\n \"fields\": [\n \"u8\"\n ]\n },\n {\n \"name\": \"U8Array\",\n \"fields\": [\n {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n ]\n },\n {\n \"name\": \"U16\",\n \"fields\": [\n \"u16\"\n ]\n },\n {\n \"name\": \"U64\",\n \"fields\": [\n \"u64\"\n ]\n },\n {\n \"name\": \"U128\",\n \"fields\": [\n \"u128\"\n ]\n },\n {\n \"name\": \"Pubkey\",\n \"fields\": [\n \"pubkey\"\n ]\n },\n {\n \"name\": \"ElevationGroup\",\n \"fields\": [\n {\n \"defined\": {\n \"name\": \"ElevationGroup\"\n }\n }\n ]\n },\n {\n \"name\": \"Name\",\n \"fields\": [\n {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n ]\n }\n ]\n }\n },\n {\n \"name\": \"UpdateLendingMarketMode\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"UpdateOwner\"\n },\n {\n \"name\": \"UpdateEmergencyMode\"\n },\n {\n \"name\": \"UpdateLiquidationCloseFactor\"\n },\n {\n \"name\": \"UpdateLiquidationMaxValue\"\n },\n {\n \"name\": \"DeprecatedUpdateGlobalUnhealthyBorrow\"\n },\n {\n \"name\": \"UpdateGlobalAllowedBorrow\"\n },\n {\n \"name\": \"UpdateRiskCouncil\"\n },\n {\n \"name\": \"UpdateMinFullLiquidationThreshold\"\n },\n {\n \"name\": \"UpdateInsolvencyRiskLtv\"\n },\n {\n \"name\": \"UpdateElevationGroup\"\n },\n {\n \"name\": \"UpdateReferralFeeBps\"\n },\n {\n \"name\": \"DeprecatedUpdateMultiplierPoints\"\n },\n {\n \"name\": \"UpdatePriceRefreshTriggerToMaxAgePct\"\n },\n {\n \"name\": \"UpdateAutodeleverageEnabled\"\n },\n {\n \"name\": \"UpdateBorrowingDisabled\"\n },\n {\n \"name\": \"UpdateMinNetValueObligationPostAction\"\n },\n {\n \"name\": \"UpdateMinValueLtvSkipPriorityLiqCheck\"\n },\n {\n \"name\": \"UpdateMinValueBfSkipPriorityLiqCheck\"\n },\n {\n \"name\": \"UpdatePaddingFields\"\n },\n {\n \"name\": \"UpdateName\"\n },\n {\n \"name\": \"UpdateIndividualAutodeleverageMarginCallPeriodSecs\"\n },\n {\n \"name\": \"UpdateInitialDepositAmount\"\n },\n {\n \"name\": \"UpdateObligationOrderExecutionEnabled\"\n },\n {\n \"name\": \"UpdateImmutableFlag\"\n },\n {\n \"name\": \"UpdateObligationOrderCreationEnabled\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdateGlobalConfigMode\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"PendingAdmin\"\n },\n {\n \"name\": \"FeeCollector\"\n }\n ]\n }\n },\n {\n \"name\": \"LastUpdate\",\n \"docs\": [\n \"Last update state\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"slot\",\n \"docs\": [\n \"Last slot when updated\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"stale\",\n \"docs\": [\n \"True when marked stale, false when slot updated\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"price_status\",\n \"docs\": [\n \"Status of the prices used to calculate the last update\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": {\n \"array\": [\n \"u8\",\n 6\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ElevationGroup\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"max_liquidation_bonus_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"id\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"ltv_pct\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"liquidation_threshold_pct\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"allow_new_loans\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_reserves_as_collateral\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"debt_reserve\",\n \"docs\": [\n \"Mandatory debt reserve for this elevation group\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 4\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"InitObligationArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"tag\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"id\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"ObligationCollateral\",\n \"docs\": [\n \"Obligation collateral state\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"deposit_reserve\",\n \"docs\": [\n \"Reserve collateral is deposited to\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"deposited_amount\",\n \"docs\": [\n \"Amount of collateral deposited\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"market_value_sf\",\n \"docs\": [\n \"Collateral market value in quote currency (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrowed_amount_against_this_collateral_in_elevation_group\",\n \"docs\": [\n \"Debt amount (lamport) taken against this collateral.\",\n \"(only meaningful if this obligation is part of an elevation group, otherwise 0)\",\n \"This is only indicative of the debt computed on the last refresh obligation.\",\n \"If the obligation have multiple collateral this value is the same for all of them.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 9\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ObligationLiquidity\",\n \"docs\": [\n \"Obligation liquidity state\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"borrow_reserve\",\n \"docs\": [\n \"Reserve liquidity is borrowed from\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"cumulative_borrow_rate_bsf\",\n \"docs\": [\n \"Borrow rate used for calculating interest (big scaled fraction)\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BigFractionBytes\"\n }\n }\n },\n {\n \"name\": \"padding\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrowed_amount_sf\",\n \"docs\": [\n \"Amount of liquidity borrowed plus interest (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"market_value_sf\",\n \"docs\": [\n \"Liquidity market value in quote currency (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrow_factor_adjusted_market_value_sf\",\n \"docs\": [\n \"Risk adjusted liquidity market value in quote currency - DEBUG ONLY - use market_value instead\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrowed_amount_outside_elevation_groups\",\n \"docs\": [\n \"Amount of liquidity borrowed outside of an elevation group\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u64\",\n 7\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ObligationOrder\",\n \"docs\": [\n \"A single obligation order.\",\n \"See [Obligation::orders].\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"condition_threshold_sf\",\n \"docs\": [\n \"A threshold value used by the condition (scaled [Fraction]).\",\n \"The exact meaning depends on the specific [Self::condition_type].\",\n \"\",\n \"Examples:\",\n \"- when `condition_type == 2 (UserLtvBelow)`:\",\n \"then a value of `0.455` here means that the order is active only when the obligation's\",\n \"user LTV is less than `0.455` (i.e. < 45.5%).\",\n \"- when `condition_type == 3 (DebtCollPriceRatioAbove)`:\",\n \"assuming the obligation uses BTC collateral for SOL debt, then a value of `491.3` here\",\n \"means that the order is active only when the BTC-SOL price is greater than `491.3` (i.e.\",\n \"> 491.3 SOL per BTC).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"opportunity_parameter_sf\",\n \"docs\": [\n \"A configuration parameter used by the opportunity (scaled [Fraction]).\",\n \"The exact meaning depends on the specific [Self::opportunity_type].\",\n \"\",\n \"Examples:\",\n \"- when `opportunity_type == 0 (DeleverageSingleDebtAmount)`:\",\n \"Assuming the obligation uses BTC collateral for SOL debt, then a value of `1_234_000_000`\",\n \"here means that a liquidator may repay up to 1234000000 lamports (i.e. 1.234 SOL) on this\",\n \"obligation.\",\n \"Note: the special value of [Fraction::MAX] is *not* allowed in this case.\",\n \"- when `opportunity_type == 1 (DeleverageAllDebtAmount)`:\",\n \"The only allowed value in this case is [Fraction::MAX] (to emphasize that *all* debt\",\n \"should be repaid).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"min_execution_bonus_bps\",\n \"docs\": [\n \"A *minimum* additional fraction of collateral transferred to the liquidator, in bps.\",\n \"\",\n \"The minimum bonus is applied exactly when the [Self::condition_threshold_sf] is met, and\",\n \"grows linearly towards the [Self::max_execution_bonus_bps].\",\n \"\",\n \"Example: a value of `50` here means 50bps == 0.5% bonus for an \\\"LTV > 65%\\\" order, when\",\n \"executed precisely at the moment LTV exceeds 65%.\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_execution_bonus_bps\",\n \"docs\": [\n \"A *maximum* additional fraction of collateral transferred to the liquidator, in bps.\",\n \"\",\n \"The maximum bonus is applied at the relevant \\\"extreme\\\" state of the obligation, i.e.:\",\n \"- for a stop-loss condition, it is a point at which the obligation becomes liquidatable;\",\n \"- for a take-profit condition, it is a point at which obligation has 0% LTV.\",\n \"\",\n \"In non-extreme states, the actual bonus value is interpolated linearly, starting from\",\n \"[Self::min_execution_bonus_bps] (at the point specified by the order's condition).\",\n \"\",\n \"Example: a value of `300` here means 300bps == 3.0% bonus for a \\\"debt/coll price > 140\\\"\",\n \"order, when executed at a higher price = 200, at which the obligation's LTV happens to\",\n \"be equal to its liquidation LTV.\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"condition_type\",\n \"docs\": [\n \"Serialized [ConditionType].\",\n \"The entire order is void when this is zeroed (i.e. representing [ConditionType::Never]).\",\n \"\",\n \"Example: a value of `2` here denotes `UserLtvBelow` condition type. Of course, to\",\n \"interpret this condition, we also need to take the [Self::condition_threshold_sf] into\",\n \"account.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"opportunity_type\",\n \"docs\": [\n \"Serialized [OpportunityType].\",\n \"\",\n \"Example: a value of `0` here denotes `DeleverageSingleDebtAmount` opportunity. Of course, to\",\n \"interpret this opportunity, we also need to take the [Self::opportunity_parameter_sf] into\",\n \"account.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding1\",\n \"docs\": [\n \"Internal padding.\",\n \"The fields above take up 2+2+1+1 bytes = 48 bits, which means we need 80 bits = 10 bytes to\",\n \"align with `u128`s.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 10\n ]\n }\n },\n {\n \"name\": \"padding2\",\n \"docs\": [\n \"End padding.\",\n \"The total size of a single instance is 8*u128 = 128 bytes.\"\n ],\n \"type\": {\n \"array\": [\n \"u128\",\n 5\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"AssetTier\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Regular\"\n },\n {\n \"name\": \"IsolatedCollateral\"\n },\n {\n \"name\": \"IsolatedDebt\"\n }\n ]\n }\n },\n {\n \"name\": \"BigFractionBytes\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u64\",\n 4\n ]\n }\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 2\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"FeeCalculation\",\n \"docs\": [\n \"Calculate fees exlusive or inclusive of an amount\"\n ],\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Exclusive\"\n },\n {\n \"name\": \"Inclusive\"\n }\n ]\n }\n },\n {\n \"name\": \"ReserveCollateral\",\n \"docs\": [\n \"Reserve collateral\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mint_pubkey\",\n \"docs\": [\n \"Reserve collateral mint address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint_total_supply\",\n \"docs\": [\n \"Reserve collateral mint supply, used for exchange rate\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"supply_vault\",\n \"docs\": [\n \"Reserve collateral supply address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u128\",\n 32\n ]\n }\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u128\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ReserveConfig\",\n \"docs\": [\n \"Reserve configuration values\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"status\",\n \"docs\": [\n \"Status of the reserve Active/Obsolete/Hidden\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"asset_tier\",\n \"docs\": [\n \"Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"host_fixed_interest_rate_bps\",\n \"docs\": [\n \"Flat rate that goes to the host\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"reserved2\",\n \"docs\": [\n \"[DEPRECATED] Space that used to hold 2 fields:\",\n \"- Boost for side (debt or collateral)\",\n \"- Reward points multiplier per obligation type\",\n \"Can be re-used after making sure all underlying production account data is zeroed.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 9\n ]\n }\n },\n {\n \"name\": \"protocol_order_execution_fee_pct\",\n \"docs\": [\n \"Cut of the order execution bonus that the protocol receives, as a percentage\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"protocol_take_rate_pct\",\n \"docs\": [\n \"Protocol take rate is the amount borrowed interest protocol receives, as a percentage\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"protocol_liquidation_fee_pct\",\n \"docs\": [\n \"Cut of the liquidation bonus that the protocol receives, as a percentage\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"loan_to_value_pct\",\n \"docs\": [\n \"Target ratio of the value of borrows to deposits, as a percentage\",\n \"0 if use as collateral is disabled\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"liquidation_threshold_pct\",\n \"docs\": [\n \"Loan to value ratio at which an obligation can be liquidated, as percentage\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"min_liquidation_bonus_bps\",\n \"docs\": [\n \"Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_liquidation_bonus_bps\",\n \"docs\": [\n \"Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"bad_debt_liquidation_bonus_bps\",\n \"docs\": [\n \"Bad debt liquidation bonus for an undercollateralized obligation, as bps\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"deleveraging_margin_call_period_secs\",\n \"docs\": [\n \"Time in seconds that must pass before redemptions are enabled after the deposit limit is\",\n \"crossed.\",\n \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"deleveraging_threshold_decrease_bps_per_day\",\n \"docs\": [\n \"The rate at which the deleveraging threshold decreases, in bps per day.\",\n \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"fees\",\n \"docs\": [\n \"Program owner fees assessed, separate from gains due to interest accrual\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveFees\"\n }\n }\n },\n {\n \"name\": \"borrow_rate_curve\",\n \"docs\": [\n \"Borrow rate curve based on utilization\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BorrowRateCurve\"\n }\n }\n },\n {\n \"name\": \"borrow_factor_pct\",\n \"docs\": [\n \"Borrow factor in percentage - used for risk adjustment\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"deposit_limit\",\n \"docs\": [\n \"Maximum deposit limit of liquidity in native units, u64::MAX for inf\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrow_limit\",\n \"docs\": [\n \"Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_info\",\n \"docs\": [\n \"Token id from TokenInfos struct\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"TokenInfo\"\n }\n }\n },\n {\n \"name\": \"deposit_withdrawal_cap\",\n \"docs\": [\n \"Deposit withdrawal caps - deposit & redeem\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"WithdrawalCaps\"\n }\n }\n },\n {\n \"name\": \"debt_withdrawal_cap\",\n \"docs\": [\n \"Debt withdrawal caps - borrow & repay\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"WithdrawalCaps\"\n }\n }\n },\n {\n \"name\": \"elevation_groups\",\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"disable_usage_as_coll_outside_emode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"utilization_limit_block_borrowing_above_pct\",\n \"docs\": [\n \"Utilization (in percentage) above which borrowing is blocked. 0 to disable.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"autodeleverage_enabled\",\n \"docs\": [\n \"Whether this reserve should be subject to auto-deleveraging after deposit or borrow limit is\",\n \"crossed.\",\n \"Besides this flag, the lending market's flag also needs to be enabled (logical `AND`).\",\n \"**NOTE:** the manual \\\"target LTV\\\" deleveraging (enabled by the risk council for individual\",\n \"obligations) is NOT affected by this flag.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"reserved1\",\n \"type\": {\n \"array\": [\n \"u8\",\n 1\n ]\n }\n },\n {\n \"name\": \"borrow_limit_outside_elevation_group\",\n \"docs\": [\n \"Maximum amount liquidity of this reserve borrowed outside all elevation groups\",\n \"- u64::MAX for inf\",\n \"- 0 to disable borrows outside elevation groups\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrow_limit_against_this_collateral_in_elevation_group\",\n \"docs\": [\n \"Defines the maximum amount (in lamports of elevation group debt asset)\",\n \"that can be borrowed when this reserve is used as collateral.\",\n \"- u64::MAX for inf\",\n \"- 0 to disable borrows in this elevation group (expected value for the debt asset)\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 32\n ]\n }\n },\n {\n \"name\": \"deleveraging_bonus_increase_bps_per_day\",\n \"docs\": [\n \"The rate at which the deleveraging-related liquidation bonus increases, in bps per day.\",\n \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"ReserveFarmKind\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Collateral\"\n },\n {\n \"name\": \"Debt\"\n }\n ]\n }\n },\n {\n \"name\": \"ReserveFees\",\n \"docs\": [\n \"Additional fee information on a reserve\",\n \"\",\n \"These exist separately from interest accrual fees, and are specifically for the program owner\",\n \"and referral fee. The fees are paid out as a percentage of liquidity token amounts during\",\n \"repayments and liquidations.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"borrow_fee_sf\",\n \"docs\": [\n \"Fee assessed on `BorrowObligationLiquidity`, as scaled fraction (60 bits fractional part)\",\n \"Must be between `0` and `2^60`, such that `2^60 = 1`. A few examples for\",\n \"clarity:\",\n \"1% = (1 << 60) / 100 = 11529215046068470\",\n \"0.01% (1 basis point) = 115292150460685\",\n \"0.00001% (Aave borrow fee) = 115292150461\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"flash_loan_fee_sf\",\n \"docs\": [\n \"Fee for flash loan, expressed as scaled fraction.\",\n \"0.3% (Aave flash loan fee) = 0.003 * 2^60 = 3458764513820541\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding\",\n \"docs\": [\n \"Used for allignment\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ReserveLiquidity\",\n \"docs\": [\n \"Reserve liquidity\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mint_pubkey\",\n \"docs\": [\n \"Reserve liquidity mint address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"supply_vault\",\n \"docs\": [\n \"Reserve liquidity supply address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"fee_vault\",\n \"docs\": [\n \"Reserve liquidity fee collection address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"available_amount\",\n \"docs\": [\n \"Reserve liquidity available\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrowed_amount_sf\",\n \"docs\": [\n \"Reserve liquidity borrowed (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"market_price_sf\",\n \"docs\": [\n \"Reserve liquidity market price in quote currency (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"market_price_last_updated_ts\",\n \"docs\": [\n \"Unix timestamp of the market price (from the oracle)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"mint_decimals\",\n \"docs\": [\n \"Reserve liquidity mint decimals\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"deposit_limit_crossed_timestamp\",\n \"docs\": [\n \"Timestamp when the last refresh reserve detected that the liquidity amount is above the deposit cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.\",\n \"If the threshold is not crossed, then the timestamp is set to 0\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrow_limit_crossed_timestamp\",\n \"docs\": [\n \"Timestamp when the last refresh reserve detected that the borrowed amount is above the borrow cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.\",\n \"If the threshold is not crossed, then the timestamp is set to 0\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"cumulative_borrow_rate_bsf\",\n \"docs\": [\n \"Reserve liquidity cumulative borrow rate (scaled fraction)\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BigFractionBytes\"\n }\n }\n },\n {\n \"name\": \"accumulated_protocol_fees_sf\",\n \"docs\": [\n \"Reserve cumulative protocol fees (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"accumulated_referrer_fees_sf\",\n \"docs\": [\n \"Reserve cumulative referrer fees (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_referrer_fees_sf\",\n \"docs\": [\n \"Reserve pending referrer fees, to be claimed in refresh_obligation by referrer or protocol (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"absolute_referral_rate_sf\",\n \"docs\": [\n \"Reserve referrer fee absolute rate calculated at each refresh_reserve operation (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"token_program\",\n \"docs\": [\n \"Token program of the liquidity mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u64\",\n 51\n ]\n }\n },\n {\n \"name\": \"padding3\",\n \"type\": {\n \"array\": [\n \"u128\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ReserveStatus\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Active\"\n },\n {\n \"name\": \"Obsolete\"\n },\n {\n \"name\": \"Hidden\"\n }\n ]\n }\n },\n {\n \"name\": \"WithdrawalCaps\",\n \"docs\": [\n \"Reserve Withdrawal Caps State\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"config_capacity\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"current_total\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"last_interval_start_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"config_interval_length_seconds\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"PriceHeuristic\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"lower\",\n \"docs\": [\n \"Lower value of acceptable price\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"upper\",\n \"docs\": [\n \"Upper value of acceptable price\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"exp\",\n \"docs\": [\n \"Number of decimals of the previously defined values\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"PythConfiguration\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"price\",\n \"docs\": [\n \"Pubkey of the base price feed (disabled if `null` or `default`)\"\n ],\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"ScopeConfiguration\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"price_feed\",\n \"docs\": [\n \"Pubkey of the scope price feed (disabled if `null` or `default`)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"price_chain\",\n \"docs\": [\n \"This is the scope_id price chain that results in a price for the token\"\n ],\n \"type\": {\n \"array\": [\n \"u16\",\n 4\n ]\n }\n },\n {\n \"name\": \"twap_chain\",\n \"docs\": [\n \"This is the scope_id price chain for the twap\"\n ],\n \"type\": {\n \"array\": [\n \"u16\",\n 4\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"SwitchboardConfiguration\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"price_aggregator\",\n \"docs\": [\n \"Pubkey of the base price feed (disabled if `null` or `default`)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"twap_aggregator\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenInfo\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"name\",\n \"docs\": [\n \"UTF-8 encoded name of the token (null-terminated)\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"heuristic\",\n \"docs\": [\n \"Heuristics limits of acceptable price\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PriceHeuristic\"\n }\n }\n },\n {\n \"name\": \"max_twap_divergence_bps\",\n \"docs\": [\n \"Max divergence between twap and price in bps\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_age_price_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_age_twap_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"scope_configuration\",\n \"docs\": [\n \"Scope price configuration\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ScopeConfiguration\"\n }\n }\n },\n {\n \"name\": \"switchboard_configuration\",\n \"docs\": [\n \"Switchboard configuration\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"SwitchboardConfiguration\"\n }\n }\n },\n {\n \"name\": \"pyth_configuration\",\n \"docs\": [\n \"Pyth configuration\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PythConfiguration\"\n }\n }\n },\n {\n \"name\": \"block_price_usage\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reserved\",\n \"type\": {\n \"array\": [\n \"u8\",\n 7\n ]\n }\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 19\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"BorrowRateCurve\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"points\",\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"CurvePoint\"\n }\n },\n 11\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"CurvePoint\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"utilization_rate_bps\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"borrow_rate_bps\",\n \"type\": \"u32\"\n }\n ]\n }\n },\n {\n \"name\": \"UserState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"user_id\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"farm_state\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"is_farm_delegated\",\n \"docs\": [\n \"Indicate if this user state is part of a delegated farm\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": {\n \"array\": [\n \"u8\",\n 7\n ]\n }\n },\n {\n \"name\": \"rewards_tally_scaled\",\n \"docs\": [\n \"Rewards tally used for computation of gained rewards\",\n \"(scaled from `Decimal` representation).\"\n ],\n \"type\": {\n \"array\": [\n \"u128\",\n 10\n ]\n }\n },\n {\n \"name\": \"rewards_issued_unclaimed\",\n \"docs\": [\n \"Number of reward tokens ready for claim\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 10\n ]\n }\n },\n {\n \"name\": \"last_claim_ts\",\n \"type\": {\n \"array\": [\n \"u64\",\n 10\n ]\n }\n },\n {\n \"name\": \"active_stake_scaled\",\n \"docs\": [\n \"User stake deposited and usable, generating rewards and fees.\",\n \"(scaled from `Decimal` representation).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_deposit_stake_scaled\",\n \"docs\": [\n \"User stake deposited but not usable and not generating rewards yet.\",\n \"(scaled from `Decimal` representation).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_deposit_stake_ts\",\n \"docs\": [\n \"After this timestamp, pending user stake can be moved to user stake\",\n \"Initialized to now() + delayed user stake period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"pending_withdrawal_unstake_scaled\",\n \"docs\": [\n \"User deposits unstaked, pending for withdrawal, not usable and not generating rewards.\",\n \"(scaled from `Decimal` representation).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_withdrawal_unstake_ts\",\n \"docs\": [\n \"After this timestamp, user can withdraw their deposit.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump\",\n \"docs\": [\n \"User bump used for account address validation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegatee\",\n \"docs\": [\n \"Delegatee used for initialisation - useful to check against\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"last_stake_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 50\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"GlobalConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"global_admin\",\n \"docs\": [\n \"Global admin of the program\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pending_admin\",\n \"docs\": [\n \"Pending admin must sign a specific transaction to become the global admin\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"fee_collector\",\n \"docs\": [\n \"Fee collector is the only allowed owner of token accounts receiving protocol fees\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding\",\n \"docs\": [\n \"Padding to make the struct size 1024 bytes\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 928\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"LendingMarket\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"version\",\n \"docs\": [\n \"Version of lending market\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump_seed\",\n \"docs\": [\n \"Bump seed for derived authority address\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"lending_market_owner\",\n \"docs\": [\n \"Owner authority which can add new reserves\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"lending_market_owner_cached\",\n \"docs\": [\n \"Temporary cache of the lending market owner, used in update_lending_market_owner\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"quote_currency\",\n \"docs\": [\n \"Currency market prices are quoted in\",\n \"e.g. \\\"USD\\\" null padded (`*b\\\"USD\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\"`) or a SPL token mint pubkey\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"referral_fee_bps\",\n \"docs\": [\n \"Referral fee for the lending market, as bps out of the total protocol fee\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"emergency_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"autodeleverage_enabled\",\n \"docs\": [\n \"Whether the obligations on this market should be subject to auto-deleveraging after deposit\",\n \"or borrow limit is crossed.\",\n \"Besides this flag, the particular reserve's flag also needs to be enabled (logical `AND`).\",\n \"**NOTE:** this also affects the individual \\\"target LTV\\\" deleveraging.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"borrow_disabled\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"price_refresh_trigger_to_max_age_pct\",\n \"docs\": [\n \"Refresh price from oracle only if it's older than this percentage of the price max age.\",\n \"e.g. if the max age is set to 100s and this is set to 80%, the price will be refreshed if it's older than 80s.\",\n \"Price is always refreshed if this set to 0.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"liquidation_max_debt_close_factor_pct\",\n \"docs\": [\n \"Percentage of the total borrowed value in an obligation available for liquidation\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"insolvency_risk_unhealthy_ltv_pct\",\n \"docs\": [\n \"Minimum acceptable unhealthy LTV before max_debt_close_factor_pct becomes 100%\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"min_full_liquidation_value_threshold\",\n \"docs\": [\n \"Minimum liquidation value threshold triggering full liquidation for an obligation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_liquidatable_debt_market_value_at_once\",\n \"docs\": [\n \"Max allowed liquidation value in one ix call\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"reserved0\",\n \"docs\": [\n \"[DEPRECATED] Global maximum unhealthy borrow value allowed for any obligation\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"global_allowed_borrow_value\",\n \"docs\": [\n \"Global maximum allowed borrow value allowed for any obligation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"risk_council\",\n \"docs\": [\n \"The address of the risk council, in charge of making parameter and risk decisions on behalf of the protocol\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reserved1\",\n \"docs\": [\n \"[DEPRECATED] Reward points multiplier per obligation type\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"elevation_groups\",\n \"docs\": [\n \"Elevation groups are used to group together reserves that have the same risk parameters and can bump the ltv and liquidation threshold\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"ElevationGroup\"\n }\n },\n 32\n ]\n }\n },\n {\n \"name\": \"elevation_group_padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 90\n ]\n }\n },\n {\n \"name\": \"min_net_value_in_obligation_sf\",\n \"docs\": [\n \"Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"min_value_skip_liquidation_ltv_checks\",\n \"docs\": [\n \"Minimum value to enforce smallest ltv priority checks on the collateral reserves on liquidation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"name\",\n \"docs\": [\n \"Market name, zero-padded.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"min_value_skip_liquidation_bf_checks\",\n \"docs\": [\n \"Minimum value to enforce highest borrow factor priority checks on the debt reserves on liquidation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"individual_autodeleverage_margin_call_period_secs\",\n \"docs\": [\n \"Time (in seconds) that must pass before liquidation is allowed on an obligation that has\",\n \"been individually marked for auto-deleveraging (by the risk council).\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_initial_deposit_amount\",\n \"docs\": [\n \"Minimum amount of deposit at creation of a reserve to prevent artificial inflation\",\n \"Note: this amount cannot be recovered, the ctoken associated are never minted\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"obligation_order_execution_enabled\",\n \"docs\": [\n \"Whether the obligation orders should be evaluated during liquidations.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"immutable\",\n \"docs\": [\n \"Whether the lending market is set as immutable.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"obligation_order_creation_enabled\",\n \"docs\": [\n \"Whether new obligation orders can be created.\",\n \"Note: updating or cancelling existing orders is *not* affected by this flag.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 169\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Obligation\",\n \"docs\": [\n \"Lending market obligation state\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"tag\",\n \"docs\": [\n \"Version of the struct\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_update\",\n \"docs\": [\n \"Last update to collateral, liquidity, or their market values\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"LastUpdate\"\n }\n }\n },\n {\n \"name\": \"lending_market\",\n \"docs\": [\n \"Lending market address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"Owner authority which can borrow liquidity\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"deposits\",\n \"docs\": [\n \"Deposited collateral for the obligation, unique by deposit reserve address\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"ObligationCollateral\"\n }\n },\n 8\n ]\n }\n },\n {\n \"name\": \"lowest_reserve_deposit_liquidation_ltv\",\n \"docs\": [\n \"Worst LTV for the collaterals backing the loan, represented as a percentage\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"deposited_value_sf\",\n \"docs\": [\n \"Market value of deposits (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrows\",\n \"docs\": [\n \"Borrowed liquidity for the obligation, unique by borrow reserve address\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"ObligationLiquidity\"\n }\n },\n 5\n ]\n }\n },\n {\n \"name\": \"borrow_factor_adjusted_debt_value_sf\",\n \"docs\": [\n \"Risk adjusted market value of borrows/debt (sum of price * borrowed_amount * borrow_factor) (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrowed_assets_market_value_sf\",\n \"docs\": [\n \"Market value of borrows - used for max_liquidatable_borrowed_amount (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"allowed_borrow_value_sf\",\n \"docs\": [\n \"The maximum borrow value at the weighted average loan to value ratio (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"unhealthy_borrow_value_sf\",\n \"docs\": [\n \"The dangerous borrow value at the weighted average liquidation threshold (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"deposits_asset_tiers\",\n \"docs\": [\n \"The asset tier of the deposits\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"borrows_asset_tiers\",\n \"docs\": [\n \"The asset tier of the borrows\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"elevation_group\",\n \"docs\": [\n \"The elevation group id the obligation opted into.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"num_of_obsolete_deposit_reserves\",\n \"docs\": [\n \"The number of obsolete reserves the obligation has a deposit in\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"has_debt\",\n \"docs\": [\n \"Marked = 1 if borrows array is not empty, 0 = borrows empty\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"referrer\",\n \"docs\": [\n \"Wallet address of the referrer\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"borrowing_disabled\",\n \"docs\": [\n \"Marked = 1 if borrowing disabled, 0 = borrowing enabled\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"autodeleverage_target_ltv_pct\",\n \"docs\": [\n \"A target LTV set by the risk council when marking this obligation for deleveraging.\",\n \"Only effective when `deleveraging_margin_call_started_slot != 0`.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"lowest_reserve_deposit_max_ltv_pct\",\n \"docs\": [\n \"The lowest max LTV found amongst the collateral deposits\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"num_of_obsolete_borrow_reserves\",\n \"docs\": [\n \"The number of obsolete reserves the obligation has a borrow in\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"reserved\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"highest_borrow_factor_pct\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"autodeleverage_margin_call_started_timestamp\",\n \"docs\": [\n \"A timestamp at which the risk council most-recently marked this obligation for deleveraging.\",\n \"Zero if not currently subject to deleveraging.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"orders\",\n \"docs\": [\n \"Owner-defined, liquidator-executed orders applicable to this obligation.\",\n \"Typical use-cases would be a stop-loss and a take-profit (possibly co-existing).\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"ObligationOrder\"\n }\n },\n 2\n ]\n }\n },\n {\n \"name\": \"padding3\",\n \"type\": {\n \"array\": [\n \"u64\",\n 93\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ReferrerState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"short_url\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"ReferrerTokenState\",\n \"docs\": [\n \"Referrer account -> each owner can have multiple accounts for specific reserves\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"referrer\",\n \"docs\": [\n \"Pubkey of the referrer/owner\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Token mint for the account\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount_unclaimed_sf\",\n \"docs\": [\n \"Amount that has been accumulated and not claimed yet -> available to claim (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"amount_cumulative_sf\",\n \"docs\": [\n \"Amount that has been accumulated in total -> both already claimed and unclaimed (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Referrer token state bump, used for address validation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 31\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ShortUrl\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"referrer\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"short_url\",\n \"type\": \"string\"\n }\n ]\n }\n },\n {\n \"name\": \"UserMetadata\",\n \"docs\": [\n \"Referrer account -> each owner can have multiple accounts for specific reserves\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"referrer\",\n \"docs\": [\n \"Pubkey of the referrer/owner - pubkey::default if no referrer\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump used for validation of account address\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"user_lookup_table\",\n \"docs\": [\n \"User lookup table - used to store all user accounts - atas for each reserve mint, each obligation PDA, UserMetadata itself and all referrer_token_states if there is a referrer\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"User metadata account owner\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 51\n ]\n }\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u64\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Reserve\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"version\",\n \"docs\": [\n \"Version of the reserve\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_update\",\n \"docs\": [\n \"Last slot when supply and rates updated\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"LastUpdate\"\n }\n }\n },\n {\n \"name\": \"lending_market\",\n \"docs\": [\n \"Lending market address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"farm_collateral\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"farm_debt\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"liquidity\",\n \"docs\": [\n \"Reserve liquidity\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveLiquidity\"\n }\n }\n },\n {\n \"name\": \"reserve_liquidity_padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 150\n ]\n }\n },\n {\n \"name\": \"collateral\",\n \"docs\": [\n \"Reserve collateral\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveCollateral\"\n }\n }\n },\n {\n \"name\": \"reserve_collateral_padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 150\n ]\n }\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Reserve configuration values\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveConfig\"\n }\n }\n },\n {\n \"name\": \"config_padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 116\n ]\n }\n },\n {\n \"name\": \"borrowed_amount_outside_elevation_group\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrowed_amounts_against_this_reserve_in_elevation_groups\",\n \"docs\": [\n \"Amount of token borrowed in lamport of debt asset in the given\",\n \"elevation group when this reserve is part of the collaterals.\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 32\n ]\n }\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 207\n ]\n }\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr\",\n \"metadata\": {\n \"name\": \"farms\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\"\n },\n \"instructions\": [\n {\n \"name\": \"initialize_global_config\",\n \"discriminator\": [113, 216, 122, 131, 225, 209, 22, 55],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n },\n {\n \"name\": \"treasury_vaults_authority\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_global_config\",\n \"discriminator\": [164, 84, 130, 189, 111, 58, 250, 200],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\"u8\", 32]\n }\n }\n ]\n },\n {\n \"name\": \"initialize_farm\",\n \"discriminator\": [252, 28, 185, 172, 244, 74, 117, 165],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"token_mint\"\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"initialize_farm_delegated\",\n \"discriminator\": [250, 84, 101, 25, 51, 77, 204, 91],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_delegate\",\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"initialize_reward\",\n \"discriminator\": [95, 135, 192, 196, 242, 129, 230, 68],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"reward_treasury_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"treasury_vaults_authority\"\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"add_rewards\",\n \"discriminator\": [88, 186, 25, 227, 38, 137, 81, 23],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"payer_reward_token_ata\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update_farm_config\",\n \"discriminator\": [214, 176, 188, 244, 203, 59, 230, 207],\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"initialize_user\",\n \"discriminator\": [111, 17, 185, 250, 60, 122, 38, 254],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"signer\": true\n },\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"owner\"\n },\n {\n \"name\": \"delegatee\"\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"transfer_ownership\",\n \"discriminator\": [65, 177, 215, 73, 53, 45, 99, 47],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"new_owner\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"reward_user_once\",\n \"discriminator\": [219, 137, 57, 22, 94, 186, 96, 114],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"refresh_farm\",\n \"discriminator\": [214, 131, 138, 183, 144, 194, 172, 42],\n \"accounts\": [\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"stake\",\n \"discriminator\": [206, 176, 202, 18, 200, 209, 179, 108],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"user_ata\",\n \"writable\": true\n },\n {\n \"name\": \"token_mint\"\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"set_stake_delegated\",\n \"discriminator\": [73, 171, 184, 75, 30, 56, 198, 223],\n \"accounts\": [\n {\n \"name\": \"delegate_authority\",\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"new_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"harvest_reward\",\n \"discriminator\": [68, 200, 228, 233, 184, 32, 226, 188],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"user_reward_ata\",\n \"writable\": true\n },\n {\n \"name\": \"rewards_vault\",\n \"writable\": true\n },\n {\n \"name\": \"rewards_treasury_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"unstake\",\n \"discriminator\": [90, 95, 107, 42, 205, 124, 50, 225],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"stake_shares_scaled\",\n \"type\": \"u128\"\n }\n ]\n },\n {\n \"name\": \"refresh_user_state\",\n \"discriminator\": [1, 135, 12, 62, 243, 140, 77, 108],\n \"accounts\": [\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_unstaked_deposits\",\n \"discriminator\": [36, 102, 187, 49, 220, 36, 132, 67],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"user_ata\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_treasury\",\n \"discriminator\": [40, 63, 122, 158, 144, 216, 83, 96],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"reward_treasury_vault\",\n \"writable\": true\n },\n {\n \"name\": \"treasury_vault_authority\"\n },\n {\n \"name\": \"withdraw_destination_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_to_farm_vault\",\n \"discriminator\": [131, 166, 64, 94, 108, 213, 114, 183],\n \"accounts\": [\n {\n \"name\": \"depositor\",\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"depositor_ata\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_from_farm_vault\",\n \"discriminator\": [22, 82, 128, 250, 86, 79, 124, 78],\n \"accounts\": [\n {\n \"name\": \"withdraw_authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"withdrawer_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_slashed_amount\",\n \"discriminator\": [202, 217, 67, 74, 172, 22, 140, 216],\n \"accounts\": [\n {\n \"name\": \"crank\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"slashed_amount_spill_address\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_farm_admin\",\n \"discriminator\": [20, 37, 136, 19, 122, 239, 36, 130],\n \"accounts\": [\n {\n \"name\": \"pending_farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_global_config_admin\",\n \"discriminator\": [184, 87, 23, 193, 156, 238, 175, 119],\n \"accounts\": [\n {\n \"name\": \"pending_global_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_reward\",\n \"discriminator\": [191, 187, 176, 137, 9, 25, 187, 244],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"admin_reward_token_ata\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update_second_delegated_authority\",\n \"discriminator\": [127, 26, 6, 181, 203, 248, 117, 64],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"new_second_delegated_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"idl_missing_types\",\n \"discriminator\": [130, 80, 38, 153, 80, 212, 182, 253],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"global_config_option_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"GlobalConfigOption\"\n }\n }\n },\n {\n \"name\": \"farm_config_option_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"FarmConfigOption\"\n }\n }\n },\n {\n \"name\": \"time_unit\",\n \"type\": {\n \"defined\": {\n \"name\": \"TimeUnit\"\n }\n }\n },\n {\n \"name\": \"locking_mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"LockingMode\"\n }\n }\n },\n {\n \"name\": \"reward_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"RewardType\"\n }\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"FarmState\",\n \"discriminator\": [198, 102, 216, 74, 63, 66, 163, 190]\n },\n {\n \"name\": \"GlobalConfig\",\n \"discriminator\": [149, 8, 156, 202, 160, 252, 176, 217]\n },\n {\n \"name\": \"UserState\",\n \"discriminator\": [72, 177, 85, 249, 76, 167, 186, 126]\n },\n {\n \"name\": \"OraclePrices\",\n \"discriminator\": [89, 128, 118, 221, 6, 72, 180, 146]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"StakeZero\",\n \"msg\": \"Cannot stake 0 amount\"\n },\n {\n \"code\": 6001,\n \"name\": \"UnstakeZero\",\n \"msg\": \"Cannot unstake 0 amount\"\n },\n {\n \"code\": 6002,\n \"name\": \"NothingToUnstake\",\n \"msg\": \"Nothing to unstake\"\n },\n {\n \"code\": 6003,\n \"name\": \"NoRewardToHarvest\",\n \"msg\": \"No reward to harvest\"\n },\n {\n \"code\": 6004,\n \"name\": \"NoRewardInList\",\n \"msg\": \"Reward not present in reward list\"\n },\n {\n \"code\": 6005,\n \"name\": \"RewardAlreadyInitialized\",\n \"msg\": \"Reward already initialized\"\n },\n {\n \"code\": 6006,\n \"name\": \"MaxRewardNumberReached\",\n \"msg\": \"Max number of reward tokens reached\"\n },\n {\n \"code\": 6007,\n \"name\": \"RewardDoesNotExist\",\n \"msg\": \"Reward does not exist\"\n },\n {\n \"code\": 6008,\n \"name\": \"WrongRewardVaultAccount\",\n \"msg\": \"Reward vault exists but the account is wrong\"\n },\n {\n \"code\": 6009,\n \"name\": \"RewardVaultMismatch\",\n \"msg\": \"Reward vault pubkey does not match staking pool vault\"\n },\n {\n \"code\": 6010,\n \"name\": \"RewardVaultAuthorityMismatch\",\n \"msg\": \"Reward vault authority pubkey does not match staking pool vault\"\n },\n {\n \"code\": 6011,\n \"name\": \"NothingStaked\",\n \"msg\": \"Nothing staked, cannot collect any rewards\"\n },\n {\n \"code\": 6012,\n \"name\": \"IntegerOverflow\",\n \"msg\": \"Integer overflow\"\n },\n {\n \"code\": 6013,\n \"name\": \"ConversionFailure\",\n \"msg\": \"Conversion failure\"\n },\n {\n \"code\": 6014,\n \"name\": \"UnexpectedAccount\",\n \"msg\": \"Unexpected account in instruction\"\n },\n {\n \"code\": 6015,\n \"name\": \"OperationForbidden\",\n \"msg\": \"Operation forbidden\"\n },\n {\n \"code\": 6016,\n \"name\": \"MathOverflow\",\n \"msg\": \"Mathematical operation with overflow\"\n },\n {\n \"code\": 6017,\n \"name\": \"MinClaimDurationNotReached\",\n \"msg\": \"Minimum claim duration has not been reached\"\n },\n {\n \"code\": 6018,\n \"name\": \"RewardsVaultHasDelegate\",\n \"msg\": \"Reward vault has a delegate\"\n },\n {\n \"code\": 6019,\n \"name\": \"RewardsVaultHasCloseAuthority\",\n \"msg\": \"Reward vault has a close authority\"\n },\n {\n \"code\": 6020,\n \"name\": \"FarmVaultHasDelegate\",\n \"msg\": \"Farm vault has a delegate\"\n },\n {\n \"code\": 6021,\n \"name\": \"FarmVaultHasCloseAuthority\",\n \"msg\": \"Farm vault has a close authority\"\n },\n {\n \"code\": 6022,\n \"name\": \"RewardsTreasuryVaultHasDelegate\",\n \"msg\": \"Reward vault has a delegate\"\n },\n {\n \"code\": 6023,\n \"name\": \"RewardsTreasuryVaultHasCloseAuthority\",\n \"msg\": \"Reward vault has a close authority\"\n },\n {\n \"code\": 6024,\n \"name\": \"UserAtaRewardVaultMintMissmatch\",\n \"msg\": \"User ata and reward vault have different mints\"\n },\n {\n \"code\": 6025,\n \"name\": \"UserAtaFarmTokenMintMissmatch\",\n \"msg\": \"User ata and farm token have different mints\"\n },\n {\n \"code\": 6026,\n \"name\": \"TokenFarmTokenMintMissmatch\",\n \"msg\": \"Token mint and farm token have different mints\"\n },\n {\n \"code\": 6027,\n \"name\": \"RewardAtaRewardMintMissmatch\",\n \"msg\": \"Reward ata mint is different than reward mint\"\n },\n {\n \"code\": 6028,\n \"name\": \"RewardAtaOwnerNotPayer\",\n \"msg\": \"Reward ata owner is different than payer\"\n },\n {\n \"code\": 6029,\n \"name\": \"InvalidGlobalConfigMode\",\n \"msg\": \"Mode to update global_config is invalid\"\n },\n {\n \"code\": 6030,\n \"name\": \"RewardIndexOutOfRange\",\n \"msg\": \"Reward Index is higher than number of rewards\"\n },\n {\n \"code\": 6031,\n \"name\": \"NothingToWithdraw\",\n \"msg\": \"No tokens available to withdraw\"\n },\n {\n \"code\": 6032,\n \"name\": \"UserDelegatedFarmNonDelegatedMissmatch\",\n \"msg\": \"user, user_ref, authority and payer must match for non-delegated farm\"\n },\n {\n \"code\": 6033,\n \"name\": \"AuthorityFarmDelegateMissmatch\",\n \"msg\": \"Authority must match farm delegate authority\"\n },\n {\n \"code\": 6034,\n \"name\": \"FarmNotDelegated\",\n \"msg\": \"Farm not delegated, can not set stake\"\n },\n {\n \"code\": 6035,\n \"name\": \"FarmDelegated\",\n \"msg\": \"Operation not allowed for delegated farm\"\n },\n {\n \"code\": 6036,\n \"name\": \"UnstakeNotElapsed\",\n \"msg\": \"Unstake lockup period is not elapsed. Deposit is locked until end of unstake period\"\n },\n {\n \"code\": 6037,\n \"name\": \"PendingWithdrawalNotWithdrawnYet\",\n \"msg\": \"Pending withdrawal already exist and not withdrawn yet\"\n },\n {\n \"code\": 6038,\n \"name\": \"DepositZero\",\n \"msg\": \"Cannot deposit zero amount directly to farm vault\"\n },\n {\n \"code\": 6039,\n \"name\": \"InvalidConfigValue\",\n \"msg\": \"Invalid config value\"\n },\n {\n \"code\": 6040,\n \"name\": \"InvalidPenaltyPercentage\",\n \"msg\": \"Invalid penalty percentage\"\n },\n {\n \"code\": 6041,\n \"name\": \"EarlyWithdrawalNotAllowed\",\n \"msg\": \"Early withdrawal not allowed\"\n },\n {\n \"code\": 6042,\n \"name\": \"InvalidLockingTimestamps\",\n \"msg\": \"Invalid locking timestamps\"\n },\n {\n \"code\": 6043,\n \"name\": \"InvalidRpsCurvePoint\",\n \"msg\": \"Invalid reward rate curve point\"\n },\n {\n \"code\": 6044,\n \"name\": \"InvalidTimestamp\",\n \"msg\": \"Invalid timestamp\"\n },\n {\n \"code\": 6045,\n \"name\": \"DepositCapReached\",\n \"msg\": \"Deposit cap reached\"\n },\n {\n \"code\": 6046,\n \"name\": \"MissingScopePrices\",\n \"msg\": \"Missing Scope Prices\"\n },\n {\n \"code\": 6047,\n \"name\": \"ScopeOraclePriceTooOld\",\n \"msg\": \"Scope Oracle Price Too Old\"\n },\n {\n \"code\": 6048,\n \"name\": \"InvalidOracleConfig\",\n \"msg\": \"Invalid Oracle Config\"\n },\n {\n \"code\": 6049,\n \"name\": \"CouldNotDeserializeScope\",\n \"msg\": \"Could not deserialize scope\"\n },\n {\n \"code\": 6050,\n \"name\": \"RewardAtaOwnerNotAdmin\",\n \"msg\": \"Reward ata owner is different than farm admin\"\n },\n {\n \"code\": 6051,\n \"name\": \"WithdrawRewardZeroAvailable\",\n \"msg\": \"Cannot withdraw reward as available amount is zero\"\n },\n {\n \"code\": 6052,\n \"name\": \"RewardScheduleCurveSet\",\n \"msg\": \"Cannot withdraw reward as reward schedule is set\"\n },\n {\n \"code\": 6053,\n \"name\": \"UnsupportedTokenExtension\",\n \"msg\": \"Cannot initialize farm while having a mint with token22 and requested extensions\"\n },\n {\n \"code\": 6054,\n \"name\": \"InvalidFarmConfigUpdateAuthority\",\n \"msg\": \"Invalid authority for updating farm config\"\n }\n ],\n \"types\": [\n {\n \"name\": \"FarmConfigOption\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"UpdateRewardRps\"\n },\n {\n \"name\": \"UpdateRewardMinClaimDuration\"\n },\n {\n \"name\": \"WithdrawAuthority\"\n },\n {\n \"name\": \"DepositWarmupPeriod\"\n },\n {\n \"name\": \"WithdrawCooldownPeriod\"\n },\n {\n \"name\": \"RewardType\"\n },\n {\n \"name\": \"RpsDecimals\"\n },\n {\n \"name\": \"LockingMode\"\n },\n {\n \"name\": \"LockingStartTimestamp\"\n },\n {\n \"name\": \"LockingDuration\"\n },\n {\n \"name\": \"LockingEarlyWithdrawalPenaltyBps\"\n },\n {\n \"name\": \"DepositCapAmount\"\n },\n {\n \"name\": \"SlashedAmountSpillAddress\"\n },\n {\n \"name\": \"ScopePricesAccount\"\n },\n {\n \"name\": \"ScopeOraclePriceId\"\n },\n {\n \"name\": \"ScopeOracleMaxAge\"\n },\n {\n \"name\": \"UpdateRewardScheduleCurvePoints\"\n },\n {\n \"name\": \"UpdatePendingFarmAdmin\"\n },\n {\n \"name\": \"UpdateStrategyId\"\n },\n {\n \"name\": \"UpdateDelegatedRpsAdmin\"\n },\n {\n \"name\": \"UpdateVaultId\"\n },\n {\n \"name\": \"UpdateExtraDelegatedAuthority\"\n }\n ]\n }\n },\n {\n \"name\": \"GlobalConfigOption\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"SetPendingGlobalAdmin\"\n },\n {\n \"name\": \"SetTreasuryFeeBps\"\n }\n ]\n }\n },\n {\n \"name\": \"LockingMode\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"None\"\n },\n {\n \"name\": \"Continuous\"\n },\n {\n \"name\": \"WithExpiry\"\n }\n ]\n }\n },\n {\n \"name\": \"RewardInfo\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"token\",\n \"type\": {\n \"defined\": {\n \"name\": \"TokenInfo\"\n }\n }\n },\n {\n \"name\": \"rewards_vault\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"rewards_available\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_schedule_curve\",\n \"type\": {\n \"defined\": {\n \"name\": \"RewardScheduleCurve\"\n }\n }\n },\n {\n \"name\": \"min_claim_duration_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_issuance_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"rewards_issued_unclaimed\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"rewards_issued_cumulative\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_per_share_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"placeholder0\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"rewards_per_second_decimals\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": {\n \"array\": [\"u8\", 6]\n }\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\"u64\", 20]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardPerTimeUnitPoint\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"ts_start\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_per_time_unit\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RewardScheduleCurve\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"points\",\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"RewardPerTimeUnitPoint\"\n }\n },\n 20\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardType\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Proportional\"\n },\n {\n \"name\": \"Constant\"\n }\n ]\n }\n },\n {\n \"name\": \"TimeUnit\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Seconds\"\n },\n {\n \"name\": \"Slots\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenInfo\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"decimals\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_program\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\"u64\", 6]\n }\n }\n ]\n }\n },\n {\n \"name\": \"DatedPrice\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"price\",\n \"type\": {\n \"defined\": {\n \"name\": \"Price\"\n }\n }\n },\n {\n \"name\": \"last_updated_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"unix_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reserved\",\n \"type\": {\n \"array\": [\"u64\", 2]\n }\n },\n {\n \"name\": \"reserved2\",\n \"type\": {\n \"array\": [\"u16\", 3]\n }\n },\n {\n \"name\": \"index\",\n \"type\": \"u16\"\n }\n ]\n }\n },\n {\n \"name\": \"Price\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"value\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"exp\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"FarmState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"farm_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"global_config\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token\",\n \"type\": {\n \"defined\": {\n \"name\": \"TokenInfo\"\n }\n }\n },\n {\n \"name\": \"reward_infos\",\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"RewardInfo\"\n }\n },\n 10\n ]\n }\n },\n {\n \"name\": \"num_reward_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"num_users\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_staked_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"farm_vault\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"farm_vaults_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"farm_vaults_authority_bump\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegate_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"time_unit\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"is_farm_frozen\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"is_farm_delegated\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": {\n \"array\": [\"u8\", 5]\n }\n },\n {\n \"name\": \"withdraw_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"deposit_warmup_period\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"withdrawal_cooldown_period\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"total_active_stake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_pending_stake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_pending_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed_amount_current\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed_amount_cumulative\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed_amount_spill_address\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"locking_mode\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"locking_start_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"locking_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"locking_early_withdrawal_penalty_bps\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"deposit_cap_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"scope_prices\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"scope_oracle_price_id\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"scope_oracle_max_age\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"pending_farm_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"strategy_id\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegated_rps_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"vault_id\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"second_delegated_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\"u64\", 74]\n }\n }\n ]\n }\n },\n {\n \"name\": \"GlobalConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"global_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"treasury_fee_bps\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"treasury_vaults_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"treasury_vaults_authority_bump\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"pending_global_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\"u128\", 126]\n }\n }\n ]\n }\n },\n {\n \"name\": \"UserState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"user_id\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"farm_state\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"is_farm_delegated\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": {\n \"array\": [\"u8\", 7]\n }\n },\n {\n \"name\": \"rewards_tally_scaled\",\n \"type\": {\n \"array\": [\"u128\", 10]\n }\n },\n {\n \"name\": \"rewards_issued_unclaimed\",\n \"type\": {\n \"array\": [\"u64\", 10]\n }\n },\n {\n \"name\": \"last_claim_ts\",\n \"type\": {\n \"array\": [\"u64\", 10]\n }\n },\n {\n \"name\": \"active_stake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_deposit_stake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_deposit_stake_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"pending_withdrawal_unstake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_withdrawal_unstake_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegatee\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"last_stake_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\"u64\", 50]\n }\n }\n ]\n }\n },\n {\n \"name\": \"OraclePrices\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"oracle_mappings\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"prices\",\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"DatedPrice\"\n }\n },\n 512\n ]\n }\n }\n ]\n }\n }\n ]\n}\n","import { KaminoLending } from \"./klend\";\nimport { Farms } from \"./kfarms\";\nimport KLEND_IDL_JSON from \"./klend.json\";\nimport KFARMS_IDL_JSON from \"./kfarms.json\";\n\nexport const KLEND_IDL = KLEND_IDL_JSON as KaminoLending;\nexport const KFARMS_IDL = KFARMS_IDL_JSON as Farms;\nexport type KlendIdlType = KaminoLending;\nexport type KfarmsIdlType = Farms;\n","import BN from \"bn.js\";\nimport {\n ObligationCollateralFields,\n ObligationCollateralJSON,\n ObligationJSON,\n ObligationLiquidityFields,\n ObligationLiquidityJSON,\n ObligationOrderFields,\n ObligationOrderJSON,\n ObligationRaw,\n ReserveConfigFields,\n ReserveConfigJSON,\n ReserveJSON,\n ReserveLiquidityFields,\n ReserveLiquidityJSON,\n ReserveRaw,\n TokenInfoFields,\n TokenInfoJSON,\n WithdrawalCapsFields,\n WithdrawalCapsJSON,\n} from \"../../types\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { BorshCoder, Idl } from \"@coral-xyz/anchor\";\nimport { KLEND_IDL } from \"../../idl\";\nimport * as borsh from \"@coral-xyz/borsh\";\n\nexport const KLEND_ACCOUNT_CODER = new BorshCoder(KLEND_IDL);\n\nconst reserveDiscriminator = Buffer.from([43, 242, 204, 202, 26, 247, 59, 127]);\n\nconst obligationDiscriminator = Buffer.from([\n 168, 206, 141, 106, 88, 76, 172, 167,\n]);\n\nconst obligationLayout = borsh.struct<ObligationRaw>([\n borsh.u64(\"tag\"),\n borsh.struct(\n [\n borsh.u64(\"slot\"),\n borsh.u8(\"stale\"),\n borsh.u8(\"priceStatus\"),\n borsh.array(borsh.u8(), 6, \"placeholder\"),\n ],\n \"lastUpdate\"\n ),\n borsh.publicKey(\"lendingMarket\"),\n borsh.publicKey(\"owner\"),\n borsh.array(\n borsh.struct([\n borsh.publicKey(\"depositReserve\"),\n borsh.u64(\"depositedAmount\"),\n borsh.u128(\"marketValueSf\"),\n borsh.u64(\"borrowedAmountAgainstThisCollateralInElevationGroup\"),\n borsh.array(borsh.u64(), 9, \"padding\"),\n ]),\n 8,\n \"deposits\"\n ),\n borsh.u64(\"lowestReserveDepositLiquidationLtv\"),\n borsh.u128(\"depositedValueSf\"),\n borsh.array(\n borsh.struct([\n borsh.publicKey(\"borrowReserve\"),\n borsh.struct(\n [\n borsh.array(borsh.u64(), 4, \"value\"),\n borsh.array(borsh.u64(), 2, \"padding\"),\n ],\n \"cumulativeBorrowRateBsf\"\n ),\n borsh.u64(\"padding\"),\n borsh.u128(\"borrowedAmountSf\"),\n borsh.u128(\"marketValueSf\"),\n borsh.u128(\"borrowFactorAdjustedMarketValueSf\"),\n borsh.u64(\"borrowedAmountOutsideElevationGroups\"),\n borsh.array(borsh.u64(), 7, \"padding2\"),\n ]),\n 5,\n \"borrows\"\n ),\n borsh.u128(\"borrowFactorAdjustedDebtValueSf\"),\n borsh.u128(\"borrowedAssetsMarketValueSf\"),\n borsh.u128(\"allowedBorrowValueSf\"),\n borsh.u128(\"unhealthyBorrowValueSf\"),\n borsh.array(borsh.u8(), 8, \"depositsAssetTiers\"),\n borsh.array(borsh.u8(), 5, \"borrowsAssetTiers\"),\n borsh.u8(\"elevationGroup\"),\n borsh.u8(\"numOfObsoleteDepositReserves\"),\n borsh.u8(\"hasDebt\"),\n borsh.publicKey(\"referrer\"),\n borsh.u8(\"borrowingDisabled\"),\n borsh.u8(\"autodeleverageTargetLtvPct\"),\n borsh.u8(\"lowestReserveDepositMaxLtvPct\"),\n borsh.u8(\"numOfObsoleteBorrowReserves\"),\n borsh.array(borsh.u8(), 4, \"reserved\"),\n borsh.u64(\"highestBorrowFactorPct\"),\n borsh.u64(\"autodeleverageMarginCallStartedTimestamp\"),\n borsh.array(\n borsh.struct([\n borsh.u128(\"conditionThresholdSf\"),\n borsh.u128(\"opportunityParameterSf\"),\n borsh.u16(\"minExecutionBonusBps\"),\n borsh.u16(\"maxExecutionBonusBps\"),\n borsh.u8(\"conditionType\"),\n borsh.u8(\"opportunityType\"),\n borsh.array(borsh.u8(), 10, \"padding1\"),\n borsh.array(borsh.u128(), 5, \"padding2\"),\n ]),\n 2,\n \"orders\"\n ),\n borsh.array(borsh.u64(), 93, \"padding3\"),\n]);\n\nconst reserveLayout = borsh.struct<ReserveRaw>([\n borsh.u64(\"version\"),\n borsh.struct(\n [\n borsh.u64(\"slot\"),\n borsh.u8(\"stale\"),\n borsh.u8(\"priceStatus\"),\n borsh.array(borsh.u8(), 6, \"placeholder\"),\n ],\n \"lastUpdate\"\n ),\n borsh.publicKey(\"lendingMarket\"),\n borsh.publicKey(\"farmCollateral\"),\n borsh.publicKey(\"farmDebt\"),\n borsh.struct(\n [\n borsh.publicKey(\"mintPubkey\"),\n borsh.publicKey(\"supplyVault\"),\n borsh.publicKey(\"feeVault\"),\n borsh.u64(\"availableAmount\"),\n borsh.u128(\"borrowedAmountSf\"),\n borsh.u128(\"marketPriceSf\"),\n borsh.u64(\"marketPriceLastUpdatedTs\"),\n borsh.u64(\"mintDecimals\"),\n borsh.u64(\"depositLimitCrossedTimestamp\"),\n borsh.u64(\"borrowLimitCrossedTimestamp\"),\n borsh.struct(\n [\n borsh.array(borsh.u64(), 4, \"value\"),\n borsh.array(borsh.u64(), 2, \"padding\"),\n ],\n \"cumulativeBorrowRateBsf\"\n ),\n borsh.u128(\"accumulatedProtocolFeesSf\"),\n borsh.u128(\"accumulatedReferrerFeesSf\"),\n borsh.u128(\"pendingReferrerFeesSf\"),\n borsh.u128(\"absoluteReferralRateSf\"),\n borsh.publicKey(\"tokenProgram\"),\n borsh.array(borsh.u64(), 51, \"padding2\"),\n borsh.array(borsh.u128(), 32, \"padding3\"),\n ],\n \"liquidity\"\n ),\n borsh.array(borsh.u64(), 150, \"reserveLiquidityPadding\"),\n borsh.struct(\n [\n borsh.publicKey(\"mintPubkey\"),\n borsh.u64(\"mintTotalSupply\"),\n borsh.publicKey(\"supplyVault\"),\n borsh.array(borsh.u128(), 32, \"padding1\"),\n borsh.array(borsh.u128(), 32, \"padding2\"),\n ],\n \"collateral\"\n ),\n borsh.array(borsh.u64(), 150, \"reserveCollateralPadding\"),\n borsh.struct(\n [\n borsh.u8(\"status\"),\n borsh.u8(\"assetTier\"),\n borsh.u16(\"hostFixedInterestRateBps\"),\n borsh.array(borsh.u8(), 9, \"reserved2\"),\n borsh.u8(\"protocolOrderExecutionFeePct\"),\n borsh.u8(\"protocolTakeRatePct\"),\n borsh.u8(\"protocolLiquidationFeePct\"),\n borsh.u8(\"loanToValuePct\"),\n borsh.u8(\"liquidationThresholdPct\"),\n borsh.u16(\"minLiquidationBonusBps\"),\n borsh.u16(\"maxLiquidationBonusBps\"),\n borsh.u16(\"badDebtLiquidationBonusBps\"),\n borsh.u64(\"deleveragingMarginCallPeriodSecs\"),\n borsh.u64(\"deleveragingThresholdDecreaseBpsPerDay\"),\n borsh.struct(\n [\n borsh.u64(\"borrowFeeSf\"),\n borsh.u64(\"flashLoanFeeSf\"),\n borsh.array(borsh.u8(), 8, \"padding\"),\n ],\n \"fees\"\n ),\n borsh.struct(\n [\n borsh.array(\n borsh.struct([\n borsh.u32(\"utilizationRateBps\"),\n borsh.u32(\"borrowRateBps\"),\n ]),\n 11,\n \"points\"\n ),\n ],\n \"borrowRateCurve\"\n ),\n borsh.u64(\"borrowFactorPct\"),\n borsh.u64(\"depositLimit\"),\n borsh.u64(\"borrowLimit\"),\n borsh.struct(\n [\n borsh.array(borsh.u8(), 32, \"name\"),\n borsh.struct(\n [borsh.u64(\"lower\"), borsh.u64(\"upper\"), borsh.u64(\"exp\")],\n \"heuristic\"\n ),\n borsh.u64(\"maxTwapDivergenceBps\"),\n borsh.u64(\"maxAgePriceSeconds\"),\n borsh.u64(\"maxAgeTwapSeconds\"),\n borsh.struct(\n [\n borsh.publicKey(\"priceFeed\"),\n borsh.array(borsh.u16(), 4, \"priceChain\"),\n borsh.array(borsh.u16(), 4, \"twapChain\"),\n ],\n \"scopeConfiguration\"\n ),\n borsh.struct(\n [\n borsh.publicKey(\"priceAggregator\"),\n borsh.publicKey(\"twapAggregator\"),\n ],\n \"switchboardConfiguration\"\n ),\n borsh.struct([borsh.publicKey(\"price\")], \"pythConfiguration\"),\n borsh.u8(\"blockPriceUsage\"),\n borsh.array(borsh.u8(), 7, \"reserved\"),\n borsh.array(borsh.u64(), 19, \"padding\"),\n ],\n \"tokenInfo\"\n ),\n borsh.struct(\n [\n borsh.i64(\"configCapacity\"),\n borsh.i64(\"currentTotal\"),\n borsh.u64(\"lastIntervalStartTimestamp\"),\n borsh.u64(\"configIntervalLengthSeconds\"),\n ],\n \"depositWithdrawalCap\"\n ),\n borsh.struct(\n [\n borsh.i64(\"configCapacity\"),\n borsh.i64(\"currentTotal\"),\n borsh.u64(\"lastIntervalStartTimestamp\"),\n borsh.u64(\"configIntervalLengthSeconds\"),\n ],\n \"debtWithdrawalCap\"\n ),\n borsh.array(borsh.u8(), 20, \"elevationGroups\"),\n borsh.u8(\"disableUsageAsCollOutsideEmode\"),\n borsh.u8(\"utilizationLimitBlockBorrowingAbovePct\"),\n borsh.u8(\"autodeleverageEnabled\"),\n borsh.array(borsh.u8(), 1, \"reserved1\"),\n borsh.u64(\"borrowLimitOutsideElevationGroup\"),\n borsh.array(\n borsh.u64(),\n 32,\n \"borrowLimitAgainstThisCollateralInElevationGroup\"\n ),\n borsh.u64(\"deleveragingBonusIncreaseBpsPerDay\"),\n ],\n \"config\"\n ),\n borsh.array(borsh.u64(), 116, \"configPadding\"),\n borsh.u64(\"borrowedAmountOutsideElevationGroup\"),\n borsh.array(\n borsh.u64(),\n 32,\n \"borrowedAmountsAgainstThisReserveInElevationGroups\"\n ),\n borsh.array(borsh.u64(), 207, \"padding\"),\n]);\n\nexport function decodeKlendReserveData(data: Buffer): ReserveRaw {\n if (!data.slice(0, 8).equals(reserveDiscriminator)) {\n throw new Error(\"invalid account discriminator\");\n }\n\n const dec = reserveLayout.decode(data.slice(8));\n return dec;\n}\n\nexport function decodeKlendObligationData(data: Buffer): ObligationRaw {\n if (!data.slice(0, 8).equals(obligationDiscriminator)) {\n throw new Error(\"invalid account discriminator\");\n }\n\n const dec = obligationLayout.decode(data.slice(8));\n return dec;\n}\n\nexport function dtoToObligationRaw(\n obligationDto: ObligationJSON\n): ObligationRaw {\n return {\n tag: new BN(obligationDto.tag),\n lastUpdate: {\n slot: new BN(obligationDto.lastUpdate.slot),\n stale: obligationDto.lastUpdate.stale,\n priceStatus: obligationDto.lastUpdate.priceStatus,\n placeholder: obligationDto.lastUpdate.placeholder,\n },\n lendingMarket: new PublicKey(obligationDto.lendingMarket),\n owner: new PublicKey(obligationDto.owner),\n deposits: obligationDto.deposits.map((item) =>\n dtoToObligationCollateralFields(item)\n ),\n lowestReserveDepositLiquidationLtv: new BN(\n obligationDto.lowestReserveDepositLiquidationLtv\n ),\n depositedValueSf: new BN(obligationDto.depositedValueSf),\n borrows: obligationDto.borrows.map((item) =>\n dtoToObligationLiquidityFields(item)\n ),\n borrowFactorAdjustedDebtValueSf: new BN(\n obligationDto.borrowFactorAdjustedDebtValueSf\n ),\n borrowedAssetsMarketValueSf: new BN(\n obligationDto.borrowedAssetsMarketValueSf\n ),\n allowedBorrowValueSf: new BN(obligationDto.allowedBorrowValueSf),\n unhealthyBorrowValueSf: new BN(obligationDto.unhealthyBorrowValueSf),\n depositsAssetTiers: obligationDto.depositsAssetTiers,\n borrowsAssetTiers: obligationDto.borrowsAssetTiers,\n elevationGroup: obligationDto.elevationGroup,\n numOfObsoleteDepositReserves: obligationDto.numOfObsoleteDepositReserves,\n hasDebt: obligationDto.hasDebt,\n referrer: new PublicKey(obligationDto.referrer),\n borrowingDisabled: obligationDto.borrowingDisabled,\n autodeleverageTargetLtvPct: obligationDto.autodeleverageTargetLtvPct,\n lowestReserveDepositMaxLtvPct: obligationDto.lowestReserveDepositMaxLtvPct,\n numOfObsoleteBorrowReserves: obligationDto.numOfObsoleteBorrowReserves,\n reserved: obligationDto.reserved,\n highestBorrowFactorPct: new BN(obligationDto.highestBorrowFactorPct),\n autodeleverageMarginCallStartedTimestamp: new BN(\n obligationDto.autodeleverageMarginCallStartedTimestamp\n ),\n orders: obligationDto.orders.map((item) =>\n dtoToObligationOrderFields(item)\n ),\n padding3: obligationDto.padding3.map((item) => new BN(item)),\n };\n}\n\nexport function dtoToReserveRaw(reserveDto: ReserveJSON): ReserveRaw {\n return {\n version: new BN(reserveDto.version),\n lastUpdate: {\n slot: new BN(reserveDto.lastUpdate.slot),\n stale: reserveDto.lastUpdate.stale,\n priceStatus: reserveDto.lastUpdate.priceStatus,\n placeholder: reserveDto.lastUpdate.placeholder,\n },\n lendingMarket: new PublicKey(reserveDto.lendingMarket),\n farmCollateral: new PublicKey(reserveDto.farmCollateral),\n farmDebt: new PublicKey(reserveDto.farmDebt),\n liquidity: dtoToReserveLiquidityFields(reserveDto.liquidity),\n reserveLiquidityPadding: reserveDto.reserveLiquidityPadding.map(\n (item) => new BN(item)\n ),\n collateral: {\n mintPubkey: new PublicKey(reserveDto.collateral.mintPubkey),\n mintTotalSupply: new BN(reserveDto.collateral.mintTotalSupply),\n supplyVault: new PublicKey(reserveDto.collateral.supplyVault),\n padding1: reserveDto.collateral.padding1.map((item) => new BN(item)),\n padding2: reserveDto.collateral.padding2.map((item) => new BN(item)),\n },\n reserveCollateralPadding: reserveDto.reserveCollateralPadding.map(\n (item) => new BN(item)\n ),\n config: dtoToReserveConfigFields(reserveDto.config),\n configPadding: reserveDto.configPadding.map((item) => new BN(item)),\n borrowedAmountOutsideElevationGroup: new BN(\n reserveDto.borrowedAmountOutsideElevationGroup\n ),\n borrowedAmountsAgainstThisReserveInElevationGroups:\n reserveDto.borrowedAmountsAgainstThisReserveInElevationGroups.map(\n (item) => new BN(item)\n ),\n padding: reserveDto.padding.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToReserveLiquidityFields(\n reserveDto: ReserveLiquidityJSON\n): ReserveLiquidityFields {\n return {\n mintPubkey: new PublicKey(reserveDto.mintPubkey),\n supplyVault: new PublicKey(reserveDto.supplyVault),\n feeVault: new PublicKey(reserveDto.feeVault),\n availableAmount: new BN(reserveDto.availableAmount),\n borrowedAmountSf: new BN(reserveDto.borrowedAmountSf),\n marketPriceSf: new BN(reserveDto.marketPriceSf),\n marketPriceLastUpdatedTs: new BN(reserveDto.marketPriceLastUpdatedTs),\n mintDecimals: new BN(reserveDto.mintDecimals),\n depositLimitCrossedTimestamp: new BN(\n reserveDto.depositLimitCrossedTimestamp\n ),\n borrowLimitCrossedTimestamp: new BN(reserveDto.borrowLimitCrossedTimestamp),\n cumulativeBorrowRateBsf: {\n value: reserveDto.cumulativeBorrowRateBsf.value.map(\n (item) => new BN(item)\n ),\n padding: reserveDto.cumulativeBorrowRateBsf.padding.map(\n (item) => new BN(item)\n ),\n },\n accumulatedProtocolFeesSf: new BN(reserveDto.accumulatedProtocolFeesSf),\n accumulatedReferrerFeesSf: new BN(reserveDto.accumulatedReferrerFeesSf),\n pendingReferrerFeesSf: new BN(reserveDto.pendingReferrerFeesSf),\n absoluteReferralRateSf: new BN(reserveDto.absoluteReferralRateSf),\n tokenProgram: new PublicKey(reserveDto.tokenProgram),\n padding2: reserveDto.padding2.map((item) => new BN(item)),\n padding3: reserveDto.padding3.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToReserveConfigFields(\n reserveDto: ReserveConfigJSON\n): ReserveConfigFields {\n return {\n status: reserveDto.status,\n assetTier: reserveDto.assetTier,\n hostFixedInterestRateBps: reserveDto.hostFixedInterestRateBps,\n reserved2: reserveDto.reserved2,\n protocolOrderExecutionFeePct: reserveDto.protocolOrderExecutionFeePct,\n protocolTakeRatePct: reserveDto.protocolTakeRatePct,\n protocolLiquidationFeePct: reserveDto.protocolLiquidationFeePct,\n loanToValuePct: reserveDto.loanToValuePct,\n liquidationThresholdPct: reserveDto.liquidationThresholdPct,\n minLiquidationBonusBps: reserveDto.minLiquidationBonusBps,\n maxLiquidationBonusBps: reserveDto.maxLiquidationBonusBps,\n badDebtLiquidationBonusBps: reserveDto.badDebtLiquidationBonusBps,\n deleveragingMarginCallPeriodSecs: new BN(\n reserveDto.deleveragingMarginCallPeriodSecs\n ),\n deleveragingThresholdDecreaseBpsPerDay: new BN(\n reserveDto.deleveragingThresholdDecreaseBpsPerDay\n ),\n fees: {\n borrowFeeSf: new BN(reserveDto.fees.borrowFeeSf),\n flashLoanFeeSf: new BN(reserveDto.fees.flashLoanFeeSf),\n padding: reserveDto.fees.padding,\n },\n borrowRateCurve: {\n points: reserveDto.borrowRateCurve.points.map((item) => ({\n utilizationRateBps: item.utilizationRateBps,\n borrowRateBps: item.borrowRateBps,\n })),\n },\n borrowFactorPct: new BN(reserveDto.borrowFactorPct),\n depositLimit: new BN(reserveDto.depositLimit),\n borrowLimit: new BN(reserveDto.borrowLimit),\n tokenInfo: dtoToTokenInfoFields(reserveDto.tokenInfo),\n depositWithdrawalCap: dtoToWithdrawalCapsFields(\n reserveDto.depositWithdrawalCap\n ),\n debtWithdrawalCap: dtoToWithdrawalCapsFields(reserveDto.debtWithdrawalCap),\n elevationGroups: reserveDto.elevationGroups,\n disableUsageAsCollOutsideEmode: reserveDto.disableUsageAsCollOutsideEmode,\n utilizationLimitBlockBorrowingAbovePct:\n reserveDto.utilizationLimitBlockBorrowingAbovePct,\n autodeleverageEnabled: reserveDto.autodeleverageEnabled,\n reserved1: reserveDto.reserved1,\n borrowLimitOutsideElevationGroup: new BN(\n reserveDto.borrowLimitOutsideElevationGroup\n ),\n borrowLimitAgainstThisCollateralInElevationGroup:\n reserveDto.borrowLimitAgainstThisCollateralInElevationGroup.map(\n (item) => new BN(item)\n ),\n deleveragingBonusIncreaseBpsPerDay: new BN(\n reserveDto.deleveragingBonusIncreaseBpsPerDay\n ),\n };\n}\n\nfunction dtoToTokenInfoFields(tokenInfoDto: TokenInfoJSON): TokenInfoFields {\n return {\n name: tokenInfoDto.name,\n heuristic: {\n lower: new BN(tokenInfoDto.heuristic.lower),\n upper: new BN(tokenInfoDto.heuristic.upper),\n exp: new BN(tokenInfoDto.heuristic.exp),\n },\n maxTwapDivergenceBps: new BN(tokenInfoDto.maxTwapDivergenceBps),\n maxAgePriceSeconds: new BN(tokenInfoDto.maxAgePriceSeconds),\n maxAgeTwapSeconds: new BN(tokenInfoDto.maxAgeTwapSeconds),\n scopeConfiguration: {\n priceFeed: new PublicKey(tokenInfoDto.scopeConfiguration.priceFeed),\n priceChain: tokenInfoDto.scopeConfiguration.priceChain,\n twapChain: tokenInfoDto.scopeConfiguration.twapChain,\n },\n switchboardConfiguration: {\n priceAggregator: new PublicKey(\n tokenInfoDto.switchboardConfiguration.priceAggregator\n ),\n twapAggregator: new PublicKey(\n tokenInfoDto.switchboardConfiguration.twapAggregator\n ),\n },\n pythConfiguration: {\n price: new PublicKey(tokenInfoDto.pythConfiguration.price),\n },\n blockPriceUsage: tokenInfoDto.blockPriceUsage,\n reserved: tokenInfoDto.reserved,\n padding: tokenInfoDto.padding.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToWithdrawalCapsFields(\n withdrawalCapsDto: WithdrawalCapsJSON\n): WithdrawalCapsFields {\n return {\n configCapacity: new BN(withdrawalCapsDto.configCapacity),\n currentTotal: new BN(withdrawalCapsDto.currentTotal),\n lastIntervalStartTimestamp: new BN(\n withdrawalCapsDto.lastIntervalStartTimestamp\n ),\n configIntervalLengthSeconds: new BN(\n withdrawalCapsDto.configIntervalLengthSeconds\n ),\n };\n}\n\nfunction dtoToObligationCollateralFields(\n obligationCollateralDto: ObligationCollateralJSON\n): ObligationCollateralFields {\n return {\n depositReserve: new PublicKey(obligationCollateralDto.depositReserve),\n depositedAmount: new BN(obligationCollateralDto.depositedAmount),\n marketValueSf: new BN(obligationCollateralDto.marketValueSf),\n borrowedAmountAgainstThisCollateralInElevationGroup: new BN(\n obligationCollateralDto.borrowedAmountAgainstThisCollateralInElevationGroup\n ),\n padding: obligationCollateralDto.padding.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToObligationLiquidityFields(\n obligationLiquidityDto: ObligationLiquidityJSON\n): ObligationLiquidityFields {\n return {\n borrowReserve: new PublicKey(obligationLiquidityDto.borrowReserve),\n cumulativeBorrowRateBsf: {\n value: obligationLiquidityDto.cumulativeBorrowRateBsf.value.map(\n (item) => new BN(item)\n ),\n padding: obligationLiquidityDto.cumulativeBorrowRateBsf.padding.map(\n (item) => new BN(item)\n ),\n },\n padding: new BN(obligationLiquidityDto.padding),\n borrowedAmountSf: new BN(obligationLiquidityDto.borrowedAmountSf),\n marketValueSf: new BN(obligationLiquidityDto.marketValueSf),\n borrowFactorAdjustedMarketValueSf: new BN(\n obligationLiquidityDto.borrowFactorAdjustedMarketValueSf\n ),\n borrowedAmountOutsideElevationGroups: new BN(\n obligationLiquidityDto.borrowedAmountOutsideElevationGroups\n ),\n padding2: obligationLiquidityDto.padding2.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToObligationOrderFields(\n obligationOrderDto: ObligationOrderJSON\n): ObligationOrderFields {\n return {\n conditionThresholdSf: new BN(obligationOrderDto.conditionThresholdSf),\n opportunityParameterSf: new BN(obligationOrderDto.opportunityParameterSf),\n minExecutionBonusBps: obligationOrderDto.minExecutionBonusBps,\n maxExecutionBonusBps: obligationOrderDto.maxExecutionBonusBps,\n conditionType: obligationOrderDto.conditionType,\n opportunityType: obligationOrderDto.opportunityType,\n padding1: obligationOrderDto.padding1,\n padding2: obligationOrderDto.padding2.map((item) => new BN(item)),\n };\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport { KLEND_PROGRAM_ID } from \"../../constants\";\n\nexport const SEED_LENDING_MARKET_AUTH = \"lma\";\nexport const SEED_RESERVE_LIQ_SUPPLY = \"reserve_liq_supply\";\nexport const SEED_FEE_RECEIVER = \"fee_receiver\";\nexport const SEED_RESERVE_COLL_MINT = \"reserve_coll_mint\";\nexport const SEED_RESERVE_COLL_SUPPLY = \"reserve_coll_supply\";\nexport const SEED_BASE_REFERRER_TOKEN_STATE = \"referrer_acc\";\nexport const SEED_BASE_USER_METADATA = \"user_meta\";\nexport const SEED_BASE_REFERRER_STATE = \"ref_state\";\nexport const SEED_BASE_SHORT_URL = \"short_url\";\nexport const SEED_USER_STATE = \"user\";\n\nexport function getAllDerivedKaminoAccounts(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n) {\n return {\n lendingMarketAuthority: deriveLendingMarketAuthority(lendingMarket)[0],\n reserveLiquiditySupply: deriveReserveLiquiditySupply(\n lendingMarket,\n reserveLiquidityMint\n )[0],\n reserveCollateralMint: deriveReserveCollateralMint(\n lendingMarket,\n reserveLiquidityMint\n )[0],\n reserveDestinationDepositCollateral: deriveReserveCollateralSupply(\n lendingMarket,\n reserveLiquidityMint\n )[0],\n };\n}\n\nexport function deriveLendingMarketAuthority(\n lendingMarket: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_LENDING_MARKET_AUTH), lendingMarket.toBuffer()],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReserveLiquiditySupply(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEED_RESERVE_LIQ_SUPPLY),\n lendingMarket.toBuffer(),\n reserveLiquidityMint.toBuffer(),\n ],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveFeeReceiver(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEED_FEE_RECEIVER),\n lendingMarket.toBuffer(),\n reserveLiquidityMint.toBuffer(),\n ],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReserveCollateralMint(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEED_RESERVE_COLL_MINT),\n lendingMarket.toBuffer(),\n reserveLiquidityMint.toBuffer(),\n ],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReserveCollateralSupply(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEED_RESERVE_COLL_SUPPLY),\n lendingMarket.toBuffer(),\n reserveLiquidityMint.toBuffer(),\n ],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReferrerTokenState(\n referrer: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_BASE_REFERRER_TOKEN_STATE), referrer.toBuffer()],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveUserMetadata(user: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_BASE_USER_METADATA), user.toBuffer()],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReferrerState(user: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_BASE_REFERRER_STATE), user.toBuffer()],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveShortUrl(identifier: Buffer): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_BASE_SHORT_URL), identifier],\n KLEND_PROGRAM_ID\n );\n}\n\n/**\n * Typically the obligation for each bank will have tag and id = 0\n * @param ownerPublicKey\n * @param marketPublicKey\n * @param programId - Default KLEND_PROGRAM_ID\n * @param seed1AccountKey - Default PublicKey.default\n * @param seed2AccountKey - Default PublicKey.default\n * @param tag - Default 0\n * @param id - Default 0\n * @returns\n */\nexport const deriveBaseObligation = (\n ownerPublicKey: PublicKey,\n marketPublicKey: PublicKey,\n programId: PublicKey = KLEND_PROGRAM_ID,\n seed1AccountKey: PublicKey = PublicKey.default,\n seed2AccountKey: PublicKey = PublicKey.default,\n tag: number = 0,\n id: number = 0\n) => {\n return deriveObligation(\n programId,\n tag,\n id,\n ownerPublicKey,\n marketPublicKey,\n seed1AccountKey,\n seed2AccountKey\n );\n};\n\nexport const deriveObligation = (\n programId: PublicKey,\n tag: number,\n id: number,\n ownerPublicKey: PublicKey,\n marketPublicKey: PublicKey,\n seed1AccountKey: PublicKey,\n seed2AccountKey: PublicKey\n) => {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from([tag]),\n Buffer.from([id]),\n ownerPublicKey.toBuffer(),\n marketPublicKey.toBuffer(),\n seed1AccountKey.toBuffer(),\n seed2AccountKey.toBuffer(),\n ],\n programId\n );\n};\n\n/**\n * Somewhat contrary to the name, this is the rewards state of the farms program for an obligation\n * (like one owned by a bank), and has nothing to do with \"users\" in a margin context.\n * @param programId\n * @param farmState\n * @param obligation\n * @returns\n */\nexport function deriveUserState(\n programId: PublicKey,\n farmState: PublicKey,\n obligation: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_USER_STATE), farmState.toBuffer(), obligation.toBuffer()],\n programId\n );\n}\n","import BN from \"bn.js\";\nimport Decimal from \"decimal.js\";\n/**\n * The higher-precision {@link Decimal} counterpart that *must* be used by all operations within {@link Fraction}.\n *\n * ## How to use it?\n * Simply do `new FractionDecimal(x)` instead of `new Decimal(x)`.\n *\n * ## Why is this needed?\n * The default {@link Decimal.precision} is 20.\n * Some fractions on which we operate (most notably: the {@link Fraction.MAX_F_BN}) have more than 20 significant\n * digits, and at the same time they must encode to exact representation (e.g. because the smart contract expects an\n * exact `0xffff...ff` which has a speciyaal meaning, like \"withdraw *all*\").\n *\n * ## Why was this *not* needed before?\n * Some vibe-coded libraries that we use (e.g. `@orca-so/whirlpool-sdk`) statically initialize the global\n * `Decimal.set({ precision: ... })` when loaded. A previous, fortunate import order allowed our {@link Fraction}'s\n * constants to be computed using a sufficiently-high precision. This of course was broken by a random, unrelated\n * refactor, and from that point on we decided to not rely on the thoughtful Orca developers.\n */\nconst FractionDecimal = Decimal.clone({ precision: 40 });\n\nexport class Fraction {\n static MAX_SIZE_F = 128;\n static MAX_SIZE_BF = 256;\n static FRACTIONS = 60;\n static MULTIPLIER = new FractionDecimal(2).pow(Fraction.FRACTIONS);\n\n static MAX_F_BN = new BN(2).pow(new BN(Fraction.MAX_SIZE_F)).sub(new BN(1));\n static MAX_BF_BN = new BN(2).pow(new BN(Fraction.MAX_SIZE_BF)).sub(new BN(1));\n static MIN_BN = new BN(0);\n\n valueSf: BN;\n\n constructor(valueSf: BN) {\n if (valueSf.lt(Fraction.MIN_BN) || valueSf.gt(Fraction.MAX_BF_BN)) {\n throw new Error(\"Number out of range\");\n }\n\n this.valueSf = valueSf;\n }\n\n toDecimal(): Decimal {\n return new FractionDecimal(this.valueSf.toString()).div(\n Fraction.MULTIPLIER\n );\n }\n\n static fromDecimal(n: Decimal | number): Fraction {\n const scaledDecimal = new FractionDecimal(n).mul(Fraction.MULTIPLIER);\n const roundedScaledDecimal = roundNearest(scaledDecimal);\n // Note: the `Decimal.toString()` can return exponential notation (e.g. \"1e9\") for large numbers. This notation is\n // not accepted by `BN` constructor (i.e. invalid character \"e\"). Hence, we use `Decimal.toFixed()` (which is\n // different than `number.toFixed()` - it will not do any rounding, just render a normal notation).\n const scaledValue = new BN(roundedScaledDecimal.toFixed());\n return new Fraction(scaledValue);\n }\n\n static fromBps(n: Decimal | number): Fraction {\n const decimal = new FractionDecimal(n).div(10000);\n return Fraction.fromDecimal(decimal);\n }\n\n static fromPercent(n: Decimal | number): Fraction {\n const decimal = new FractionDecimal(n).div(100);\n return Fraction.fromDecimal(decimal);\n }\n\n getValue(): BN {\n return this.valueSf;\n }\n\n gt(x: Fraction): boolean {\n return this.valueSf.gt(x.getValue());\n }\n\n lt(x: Fraction): boolean {\n return this.valueSf.lt(x.getValue());\n }\n\n gte(x: Fraction): boolean {\n return this.valueSf.gte(x.getValue());\n }\n\n lte(x: Fraction): boolean {\n return this.valueSf.lte(x.getValue());\n }\n\n eq(x: Fraction): boolean {\n return this.valueSf.eq(x.getValue());\n }\n}\n\nexport const ZERO_FRACTION = new Fraction(new BN(0));\n\nexport function bfToDecimal(x: BigFractionBytes): Decimal {\n const bsf = x.value;\n const accSf = bsf.reduce(\n (acc, curr, i) => acc.add(curr.shln(i * 64)),\n new BN(0)\n );\n return new Fraction(accSf).toDecimal();\n}\n\n/**\n * Returns an integer {@link Decimal} nearest to the given one.\n *\n * NOTE: the `Decimal.round()` should actually be called `.trunc()` (by default, it uses floor rounding). In most cases,\n * we prefer the traditional behavior (as `Math.round()`).\n */\nfunction roundNearest(decimal: Decimal): Decimal {\n return decimal.toDecimalPlaces(0, Decimal.ROUND_HALF_CEIL);\n}\n\ninterface BigFractionBytes {\n value: Array<BN>;\n padding: Array<BN>;\n}\n","/**\n * Kamino Lending Protocol - Interest Rate Utilities\n *\n * Provides utilities for calculating interest rates, reserve metrics, and curve generation\n * for the Kamino lending protocol.\n *\n * Extracted all needed functions & constants out of their SDK\n */\n\nimport {\n ONE_HUNDRED_PCT_IN_BPS,\n SLOTS_PER_YEAR,\n SLOTS_PER_SECOND,\n DEFAULT_RECENT_SLOT_DURATION_MS,\n} from \"../../constants\";\nimport { CurvePointFields, ReserveRaw } from \"../../types\";\nimport Decimal from \"decimal.js\";\nimport { Fraction } from \"../../classes\";\nimport * as vendor from \"../../..\";\n\n// =============================================================================\n// INTERFACES\n// =============================================================================\n\nexport interface InterestRateCurvePoint {\n utilization: number; // 0-100 percentage\n borrowAPY: number; // percentage\n supplyAPY: number; // percentage\n}\n\nexport interface KaminoReserveCurveData {\n reserveAddress: string;\n curvePoints: InterestRateCurvePoint[];\n}\n\n// =============================================================================\n// CORE MATH UTILITIES\n// =============================================================================\n\n/**\n * Linear interpolation between two points\n */\nexport const interpolateLinear = (\n x: number,\n x0: number,\n y0: number,\n x1: number,\n y1: number\n): number => {\n return y0 + ((x - x0) * (y1 - y0)) / (x1 - x0);\n};\n\n/**\n * Calculate borrow rate from utilization using interest rate curve\n * @param currentUtilization - Current utilization ratio (0-1)\n * @param curve - Array of [utilization, rate] points\n * @returns Borrow rate for the given utilization\n */\nexport const getBorrowRate = (\n currentUtilization: number,\n curve: [number, number][]\n): number => {\n let [x0, y0, x1, y1] = [0, 0, 0, 0];\n\n if (currentUtilization > 1) {\n currentUtilization = 1;\n }\n\n for (let i = 1; i < curve.length; i++) {\n const currentPoint = curve[i];\n const previousPoint = curve[i - 1];\n\n if (!currentPoint || !previousPoint) {\n continue;\n }\n\n const [pointUtilization, pointRate] = currentPoint;\n if (pointUtilization === currentUtilization) {\n return pointRate;\n }\n\n if (currentUtilization <= pointUtilization) {\n x0 = previousPoint[0];\n y0 = previousPoint[1];\n x1 = currentPoint[0];\n y1 = currentPoint[1];\n break;\n }\n }\n\n if (x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n const lastPoint = curve[curve.length - 1];\n return lastPoint ? lastPoint[1] : 0;\n }\n\n return interpolateLinear(currentUtilization, x0, y0, x1, y1);\n};\n\n// =============================================================================\n// APR/APY CONVERSIONS\n// =============================================================================\n\n/**\n * Convert APR to APY using compound interest formula\n * APY = (1 + APR/n)^n - 1, where n = SLOTS_PER_YEAR\n * @param apr - Annual Percentage Rate as decimal (e.g., 0.05 for 5%)\n * @returns Annual Percentage Yield as decimal\n */\nexport function calculateAPYFromAPR(apr: number): number {\n return Math.pow(1 + apr / SLOTS_PER_YEAR, SLOTS_PER_YEAR) - 1;\n}\n\n// =============================================================================\n// RESERVE SUPPLY & UTILIZATION\n// =============================================================================\n\n/**\n * Calculate total supply of a reserve\n * Formula: available liquidity + borrowed - protocol fees - referrer fees\n * @param reserve - The Kamino reserve\n * @returns Total supply in lamports\n */\nexport function getTotalSupply(reserve: ReserveRaw): Decimal {\n const liquidityAvailableAmount = new Decimal(\n reserve.liquidity.availableAmount.toString()\n );\n const borrowedAmount = new Fraction(\n reserve.liquidity.borrowedAmountSf\n ).toDecimal();\n const accumulatedProtocolFee = new Fraction(\n reserve.liquidity.accumulatedProtocolFeesSf\n ).toDecimal();\n const accumulatedReferrerFees = new Fraction(\n reserve.liquidity.accumulatedReferrerFeesSf\n ).toDecimal();\n const pendingReferrerFees = new Fraction(\n reserve.liquidity.pendingReferrerFeesSf\n ).toDecimal();\n\n return liquidityAvailableAmount\n .add(borrowedAmount)\n .sub(accumulatedProtocolFee)\n .sub(accumulatedReferrerFees)\n .sub(pendingReferrerFees);\n}\n\n/**\n * Calculate utilization ratio of a reserve\n * Formula: total borrowed / total supply\n * @param reserve - The Kamino reserve\n * @returns Utilization ratio (0-1, e.g., 0.75 = 75% utilized)\n */\nexport function calculateUtilizationRatio(reserve: ReserveRaw): number {\n const totalBorrows = new Fraction(\n reserve.liquidity.borrowedAmountSf\n ).toDecimal();\n const totalSupply = getTotalSupply(reserve);\n if (totalSupply.eq(0)) {\n return 0;\n }\n return totalBorrows.dividedBy(totalSupply).toNumber();\n}\n\n// =============================================================================\n// SLOT DURATION & ADJUSTMENT\n// =============================================================================\n\n/**\n * Calculate slot adjustment factor based on recent slot duration\n * Used to adjust rates based on actual blockchain performance\n * @param recentSlotDurationMs - Recent slot duration in milliseconds\n * @returns Slot adjustment factor\n */\nexport function slotAdjustmentFactor(\n recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n return 1000 / SLOTS_PER_SECOND / recentSlotDurationMs;\n}\n\n/**\n * Calculate slot adjustment factor (1:1 with KaminoReserve implementation)\n * Source: klend-sdk/src/classes/reserve.ts line 672\n */\nexport function calculateSlotAdjustmentFactor(\n reserve: ReserveRaw,\n recentSlotDurationMs: number\n): number {\n return 1000 / vendor.SLOTS_PER_SECOND / recentSlotDurationMs;\n}\n\n// =============================================================================\n// RATE CALCULATIONS\n// =============================================================================\n\n/**\n * Calculate estimated borrow rate for a reserve\n * @param reserve - The reserve\n * @param recentSlotDurationMs - Recent slot duration (optional)\n * @returns Borrow rate as decimal (e.g., 0.05 = 5%)\n */\nexport function calculateEstimatedBorrowRate(\n reserve: ReserveRaw,\n recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n const slotAdjFactor = slotAdjustmentFactor(recentSlotDurationMs);\n const currentUtilization = calculateUtilizationRatio(reserve);\n const curve = truncateBorrowCurve(reserve.config.borrowRateCurve.points);\n return getBorrowRate(currentUtilization, curve) * slotAdjFactor;\n}\n\n/**\n * Calculate estimated supply rate for a reserve\n * Formula: borrow rate × utilization × (1 - protocol take rate)\n * @param reserve - The reserve\n * @param recentSlotDurationMs - Recent slot duration (optional)\n * @returns Supply rate as decimal (e.g., 0.03 = 3%)\n */\nexport function calculateEstimatedSupplyRate(\n reserve: ReserveRaw,\n recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n const borrowRate = calculateEstimatedBorrowRate(\n reserve,\n recentSlotDurationMs\n );\n const currentUtilization = calculateUtilizationRatio(reserve);\n const protocolTakeRatePct = 1 - reserve.config.protocolTakeRatePct / 100;\n\n return borrowRate * currentUtilization * protocolTakeRatePct;\n}\n\n/**\n * Calculate supply APY for a reserve\n * APY includes compounding, making it higher than APR\n * Matches Kamino SDK's reserve.totalSupplyAPY()\n * @param reserve - The Kamino reserve\n * @param recentSlotDurationMs - Recent slot duration (defaults to 450ms)\n * @returns Supply APY as decimal (e.g., 0.0512 = 5.12% APY)\n */\nexport function calculateSupplyAPY(\n reserve: ReserveRaw,\n recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n const currentUtilization = calculateUtilizationRatio(reserve);\n const borrowRate = calculateEstimatedBorrowRate(\n reserve,\n recentSlotDurationMs\n );\n const protocolTakeRatePct = 1 - reserve.config.protocolTakeRatePct / 100;\n return calculateAPYFromAPR(\n currentUtilization * borrowRate * protocolTakeRatePct\n );\n}\n\nexport function scaledSupplies(state: ReserveRaw): [Decimal, Decimal] {\n const liqMintDecimals = new Decimal(state.liquidity.mintDecimals.toString());\n const totalSupplyLamports = getTotalSupply(state);\n const mintTotalSupplyLam = new Decimal(\n state.collateral.mintTotalSupply.toString()\n );\n\n const liqScale = new Decimal(10).pow(liqMintDecimals);\n const collScale = new Decimal(10).pow(liqMintDecimals);\n\n const totalSupply = totalSupplyLamports.div(liqScale);\n const totalCollateral = mintTotalSupplyLam.div(collScale);\n\n return [totalSupply, totalCollateral];\n}\n\n// =============================================================================\n// CURVE PROCESSING\n// =============================================================================\n\n/**\n * Convert raw curve points to normalized [utilization, rate] pairs\n * Truncates curve at 100% utilization\n */\nexport const truncateBorrowCurve = (\n points: CurvePointFields[]\n): [number, number][] => {\n const curve: [number, number][] = [];\n for (const { utilizationRateBps, borrowRateBps } of points) {\n curve.push([\n utilizationRateBps / ONE_HUNDRED_PCT_IN_BPS,\n borrowRateBps / ONE_HUNDRED_PCT_IN_BPS,\n ]);\n\n if (utilizationRateBps === ONE_HUNDRED_PCT_IN_BPS) {\n break;\n }\n }\n return curve;\n};\n\n/**\n * Get fixed host interest rate from reserve config (1:1 with Kamino SDK)\n * Source: klend-sdk/src/classes/reserve.ts line 209\n */\nexport function getFixedHostInterestRate(reserve: ReserveRaw): number {\n return reserve.config.hostFixedInterestRateBps / 10_000;\n}\n\n/**\n * Get protocol take rate percentage from reserve config\n */\nexport function getProtocolTakeRatePct(reserve: ReserveRaw): number {\n return 1 - reserve.config.protocolTakeRatePct / 100;\n}\n\n// =============================================================================\n// CURVE GENERATION\n// =============================================================================\n\n/**\n * Generate complete interest rate curve for a reserve\n * Creates 101 data points from 0% to 100% utilization\n * @param curvePoints - Raw curve configuration from reserve\n * @param slotAdjustmentFactor - Adjustment factor for current slot duration\n * @param fixedHostInterestRate - Fixed rate added to all borrow rates\n * @param protocolTakeRatePct - Percentage kept by depositors (1 - protocol fee)\n * @returns Array of curve points with utilization, borrow APY, and supply APY\n */\nexport function generateKaminoReserveCurve(\n curvePoints: CurvePointFields[],\n slotAdjustmentFactor: number,\n fixedHostInterestRate: number,\n protocolTakeRatePct: number\n): InterestRateCurvePoint[] {\n if (curvePoints.length === 0) {\n return [];\n }\n\n const curve = truncateBorrowCurve(curvePoints);\n\n return Array.from({ length: 101 }, (_, i) => {\n const utilization = i / 100;\n\n // Calculate base borrow rate and add fixed host interest\n const baseBorrowRate =\n getBorrowRate(utilization, curve) * slotAdjustmentFactor;\n const borrowAPR = baseBorrowRate + fixedHostInterestRate;\n\n // Calculate supply APR (utilization × borrowAPR × protocolTakeRate)\n const supplyAPR = utilization * borrowAPR * protocolTakeRatePct;\n\n // Convert to APY with compounding\n const borrowAPY = calculateAPYFromAPR(borrowAPR);\n const supplyAPY = calculateAPYFromAPR(supplyAPR);\n\n return {\n utilization: utilization * 100,\n borrowAPY: borrowAPY * 100,\n supplyAPY: supplyAPY * 100,\n };\n });\n}\n","import Decimal from \"decimal.js\";\nimport { FarmStateRaw, ReserveRaw, RewardInfoFields } from \"../../types\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { getTotalSupply } from \"../klend/interest-rate.utils\";\n\nexport function getRewardPerTimeUnitSecond(reward: RewardInfoFields) {\n const now = new Decimal(new Date().getTime()).div(1000);\n let rewardPerTimeUnitSecond = new Decimal(0);\n for (let i = 0; i < reward.rewardScheduleCurve.points.length - 1; i++) {\n const currentPoint = reward.rewardScheduleCurve.points[i];\n const nextPoint = reward.rewardScheduleCurve.points[i + 1];\n\n if (!currentPoint || !nextPoint) {\n continue;\n }\n\n const { tsStart: tsStartThisPoint, rewardPerTimeUnit } = currentPoint;\n const { tsStart: tsStartNextPoint } = nextPoint;\n\n const thisPeriodStart = new Decimal(tsStartThisPoint.toString());\n const thisPeriodEnd = new Decimal(tsStartNextPoint.toString());\n const rps = new Decimal(rewardPerTimeUnit.toString());\n if (thisPeriodStart <= now && thisPeriodEnd >= now) {\n rewardPerTimeUnitSecond = rps;\n break;\n } else if (thisPeriodStart > now && thisPeriodEnd > now) {\n rewardPerTimeUnitSecond = rps;\n break;\n }\n }\n\n const rewardTokenDecimals = reward.token.decimals.toNumber();\n const rewardAmountPerUnitDecimals = new Decimal(10).pow(\n reward.rewardsPerSecondDecimals.toString()\n );\n const rewardAmountPerUnitLamports = new Decimal(10).pow(\n rewardTokenDecimals.toString()\n );\n\n const rpsAdjusted = new Decimal(rewardPerTimeUnitSecond.toString())\n .div(rewardAmountPerUnitDecimals)\n .div(rewardAmountPerUnitLamports);\n\n return rewardPerTimeUnitSecond ? rpsAdjusted : new Decimal(0);\n}\n\nexport async function getReserveRewardsApy(\n priceByMint: Record<string, number>,\n farmState: FarmStateRaw,\n reserveState: ReserveRaw\n) {\n const rewardApys: {\n rewardApy: Decimal;\n rewardInfo: RewardInfoFields;\n rewardApr: Decimal;\n }[] = [];\n\n for (const rewardInfo of farmState!.rewardInfos.filter(\n (x) => x.token.mint !== new PublicKey(\"11111111111111111111111111111111\")\n )) {\n // Skip if we don't have prices for reserve or reward token\n const reserveMint = reserveState.liquidity.mintPubkey.toString();\n const rewardMint = rewardInfo.token.mint.toString();\n\n const reservePrice = priceByMint[reserveMint];\n const rewardPrice = priceByMint[rewardMint];\n\n // Check for undefined or null (but allow 0 as a valid price)\n if (\n reservePrice === undefined ||\n reservePrice === null ||\n rewardPrice === undefined ||\n rewardPrice === null\n ) {\n continue;\n }\n\n const { apy, apr } = calculateRewardApy(\n priceByMint,\n reserveState,\n rewardInfo\n );\n rewardApys.push({ rewardApy: apy, rewardInfo, rewardApr: apr });\n }\n\n return rewardApys;\n}\n\nexport function calculateRewardApy(\n priceByMint: Record<string, number>,\n reserve: ReserveRaw,\n rewardInfo: RewardInfoFields\n) {\n const decimals = reserve.liquidity.mintDecimals.toNumber();\n const totalSupply = getTotalSupply(reserve);\n const mintAddress = reserve.liquidity.mintPubkey;\n const totalAmount = lamportsToNumberDecimal(totalSupply, decimals);\n const mintPrice = priceByMint[mintAddress.toString()] ?? 0;\n const totalValue = totalAmount.mul(mintPrice);\n const rewardPerTimeUnitSecond = getRewardPerTimeUnitSecond(rewardInfo);\n const rewardsInYear = rewardPerTimeUnitSecond.mul(60 * 60 * 24 * 365);\n const rewardTokenPrice = priceByMint[rewardInfo.token.mint.toString()] ?? 0;\n const rewardsInYearValue = rewardsInYear.mul(rewardTokenPrice);\n const apr = rewardsInYearValue.div(totalValue);\n return { apr, apy: aprToApy(apr, 1) };\n}\n\nfunction aprToApy(apr: Decimal, compoundPeriods: number) {\n // if periods = 365 => daily compound\n // periods = 1 => yearly compound\n // (1 + apr / periods) ** periods - 1;\n return new Decimal(1)\n .add(apr.div(compoundPeriods))\n .pow(compoundPeriods)\n .sub(1);\n}\n\nfunction lamportsToNumberDecimal(\n amount: Decimal.Value,\n decimals: number\n): Decimal {\n const factor = 10 ** decimals;\n return new Decimal(amount).div(factor);\n}\n","import { FarmStateJSON, FarmStateRaw } from \"../../types\";\n\nexport function farmRawToDto(farmRaw: FarmStateRaw): FarmStateJSON {\n return {\n farmAdmin: farmRaw.farmAdmin.toBase58(),\n globalConfig: farmRaw.globalConfig.toBase58(),\n token: {\n mint: farmRaw.token.mint.toBase58(),\n decimals: farmRaw.token.decimals.toString(),\n tokenProgram: farmRaw.token.tokenProgram.toBase58(),\n padding: farmRaw.token.padding.map((p) => p.toString()),\n },\n rewardInfos: farmRaw.rewardInfos.map((item) => ({\n token: {\n mint: item.token.mint.toBase58(),\n decimals: item.token.decimals.toString(),\n tokenProgram: item.token.tokenProgram.toBase58(),\n padding: item.token.padding.map((p) => p.toString()),\n },\n rewardsVault: item.rewardsVault.toBase58(),\n rewardsAvailable: item.rewardsAvailable.toString(),\n rewardScheduleCurve: {\n points: item.rewardScheduleCurve.points.map((p) => ({\n tsStart: p.tsStart.toString(),\n rewardPerTimeUnit: p.rewardPerTimeUnit.toString(),\n })),\n },\n minClaimDurationSeconds: item.minClaimDurationSeconds.toString(),\n lastIssuanceTs: item.lastIssuanceTs.toString(),\n rewardsIssuedUnclaimed: item.rewardsIssuedUnclaimed.toString(),\n rewardsIssuedCumulative: item.rewardsIssuedCumulative.toString(),\n rewardPerShareScaled: item.rewardPerShareScaled.toString(),\n placeholder0: item.placeholder0.toString(),\n rewardType: item.rewardType,\n rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,\n padding0: item.padding0,\n padding1: item.padding1.map((p) => p.toString()),\n })),\n numRewardTokens: farmRaw.numRewardTokens.toString(),\n numUsers: farmRaw.numUsers.toString(),\n totalStakedAmount: farmRaw.totalStakedAmount.toString(),\n farmVault: farmRaw.farmVault.toBase58(),\n farmVaultsAuthority: farmRaw.farmVaultsAuthority.toBase58(),\n farmVaultsAuthorityBump: farmRaw.farmVaultsAuthorityBump.toString(),\n delegateAuthority: farmRaw.delegateAuthority.toBase58(),\n timeUnit: farmRaw.timeUnit,\n isFarmFrozen: farmRaw.isFarmFrozen,\n isFarmDelegated: farmRaw.isFarmDelegated,\n padding0: farmRaw.padding0,\n withdrawAuthority: farmRaw.withdrawAuthority.toBase58(),\n depositWarmupPeriod: farmRaw.depositWarmupPeriod,\n withdrawalCooldownPeriod: farmRaw.withdrawalCooldownPeriod,\n totalActiveStakeScaled: farmRaw.totalActiveStakeScaled.toString(),\n totalPendingStakeScaled: farmRaw.totalPendingStakeScaled.toString(),\n totalPendingAmount: farmRaw.totalPendingAmount.toString(),\n slashedAmountCurrent: farmRaw.slashedAmountCurrent.toString(),\n slashedAmountCumulative: farmRaw.slashedAmountCumulative.toString(),\n slashedAmountSpillAddress: farmRaw.slashedAmountSpillAddress.toBase58(),\n lockingMode: farmRaw.lockingMode.toString(),\n lockingStartTimestamp: farmRaw.lockingStartTimestamp.toString(),\n lockingDuration: farmRaw.lockingDuration.toString(),\n lockingEarlyWithdrawalPenaltyBps:\n farmRaw.lockingEarlyWithdrawalPenaltyBps.toString(),\n depositCapAmount: farmRaw.depositCapAmount.toString(),\n scopePrices: farmRaw.scopePrices.toBase58(),\n scopeOraclePriceId: farmRaw.scopeOraclePriceId.toString(),\n scopeOracleMaxAge: farmRaw.scopeOracleMaxAge.toString(),\n pendingFarmAdmin: farmRaw.pendingFarmAdmin.toBase58(),\n strategyId: farmRaw.strategyId.toBase58(),\n delegatedRpsAdmin: farmRaw.delegatedRpsAdmin.toBase58(),\n vaultId: farmRaw.vaultId.toBase58(),\n secondDelegatedAuthority: farmRaw.secondDelegatedAuthority.toBase58(),\n padding: farmRaw.padding.map((item) => item.toString()),\n };\n}\n","import { struct, publicKey, u64, array, u8, u128, u32 } from \"@coral-xyz/borsh\";\n\nimport { FarmStateRaw } from \"../../types/farm/raw-farm.types\";\nimport { FarmStateJSON } from \"../../types/farm/dto-farm.types\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nconst farmDiscriminator = Buffer.from([198, 102, 216, 74, 63, 66, 163, 190]);\n\nconst farmLayout = struct<FarmStateRaw>([\n publicKey(\"farmAdmin\"),\n publicKey(\"globalConfig\"),\n struct(\n [\n publicKey(\"mint\"),\n u64(\"decimals\"),\n publicKey(\"tokenProgram\"),\n array(u64(), 6, \"padding\"),\n ],\n \"token\"\n ),\n array(\n struct([\n struct(\n [\n publicKey(\"mint\"),\n u64(\"decimals\"),\n publicKey(\"tokenProgram\"),\n array(u64(), 6, \"padding\"),\n ],\n \"token\"\n ),\n publicKey(\"rewardsVault\"),\n u64(\"rewardsAvailable\"),\n struct(\n [\n array(\n struct([u64(\"tsStart\"), u64(\"rewardPerTimeUnit\")]),\n 20,\n \"points\"\n ),\n ],\n \"rewardScheduleCurve\"\n ),\n u64(\"minClaimDurationSeconds\"),\n u64(\"lastIssuanceTs\"),\n u64(\"rewardsIssuedUnclaimed\"),\n u64(\"rewardsIssuedCumulative\"),\n u128(\"rewardPerShareScaled\"),\n u64(\"placeholder0\"),\n u8(\"rewardType\"),\n u8(\"rewardsPerSecondDecimals\"),\n array(u8(), 6, \"padding0\"),\n array(u64(), 20, \"padding1\"),\n ]),\n 10,\n \"rewardInfos\"\n ),\n u64(\"numRewardTokens\"),\n u64(\"numUsers\"),\n u64(\"totalStakedAmount\"),\n publicKey(\"farmVault\"),\n publicKey(\"farmVaultsAuthority\"),\n u64(\"farmVaultsAuthorityBump\"),\n publicKey(\"delegateAuthority\"),\n u8(\"timeUnit\"),\n u8(\"isFarmFrozen\"),\n u8(\"isFarmDelegated\"),\n array(u8(), 5, \"padding0\"),\n publicKey(\"withdrawAuthority\"),\n u32(\"depositWarmupPeriod\"),\n u32(\"withdrawalCooldownPeriod\"),\n u128(\"totalActiveStakeScaled\"),\n u128(\"totalPendingStakeScaled\"),\n u64(\"totalPendingAmount\"),\n u64(\"slashedAmountCurrent\"),\n u64(\"slashedAmountCumulative\"),\n publicKey(\"slashedAmountSpillAddress\"),\n u64(\"lockingMode\"),\n u64(\"lockingStartTimestamp\"),\n u64(\"lockingDuration\"),\n u64(\"lockingEarlyWithdrawalPenaltyBps\"),\n u64(\"depositCapAmount\"),\n publicKey(\"scopePrices\"),\n u64(\"scopeOraclePriceId\"),\n u64(\"scopeOracleMaxAge\"),\n publicKey(\"pendingFarmAdmin\"),\n publicKey(\"strategyId\"),\n publicKey(\"delegatedRpsAdmin\"),\n publicKey(\"vaultId\"),\n publicKey(\"secondDelegatedAuthority\"),\n array(u64(), 74, \"padding\"),\n]);\n\nexport function decodeFarmDataRaw(data: Buffer): FarmStateRaw {\n if (!data.slice(0, 8).equals(farmDiscriminator)) {\n throw new Error(\"invalid account discriminator\");\n }\n\n const dec = farmLayout.decode(data.slice(8));\n return dec;\n}\n\nexport function dtoToFarmRaw(dto: FarmStateJSON): FarmStateRaw {\n return {\n farmAdmin: new PublicKey(dto.farmAdmin),\n globalConfig: new PublicKey(dto.globalConfig),\n token: {\n mint: new PublicKey(dto.token.mint),\n decimals: new BN(dto.token.decimals),\n tokenProgram: new PublicKey(dto.token.tokenProgram),\n padding: dto.token.padding.map((item) => new BN(item)),\n },\n rewardInfos: dto.rewardInfos.map((item) => ({\n token: {\n mint: new PublicKey(item.token.mint),\n decimals: new BN(item.token.decimals),\n tokenProgram: new PublicKey(item.token.tokenProgram),\n padding: item.token.padding.map((p) => new BN(p)),\n },\n rewardsVault: new PublicKey(item.rewardsVault),\n rewardsAvailable: new BN(item.rewardsAvailable),\n rewardScheduleCurve: {\n points: item.rewardScheduleCurve.points.map((p) => ({\n tsStart: new BN(p.tsStart),\n rewardPerTimeUnit: new BN(p.rewardPerTimeUnit),\n })),\n },\n minClaimDurationSeconds: new BN(item.minClaimDurationSeconds),\n lastIssuanceTs: new BN(item.lastIssuanceTs),\n rewardsIssuedUnclaimed: new BN(item.rewardsIssuedUnclaimed),\n rewardsIssuedCumulative: new BN(item.rewardsIssuedCumulative),\n rewardPerShareScaled: new BN(item.rewardPerShareScaled),\n placeholder0: new BN(item.placeholder0),\n rewardType: item.rewardType,\n rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,\n padding0: item.padding0,\n padding1: item.padding1.map((p) => new BN(p)),\n })),\n numRewardTokens: new BN(dto.numRewardTokens),\n numUsers: new BN(dto.numUsers),\n totalStakedAmount: new BN(dto.totalStakedAmount),\n farmVault: new PublicKey(dto.farmVault),\n farmVaultsAuthority: new PublicKey(dto.farmVaultsAuthority),\n farmVaultsAuthorityBump: new BN(dto.farmVaultsAuthorityBump),\n delegateAuthority: new PublicKey(dto.delegateAuthority),\n timeUnit: dto.timeUnit,\n isFarmFrozen: dto.isFarmFrozen,\n isFarmDelegated: dto.isFarmDelegated,\n padding0: dto.padding0,\n withdrawAuthority: new PublicKey(dto.withdrawAuthority),\n depositWarmupPeriod: dto.depositWarmupPeriod,\n withdrawalCooldownPeriod: dto.withdrawalCooldownPeriod,\n totalActiveStakeScaled: new BN(dto.totalActiveStakeScaled),\n totalPendingStakeScaled: new BN(dto.totalPendingStakeScaled),\n totalPendingAmount: new BN(dto.totalPendingAmount),\n slashedAmountCurrent: new BN(dto.slashedAmountCurrent),\n slashedAmountCumulative: new BN(dto.slashedAmountCumulative),\n slashedAmountSpillAddress: new PublicKey(dto.slashedAmountSpillAddress),\n lockingMode: new BN(dto.lockingMode),\n lockingStartTimestamp: new BN(dto.lockingStartTimestamp),\n lockingDuration: new BN(dto.lockingDuration),\n lockingEarlyWithdrawalPenaltyBps: new BN(\n dto.lockingEarlyWithdrawalPenaltyBps\n ),\n depositCapAmount: new BN(dto.depositCapAmount),\n scopePrices: new PublicKey(dto.scopePrices),\n scopeOraclePriceId: new BN(dto.scopeOraclePriceId),\n scopeOracleMaxAge: new BN(dto.scopeOracleMaxAge),\n pendingFarmAdmin: new PublicKey(dto.pendingFarmAdmin),\n strategyId: new PublicKey(dto.strategyId),\n delegatedRpsAdmin: new PublicKey(dto.delegatedRpsAdmin),\n vaultId: new PublicKey(dto.vaultId),\n secondDelegatedAuthority: new PublicKey(dto.secondDelegatedAuthority),\n padding: dto.padding.map((item) => new BN(item)),\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/vendor/pyth_legacy/readBig.ts","../src/vendor/pyth_legacy/index.ts","../src/vendor/pyth_push_oracle/index.ts","../src/constants/program-keys.consts.ts","../src/vendor/spl/types/account.types.ts","../src/vendor/spl/errors.ts","../src/vendor/spl/utils/multisig.utils.ts","../src/vendor/spl/constants.ts","../src/vendor/spl/utils/account.utils.ts","../src/vendor/spl/utils/ata.utils.ts","../src/vendor/spl/utils/instruction.utils.ts","../src/vendor/spl/utils/mint.utils.ts","../src/vendor/spl/instructions.ts","../src/vendor/single-spl-pool/index.ts","../src/vendor/rpc-get-stake/index.ts","../src/vendor/switchboard_pull/idl.json","../src/vendor/switchboard_pull/index.ts","../src/vendor/klend/constants.ts","../src/vendor/klend/instructions.ts","../src/vendor/klend/klend.service.ts","../src/vendor/klend/utils/klend/serialize.utils.ts","../src/vendor/klend/idl/klend.json","../src/vendor/klend/idl/kfarms.json","../src/vendor/klend/idl/index.ts","../src/vendor/klend/utils/klend/deserialize.utils.ts","../src/vendor/klend/utils/klend/derive.utils.ts","../src/vendor/klend/classes/fraction.ts","../src/vendor/klend/utils/klend/interest-rate.utils.ts","../src/vendor/klend/utils/farms/reward.utils.ts","../src/vendor/klend/utils/farms/serialize.utils.ts","../src/vendor/klend/utils/farms/deserialize.utils.ts"],"names":["PriceStatus","CorpAction","AccountType","PriceType","parsePriceInfo","PublicKey","AccountState","SplAccountType","struct","publicKey","u8","ExtensionType","Buffer","u32","u64","bool","TokenInstruction","STAKE_CONFIG_ID","MINT_SIZE","SystemProgram","SYSVAR_RENT_PUBKEY","TransactionInstruction","BorshCoder","BN","Decimal","slotAdjustmentFactor","array","u128"],"mappings":"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AA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IA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","file":"vendor.js","sourcesContent":["import { Buffer } from \"buffer\";\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L758\nconst ERR_BUFFER_OUT_OF_BOUNDS = () =>\n new Error(\"Attempt to access memory outside buffer bounds\");\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L968\nconst ERR_INVALID_ARG_TYPE = (name: string, expected: string, actual: any) =>\n new Error(\n `The \"${name}\" argument must be of type ${expected}. Received ${actual}`\n );\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L1262\nconst ERR_OUT_OF_RANGE = (str: string, range: string, received: number) =>\n new Error(\n `The value of \"${str} is out of range. It must be ${range}. Received ${received}`\n );\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/validators.js#L127-L130\nfunction validateNumber(value: any, name: string) {\n if (typeof value !== \"number\")\n throw ERR_INVALID_ARG_TYPE(name, \"number\", value);\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L68-L80\nfunction boundsError(value: number, length: number) {\n if (Math.floor(value) !== value) {\n validateNumber(value, \"offset\");\n throw ERR_OUT_OF_RANGE(\"offset\", \"an integer\", value);\n }\n\n if (length < 0) throw ERR_BUFFER_OUT_OF_BOUNDS();\n\n throw ERR_OUT_OF_RANGE(\"offset\", `>= 0 and <= ${length}`, value);\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L129-L145\nexport function readBigInt64LE(buffer: Buffer, offset = 0): bigint {\n validateNumber(offset, \"offset\");\n const first = buffer[offset];\n const last = buffer[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset, buffer.length - 8);\n // tslint:disable-next-line:no-bitwise\n const val =\n buffer[offset + 4]! +\n buffer[offset + 5]! * 2 ** 8 +\n buffer[offset + 6]! * 2 ** 16 +\n (last! << 24); // Overflow\n return (\n (BigInt(val) << BigInt(32)) + // tslint:disable-line:no-bitwise\n BigInt(\n first! +\n buffer[++offset]! * 2 ** 8 +\n buffer[++offset]! * 2 ** 16 +\n buffer[++offset]! * 2 ** 24\n )\n );\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L89-L107\nexport function readBigUInt64LE(buffer: Buffer, offset = 0): bigint {\n validateNumber(offset, \"offset\");\n const first = buffer[offset];\n const last = buffer[offset + 7];\n if (first === undefined || last === undefined)\n boundsError(offset, buffer.length - 8);\n\n const lo =\n first! +\n buffer[++offset]! * 2 ** 8 +\n buffer[++offset]! * 2 ** 16 +\n buffer[++offset]! * 2 ** 24;\n\n const hi =\n buffer[++offset]! +\n buffer[++offset]! * 2 ** 8 +\n buffer[++offset]! * 2 ** 16 +\n last! * 2 ** 24;\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32)); // tslint:disable-line:no-bitwise\n}\n","import { readBigInt64LE, readBigUInt64LE } from \"./readBig\";\nimport { PublicKey } from \"@solana/web3.js\";\n\n/** Number of slots that can pass before a publisher's price is no longer included in the aggregate. */\nexport const MAX_SLOT_DIFFERENCE = 25;\nconst empty32Buffer = Buffer.alloc(32);\nconst PKorNull = (data: Buffer) => (data.equals(empty32Buffer) ? null : new PublicKey(data));\n\nexport interface Price {\n priceComponent: bigint;\n price: number;\n confidenceComponent: bigint;\n confidence: number;\n status: PriceStatus;\n corporateAction: CorpAction;\n publishSlot: number;\n}\n\nexport enum PriceStatus {\n Unknown,\n Trading,\n Halted,\n Auction,\n Ignored,\n}\n\nexport enum CorpAction {\n NoCorpAct,\n}\n\nconst parsePriceInfo = (data: Buffer, exponent: number): Price => {\n // aggregate price\n const priceComponent = readBigInt64LE(data, 0);\n const price = Number(priceComponent) * 10 ** exponent;\n // aggregate confidence\n const confidenceComponent = readBigUInt64LE(data, 8);\n const confidence = Number(confidenceComponent) * 10 ** exponent;\n // aggregate status\n const status: PriceStatus = data.readUInt32LE(16);\n // aggregate corporate action\n const corporateAction: CorpAction = data.readUInt32LE(20);\n // aggregate publish slot. It is converted to number to be consistent with Solana's library interface (Slot there is number)\n const publishSlot = Number(readBigUInt64LE(data, 24));\n return {\n priceComponent,\n price,\n confidenceComponent,\n confidence,\n status,\n corporateAction,\n publishSlot,\n };\n};\n\nexport interface PriceData extends Base {\n priceType: PriceType;\n exponent: number;\n numComponentPrices: number;\n numQuoters: number;\n lastSlot: bigint;\n validSlot: bigint;\n emaPrice: Ema;\n emaConfidence: Ema;\n timestamp: bigint;\n minPublishers: number;\n drv2: number;\n drv3: number;\n drv4: number;\n productAccountKey: PublicKey;\n nextPriceAccountKey: PublicKey | null;\n previousSlot: bigint;\n previousPriceComponent: bigint;\n previousPrice: number;\n previousConfidenceComponent: bigint;\n previousConfidence: number;\n previousTimestamp: bigint;\n priceComponents: PriceComponent[];\n aggregate: Price;\n // The current price and confidence and status. The typical use of this interface is to consume these three fields.\n // If undefined, Pyth does not currently have price information for this product. This condition can\n // happen for various reasons (e.g., US equity market is closed, or insufficient publishers), and your\n // application should handle it gracefully. Note that other raw price information fields (such as\n // aggregate.price) may be defined even if this is undefined; you most likely should not use those fields,\n // as their value can be arbitrary when this is undefined.\n price: number | undefined;\n confidence: number | undefined;\n status: PriceStatus;\n}\n\nexport interface Base {\n magic: number;\n version: number;\n type: AccountType;\n size: number;\n}\n\nexport enum AccountType {\n Unknown,\n Mapping,\n Product,\n Price,\n Test,\n Permission,\n}\n\nexport enum PriceType {\n Unknown,\n Price,\n}\n\n/**\n * valueComponent = numerator / denominator\n * value = valueComponent * 10 ^ exponent (from PriceData)\n */\nexport interface Ema {\n valueComponent: bigint;\n value: number;\n numerator: bigint;\n denominator: bigint;\n}\n\nexport interface PriceComponent {\n publisher: PublicKey;\n aggregate: Price;\n latest: Price;\n}\n\n// Provide currentSlot when available to allow status to consider the case when price goes stale. It is optional because\n// it requires an extra request to get it when it is not available which is not always efficient.\nexport const parsePriceData = (data: Buffer, currentSlot?: number): PriceData => {\n // pyth magic number\n const magic = data.readUInt32LE(0);\n // program version\n const version = data.readUInt32LE(4);\n // account type\n const type = data.readUInt32LE(8);\n // price account size\n const size = data.readUInt32LE(12);\n // price or calculation type\n const priceType: PriceType = data.readUInt32LE(16);\n // price exponent\n const exponent = data.readInt32LE(20);\n // number of component prices\n const numComponentPrices = data.readUInt32LE(24);\n // number of quoters that make up aggregate\n const numQuoters = data.readUInt32LE(28);\n // slot of last valid (not unknown) aggregate price\n const lastSlot = readBigUInt64LE(data, 32);\n // valid on-chain slot of aggregate price\n const validSlot = readBigUInt64LE(data, 40);\n // exponential moving average price\n const emaPrice = parseEma(data.slice(48, 72), exponent);\n // exponential moving average confidence interval\n const emaConfidence = parseEma(data.slice(72, 96), exponent);\n // timestamp of the current price\n const timestamp = readBigInt64LE(data, 96);\n // minimum number of publishers for status to be TRADING\n const minPublishers = data.readUInt8(104);\n // space for future derived values\n const drv2 = data.readInt8(105);\n // space for future derived values\n const drv3 = data.readInt16LE(106);\n // space for future derived values\n const drv4 = data.readInt32LE(108);\n // product id / reference account\n const productAccountKey = new PublicKey(data.slice(112, 144));\n // next price account in list\n const nextPriceAccountKey = PKorNull(data.slice(144, 176));\n // valid slot of previous update\n const previousSlot = readBigUInt64LE(data, 176);\n // aggregate price of previous update\n const previousPriceComponent = readBigInt64LE(data, 184);\n const previousPrice = Number(previousPriceComponent) * 10 ** exponent;\n // confidence interval of previous update\n const previousConfidenceComponent = readBigUInt64LE(data, 192);\n const previousConfidence = Number(previousConfidenceComponent) * 10 ** exponent;\n // space for future derived values\n const previousTimestamp = readBigInt64LE(data, 200);\n const aggregate = parsePriceInfo(data.slice(208, 240), exponent);\n\n let status = aggregate.status;\n\n if (currentSlot && status === PriceStatus.Trading) {\n if (currentSlot - aggregate.publishSlot > MAX_SLOT_DIFFERENCE) {\n status = PriceStatus.Unknown;\n }\n }\n\n let price;\n let confidence;\n if (status === PriceStatus.Trading) {\n price = aggregate.price;\n confidence = aggregate.confidence;\n }\n\n // price components - up to 32\n const priceComponents: PriceComponent[] = [];\n let offset = 240;\n while (priceComponents.length < numComponentPrices) {\n const publisher = new PublicKey(data.slice(offset, offset + 32));\n offset += 32;\n const componentAggregate = parsePriceInfo(data.slice(offset, offset + 32), exponent);\n offset += 32;\n const latest = parsePriceInfo(data.slice(offset, offset + 32), exponent);\n offset += 32;\n priceComponents.push({ publisher, aggregate: componentAggregate, latest });\n }\n\n return {\n magic,\n version,\n type,\n size,\n priceType,\n exponent,\n numComponentPrices,\n numQuoters,\n lastSlot,\n validSlot,\n emaPrice,\n emaConfidence,\n timestamp,\n minPublishers,\n drv2,\n drv3,\n drv4,\n productAccountKey,\n nextPriceAccountKey,\n previousSlot,\n previousPriceComponent,\n previousPrice,\n previousConfidenceComponent,\n previousConfidence,\n previousTimestamp,\n aggregate,\n priceComponents,\n price,\n confidence,\n status,\n };\n};\n\nconst parseEma = (data: Buffer, exponent: number): Ema => {\n // current value of ema\n const valueComponent = readBigInt64LE(data, 0);\n const value = Number(valueComponent) * 10 ** exponent;\n // numerator state for next update\n const numerator = readBigInt64LE(data, 8);\n // denominator state for next update\n const denominator = readBigInt64LE(data, 16);\n return { valueComponent, value, numerator, denominator };\n};\n","import { Connection, PublicKey } from \"@solana/web3.js\";\nimport BigNumber from \"bignumber.js\";\nimport { deserialize } from \"borsh\";\nimport { PYTH_PRICE_CONF_INTERVALS } from \"../../constants\";\n\ntype PriceUpdateV2 = {\n writeAuthority: Buffer;\n verificationLevel: number;\n priceMessage: {\n feedId: Buffer;\n price: bigint;\n conf: bigint;\n exponent: number;\n publishTime: bigint;\n prevPublishTime: bigint;\n emaPrice: bigint;\n emaConf: bigint;\n };\n};\n\nconst priceUpdateV2Schema = {\n struct: {\n writeAuthority: {\n array: { type: \"u8\", len: 32 },\n },\n verificationLevel: \"u8\",\n priceMessage: {\n struct: {\n feedId: { array: { type: \"u8\", len: 32 } },\n price: \"i64\",\n conf: \"u64\",\n exponent: \"i32\",\n publishTime: \"i64\",\n prevPublishTime: \"i64\",\n emaPrice: \"i64\",\n emaConf: \"u64\",\n },\n },\n postedSlot: \"u64\",\n },\n};\n\nexport const parsePriceInfo = (data: Buffer): PriceUpdateV2 => {\n let decoded: PriceUpdateV2 = deserialize(priceUpdateV2Schema, data) as any;\n return decoded;\n};\n\nfunction capConfidenceInterval(\n price: BigNumber,\n confidence: BigNumber,\n maxConfidence: BigNumber\n): BigNumber {\n let maxConfidenceInterval = price.times(maxConfidence);\n\n return BigNumber.min(confidence, maxConfidenceInterval);\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const JUPITER_V6_PROGRAM: PublicKey = new PublicKey(\n \"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\"\n);\nexport const SINGLE_POOL_PROGRAM_ID: PublicKey = new PublicKey(\n \"SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE\"\n);\nexport const STAKE_PROGRAM_ID: PublicKey = new PublicKey(\n \"Stake11111111111111111111111111111111111111\"\n);\nexport const MPL_METADATA_PROGRAM_ID: PublicKey = new PublicKey(\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n);\nexport const SYSTEM_PROGRAM_ID: PublicKey = new PublicKey(\"11111111111111111111111111111111\");\nexport const SYSVAR_RENT_ID: PublicKey = new PublicKey(\n \"SysvarRent111111111111111111111111111111111\"\n);\nexport const SYSVAR_CLOCK_ID: PublicKey = new PublicKey(\n \"SysvarC1ock11111111111111111111111111111111\"\n);\nexport const SYSVAR_STAKE_HISTORY_ID: PublicKey = new PublicKey(\n \"SysvarStakeHistory1111111111111111111111111\"\n);\nexport const STAKE_CONFIG_ID: PublicKey = new PublicKey(\n \"StakeConfig11111111111111111111111111111111\"\n);\n","import { PublicKey } from \"@solana/web3.js\";\n\n/** Information about a token account */\nexport interface Account {\n /** Address of the account */\n address: PublicKey;\n /** Mint associated with the account */\n mint: PublicKey;\n /** Owner of the account */\n owner: PublicKey;\n /** Number of tokens the account holds */\n amount: bigint;\n /** Authority that can transfer tokens from the account */\n delegate: PublicKey | null;\n /** Number of tokens the delegate is authorized to transfer */\n delegatedAmount: bigint;\n /** True if the account is initialized */\n isInitialized: boolean;\n /** True if the account is frozen */\n isFrozen: boolean;\n /** True if the account is a native token account */\n isNative: boolean;\n /**\n * If the account is a native token account, it must be rent-exempt. The rent-exempt reserve is the amount that must\n * remain in the balance until the account is closed.\n */\n rentExemptReserve: bigint | null;\n /** Optional authority to close the account */\n closeAuthority: PublicKey | null;\n tlvData: Buffer;\n}\n\n/** Token account state as stored by the program */\nexport enum AccountState {\n Uninitialized = 0,\n Initialized = 1,\n Frozen = 2,\n}\n\n/** Token account as stored by the program */\nexport interface RawAccount {\n mint: PublicKey;\n owner: PublicKey;\n amount: bigint;\n delegateOption: 1 | 0;\n delegate: PublicKey;\n state: AccountState;\n isNativeOption: 1 | 0;\n isNative: bigint;\n delegatedAmount: bigint;\n closeAuthorityOption: 1 | 0;\n closeAuthority: PublicKey;\n}\n","/** Base class for errors */\nexport abstract class TokenError extends Error {\n constructor(message?: string) {\n super(message);\n }\n}\n\n/** Thrown if an account is not found at the expected address */\nexport class TokenAccountNotFoundError extends TokenError {\n name = \"TokenAccountNotFoundError\";\n}\n\n/** Thrown if a program state account is not a valid Account */\nexport class TokenInvalidAccountError extends TokenError {\n name = \"TokenInvalidAccountError\";\n}\n\n/** Thrown if a program state account is not owned by the expected token program */\nexport class TokenInvalidAccountOwnerError extends TokenError {\n name = \"TokenInvalidAccountOwnerError\";\n}\n\n/** Thrown if the byte length of an program state account doesn't match the expected size */\nexport class TokenInvalidAccountSizeError extends TokenError {\n name = \"TokenInvalidAccountSizeError\";\n}\n\n/** Thrown if the mint of a token account doesn't match the expected mint */\nexport class TokenInvalidMintError extends TokenError {\n name = \"TokenInvalidMintError\";\n}\n\n/** Thrown if the owner of a token account doesn't match the expected owner */\nexport class TokenInvalidOwnerError extends TokenError {\n name = \"TokenInvalidOwnerError\";\n}\n\n/** Thrown if the owner of a token account is a PDA (Program Derived Address) */\nexport class TokenOwnerOffCurveError extends TokenError {\n name = \"TokenOwnerOffCurveError\";\n}\n\n/** Thrown if an instruction's program is invalid */\nexport class TokenInvalidInstructionProgramError extends TokenError {\n name = \"TokenInvalidInstructionProgramError\";\n}\n\n/** Thrown if an instruction's keys are invalid */\nexport class TokenInvalidInstructionKeysError extends TokenError {\n name = \"TokenInvalidInstructionKeysError\";\n}\n\n/** Thrown if an instruction's data is invalid */\nexport class TokenInvalidInstructionDataError extends TokenError {\n name = \"TokenInvalidInstructionDataError\";\n}\n\n/** Thrown if an instruction's type is invalid */\nexport class TokenInvalidInstructionTypeError extends TokenError {\n name = \"TokenInvalidInstructionTypeError\";\n}\n\n/** Thrown if the program does not support the desired instruction */\nexport class TokenUnsupportedInstructionError extends TokenError {\n name = \"TokenUnsupportedInstructionError\";\n}\n","import { struct, u8 } from \"@solana/buffer-layout\";\nimport { bool, publicKey } from \"@solana/buffer-layout-utils\";\n\nimport { Multisig } from \"../types\";\n\n/** Multisig as stored by the program */\nexport type RawMultisig = Omit<Multisig, \"address\">;\n\n/** Buffer layout for de/serializing a multisig */\nexport const MultisigLayout = struct<RawMultisig>([\n u8(\"m\"),\n u8(\"n\"),\n bool(\"isInitialized\"),\n publicKey(\"signer1\"),\n publicKey(\"signer2\"),\n publicKey(\"signer3\"),\n publicKey(\"signer4\"),\n publicKey(\"signer5\"),\n publicKey(\"signer6\"),\n publicKey(\"signer7\"),\n publicKey(\"signer8\"),\n publicKey(\"signer9\"),\n publicKey(\"signer10\"),\n publicKey(\"signer11\"),\n]);\n\n/** Byte length of a multisig */\nexport const MULTISIG_SIZE = MultisigLayout.span;\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const MEMO_PROGRAM_ID: PublicKey = new PublicKey(\n \"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\"\n);\n\n/** Address of the SPL Associated Token Account program */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey = new PublicKey(\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n);\n\nexport const TOKEN_PROGRAM_ID = new PublicKey(\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\");\nexport const TOKEN_2022_PROGRAM_ID = new PublicKey(\"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\");\n","import { struct, u32, u8 } from \"@solana/buffer-layout\";\nimport { publicKey, u64 } from \"@solana/buffer-layout-utils\";\nimport { AccountInfo, Commitment, Connection, PublicKey } from \"@solana/web3.js\";\nimport { Buffer } from \"buffer\";\n\nimport { Account, AccountState, RawAccount } from \"../types\";\nimport {\n TokenAccountNotFoundError,\n TokenInvalidAccountError,\n TokenInvalidAccountOwnerError,\n TokenInvalidAccountSizeError,\n} from \"../errors\";\nimport { MULTISIG_SIZE } from \"./multisig.utils\";\nimport { TOKEN_PROGRAM_ID } from \"../constants\";\n\nexport enum SplAccountType {\n Uninitialized,\n Mint,\n Account,\n}\n\nexport const ACCOUNT_TYPE_SIZE = 1;\n\n/** Buffer layout for de/serializing a token account */\nexport const AccountLayout = struct<RawAccount>([\n publicKey(\"mint\"),\n publicKey(\"owner\"),\n u64(\"amount\"),\n u32(\"delegateOption\"),\n publicKey(\"delegate\"),\n u8(\"state\"),\n u32(\"isNativeOption\"),\n u64(\"isNative\"),\n u64(\"delegatedAmount\"),\n u32(\"closeAuthorityOption\"),\n publicKey(\"closeAuthority\"),\n]);\n\n/** Byte length of a token account */\nexport const ACCOUNT_SIZE = AccountLayout.span;\n\nexport const NATIVE_MINT = new PublicKey(\"So11111111111111111111111111111111111111112\");\n\n/**\n * Retrieve information about a token account\n *\n * @param connection Connection to use\n * @param address Token account\n * @param commitment Desired level of commitment for querying the state\n * @param programId SPL Token program account\n *\n * @return Token account information\n */\nexport async function getAccount(\n connection: Connection,\n address: PublicKey,\n commitment?: Commitment,\n programId = TOKEN_PROGRAM_ID\n): Promise<Account> {\n const info = await connection.getAccountInfo(address, commitment);\n return unpackAccount(address, info, programId);\n}\n\n/**\n * Retrieve information about multiple token accounts in a single RPC call\n *\n * @param connection Connection to use\n * @param addresses Token accounts\n * @param commitment Desired level of commitment for querying the state\n * @param programId SPL Token program account\n *\n * @return Token account information\n */\nexport async function getMultipleAccounts(\n connection: Connection,\n addresses: PublicKey[],\n commitment?: Commitment,\n programId = TOKEN_PROGRAM_ID\n): Promise<Account[]> {\n const infos = await connection.getMultipleAccountsInfo(addresses, commitment);\n return addresses.map((address, i) =>\n //@ts-ignore\n unpackAccount(address, infos[i], programId)\n );\n}\n\n/** Get the minimum lamport balance for a base token account to be rent exempt\n *\n * @param connection Connection to use\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptAccount(\n connection: Connection,\n commitment?: Commitment\n): Promise<number> {\n return await getMinimumBalanceForRentExemptAccountWithExtensions(connection, [], commitment);\n}\n\nexport enum ExtensionType {\n Uninitialized,\n TransferFeeConfig,\n TransferFeeAmount,\n MintCloseAuthority,\n ConfidentialTransferMint,\n ConfidentialTransferAccount,\n DefaultAccountState,\n ImmutableOwner,\n MemoTransfer,\n NonTransferable,\n InterestBearingMint,\n}\n\nexport function getAccountLen(extensionTypes: ExtensionType[]): number {\n return getLen(extensionTypes, ACCOUNT_SIZE);\n}\n\nexport const TYPE_SIZE = 2;\nexport const LENGTH_SIZE = 2;\n\nfunction getLen(extensionTypes: ExtensionType[], baseSize: number): number {\n if (extensionTypes.length === 0) {\n return baseSize;\n } else {\n const accountLength = ACCOUNT_SIZE + ACCOUNT_TYPE_SIZE;\n if (accountLength === MULTISIG_SIZE) {\n return accountLength + TYPE_SIZE;\n } else {\n return accountLength;\n }\n }\n}\n\n/** Get the minimum lamport balance for a rent-exempt token account with extensions\n *\n * @param connection Connection to use\n * @param extensions\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptAccountWithExtensions(\n connection: Connection,\n extensions: ExtensionType[],\n commitment?: Commitment\n): Promise<number> {\n const accountLen = getAccountLen(extensions);\n return await connection.getMinimumBalanceForRentExemption(accountLen, commitment);\n}\n\n/**\n * Unpack a token account\n *\n * @param address Token account\n * @param info Token account data\n * @param programId SPL Token program account\n *\n * @return Unpacked token account\n */\nexport function unpackAccount(\n address: PublicKey,\n info: AccountInfo<Buffer> | null,\n programId = TOKEN_PROGRAM_ID\n): Account {\n if (!info) throw new TokenAccountNotFoundError();\n if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n if (info.data.length < ACCOUNT_SIZE) throw new TokenInvalidAccountSizeError();\n\n const rawAccount = AccountLayout.decode(info.data.slice(0, ACCOUNT_SIZE));\n let tlvData = Buffer.alloc(0);\n if (info.data.length > ACCOUNT_SIZE) {\n if (info.data.length === MULTISIG_SIZE) throw new TokenInvalidAccountSizeError();\n if (info.data[ACCOUNT_SIZE] != SplAccountType.Account) throw new TokenInvalidAccountError();\n tlvData = info.data.slice(ACCOUNT_SIZE + ACCOUNT_TYPE_SIZE);\n }\n\n return {\n address,\n mint: rawAccount.mint,\n owner: rawAccount.owner,\n amount: rawAccount.amount,\n delegate: rawAccount.delegateOption ? rawAccount.delegate : null,\n delegatedAmount: rawAccount.delegatedAmount,\n isInitialized: rawAccount.state !== AccountState.Uninitialized,\n isFrozen: rawAccount.state === AccountState.Frozen,\n isNative: !!rawAccount.isNativeOption,\n rentExemptReserve: rawAccount.isNativeOption ? rawAccount.isNative : null,\n closeAuthority: rawAccount.closeAuthorityOption ? rawAccount.closeAuthority : null,\n tlvData,\n };\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nimport { TokenOwnerOffCurveError } from \"../errors\";\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from \"../constants\";\n\n/**\n * Get the address of the associated token account for a given mint and owner\n *\n * @param mint Token mint account\n * @param owner Owner of the new account\n * @param allowOwnerOffCurve Allow the owner account to be a PDA (Program Derived Address)\n * @param programId SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Address of the associated token account\n */\nexport function getAssociatedTokenAddressSync(\n mint: PublicKey,\n owner: PublicKey,\n allowOwnerOffCurve = false,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): PublicKey {\n if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer()))\n throw new TokenOwnerOffCurveError();\n\n const [address] = PublicKey.findProgramAddressSync(\n [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],\n associatedTokenProgramId\n );\n\n return address;\n}\n","import { AccountMeta, PublicKey, Signer } from \"@solana/web3.js\";\n\n/** @internal */\nexport function addSigners(\n keys: AccountMeta[],\n ownerOrAuthority: PublicKey,\n multiSigners: Signer[]\n): AccountMeta[] {\n if (multiSigners.length) {\n keys.push({ pubkey: ownerOrAuthority, isSigner: false, isWritable: false });\n for (const signer of multiSigners) {\n keys.push({\n pubkey: signer.publicKey,\n isSigner: true,\n isWritable: false,\n });\n }\n } else {\n keys.push({ pubkey: ownerOrAuthority, isSigner: true, isWritable: false });\n }\n return keys;\n}\n","import { struct, u32, u8 } from \"@solana/buffer-layout\";\nimport { bool, publicKey, u64 } from \"@solana/buffer-layout-utils\";\nimport { Commitment, Connection, PublicKey } from \"@solana/web3.js\";\n\nimport { Mint, RawMint } from \"../types\";\nimport { TOKEN_PROGRAM_ID } from \"../constants\";\nimport {\n TokenAccountNotFoundError,\n TokenInvalidAccountOwnerError,\n TokenInvalidAccountSizeError,\n} from \"../errors\";\n\n/** Buffer layout for de/serializing a mint */\nexport const MintLayout = struct<RawMint>([\n u32(\"mintAuthorityOption\"),\n publicKey(\"mintAuthority\"),\n u64(\"supply\"),\n u8(\"decimals\"),\n bool(\"isInitialized\"),\n u32(\"freezeAuthorityOption\"),\n publicKey(\"freezeAuthority\"),\n]);\n\n/** Byte length of a mint */\nexport const MINT_SIZE = MintLayout.span;\n\n/**\n * Retrieve information about a mint\n *\n * @param connection Connection to use\n * @param address Mint account\n * @param commitment Desired level of commitment for querying the state\n * @param programId SPL Token program account\n *\n * @return Mint information\n */\nexport async function getMint(\n connection: Connection,\n address: PublicKey,\n commitment?: Commitment,\n programId = TOKEN_PROGRAM_ID\n): Promise<Mint> {\n const info = await connection.getAccountInfo(address, commitment);\n if (!info) throw new TokenAccountNotFoundError();\n if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n if (info.data.length != MINT_SIZE) throw new TokenInvalidAccountSizeError();\n\n const rawMint = MintLayout.decode(info.data);\n\n return {\n address,\n mintAuthority: rawMint.mintAuthorityOption ? rawMint.mintAuthority : null,\n supply: rawMint.supply,\n decimals: rawMint.decimals,\n isInitialized: rawMint.isInitialized,\n freezeAuthority: rawMint.freezeAuthorityOption ? rawMint.freezeAuthority : null,\n };\n}\n","import { struct, u8 } from \"@solana/buffer-layout\";\nimport { u64 } from \"@solana/buffer-layout-utils\";\nimport {\n PublicKey,\n Signer,\n SystemProgram,\n SYSVAR_RENT_PUBKEY,\n TransactionInstruction,\n} from \"@solana/web3.js\";\n\nimport { Buffer } from \"buffer\";\n\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, MEMO_PROGRAM_ID, TOKEN_PROGRAM_ID } from \"./constants\";\nimport { addSigners } from \"./utils/instruction.utils\";\n\n/**\n * Creates and returns an instruction which validates a string of UTF-8\n * encoded characters and verifies that any accounts provided are signers of\n * the transaction. The program also logs the memo, as well as any verified\n * signer addresses, to the transaction log, so that anyone can easily observe\n * memos and know they were approved by zero or more addresses by inspecting\n * the transaction log from a trusted provider.\n *\n * Public keys passed in via the signerPubkeys will identify Signers which\n * must subsequently sign the Transaction including the returned\n * TransactionInstruction in order for the transaction to be valid.\n *\n * @param memo The UTF-8 encoded memo string to validate\n * @param signerPubkeys An array of public keys which must sign the\n * Transaction including the returned TransactionInstruction in order\n * for the transaction to be valid and the memo verification to\n * succeed. null is allowed if there are no signers for the memo\n * verification.\n **/\nexport function createMemoInstruction(\n memo: string,\n signerPubkeys?: Array<PublicKey>\n): TransactionInstruction {\n const keys =\n signerPubkeys == null\n ? []\n : signerPubkeys.map(function (key) {\n return { pubkey: key, isSigner: true, isWritable: false };\n });\n\n return new TransactionInstruction({\n keys: keys,\n programId: MEMO_PROGRAM_ID,\n data: Buffer.from(memo, \"utf8\"),\n });\n}\n\n/** Instructions defined by the program */\nexport enum TokenInstruction {\n InitializeAccount = 1,\n TransferChecked = 12,\n CloseAccount = 9,\n SyncNative = 17,\n}\n\n/** TODO: docs */\nexport interface InitializeAccountInstructionData {\n instruction: TokenInstruction.InitializeAccount;\n}\n\nexport const initializeAccountInstructionData = struct<InitializeAccountInstructionData>([\n u8(\"instruction\"),\n]);\n\n/**\n * Construct an InitializeAccount instruction\n *\n * @param account New token account\n * @param mint Mint account\n * @param owner Owner of the new account\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createInitializeAccountInstruction(\n account: PublicKey,\n mint: PublicKey,\n owner: PublicKey,\n programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = [\n { pubkey: account, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: owner, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n ];\n\n const data = Buffer.alloc(initializeAccountInstructionData.span);\n initializeAccountInstructionData.encode(\n { instruction: TokenInstruction.InitializeAccount },\n data\n );\n\n return new TransactionInstruction({ keys, programId, data });\n}\n\n/**\n * Construct an AssociatedTokenAccount instruction\n *\n * @param payer Payer of the initialization fees\n * @param associatedToken New associated token account\n * @param owner Owner of the new account\n * @param mint Token mint account\n * @param programId SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createAssociatedTokenAccountInstruction(\n payer: PublicKey,\n associatedToken: PublicKey,\n owner: PublicKey,\n mint: PublicKey,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = [\n { pubkey: payer, isSigner: true, isWritable: true },\n { pubkey: associatedToken, isSigner: false, isWritable: true },\n { pubkey: owner, isSigner: false, isWritable: false },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n { pubkey: programId, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n ];\n\n return new TransactionInstruction({\n keys,\n programId: associatedTokenProgramId,\n data: Buffer.alloc(0),\n });\n}\n\n/**\n * Construct a CreateAssociatedTokenAccountIdempotent instruction\n *\n * @param payer Payer of the initialization fees\n * @param associatedToken New associated token account\n * @param owner Owner of the new account\n * @param mint Token mint account\n * @param programId SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createAssociatedTokenAccountIdempotentInstruction(\n payer: PublicKey,\n associatedToken: PublicKey,\n owner: PublicKey,\n mint: PublicKey,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n return buildAssociatedTokenAccountInstruction(\n payer,\n associatedToken,\n owner,\n mint,\n Buffer.from([1]),\n programId,\n associatedTokenProgramId\n );\n}\n\n/** TODO: docs */\nexport interface SyncNativeInstructionData {\n instruction: TokenInstruction.SyncNative;\n}\n\n/** TODO: docs */\nexport const syncNativeInstructionData = struct<SyncNativeInstructionData>([u8(\"instruction\")]);\n\n/**\n * Construct a SyncNative instruction\n *\n * @param account Native account to sync lamports from\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createSyncNativeInstruction(\n account: PublicKey,\n programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = [{ pubkey: account, isSigner: false, isWritable: true }];\n\n const data = Buffer.alloc(syncNativeInstructionData.span);\n syncNativeInstructionData.encode({ instruction: TokenInstruction.SyncNative }, data);\n\n return new TransactionInstruction({ keys, programId, data });\n}\n\n/** TODO: docs */\nexport interface CloseAccountInstructionData {\n instruction: TokenInstruction.CloseAccount;\n}\n\n/** TODO: docs */\nexport const closeAccountInstructionData = struct<CloseAccountInstructionData>([u8(\"instruction\")]);\n\n/**\n * Construct a CloseAccount instruction\n *\n * @param account Account to close\n * @param destination Account to receive the remaining balance of the closed account\n * @param authority Account close authority\n * @param multiSigners Signing accounts if `authority` is a multisig\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createCloseAccountInstruction(\n account: PublicKey,\n destination: PublicKey,\n authority: PublicKey,\n multiSigners: Signer[] = [],\n programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = addSigners(\n [\n { pubkey: account, isSigner: false, isWritable: true },\n { pubkey: destination, isSigner: false, isWritable: true },\n ],\n authority,\n multiSigners\n );\n\n const data = Buffer.alloc(closeAccountInstructionData.span);\n closeAccountInstructionData.encode({ instruction: TokenInstruction.CloseAccount }, data);\n\n return new TransactionInstruction({ keys, programId, data });\n}\n\nfunction buildAssociatedTokenAccountInstruction(\n payer: PublicKey,\n associatedToken: PublicKey,\n owner: PublicKey,\n mint: PublicKey,\n instructionData: Buffer,\n programId = TOKEN_PROGRAM_ID,\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = [\n { pubkey: payer, isSigner: true, isWritable: true },\n { pubkey: associatedToken, isSigner: false, isWritable: true },\n { pubkey: owner, isSigner: false, isWritable: false },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n { pubkey: programId, isSigner: false, isWritable: false },\n ];\n\n return new TransactionInstruction({\n keys,\n programId: associatedTokenProgramId,\n data: instructionData,\n });\n}\n\n/** TODO: docs */\nexport interface TransferCheckedInstructionData {\n instruction: TokenInstruction.TransferChecked;\n amount: bigint;\n decimals: number;\n}\n\n/** TODO: docs */\nexport const transferCheckedInstructionData = struct<TransferCheckedInstructionData>([\n u8(\"instruction\"),\n u64(\"amount\"),\n u8(\"decimals\"),\n]);\n\n/**\n * Construct a TransferChecked instruction\n *\n * @param source Source account\n * @param mint Mint account\n * @param destination Destination account\n * @param owner Owner of the source account\n * @param amount Number of tokens to transfer\n * @param decimals Number of decimals in transfer amount\n * @param multiSigners Signing accounts if `owner` is a multisig\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createTransferCheckedInstruction(\n source: PublicKey,\n mint: PublicKey,\n destination: PublicKey,\n owner: PublicKey,\n amount: number | bigint,\n decimals: number,\n multiSigners: Signer[] = [],\n programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n const keys = addSigners(\n [\n { pubkey: source, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: destination, isSigner: false, isWritable: true },\n ],\n owner,\n multiSigners\n );\n\n const data = Buffer.alloc(transferCheckedInstructionData.span);\n transferCheckedInstructionData.encode(\n {\n instruction: TokenInstruction.TransferChecked,\n amount: BigInt(amount),\n decimals,\n },\n data\n );\n\n return new TransactionInstruction({ keys, programId, data });\n}\n","import {\n Connection,\n LAMPORTS_PER_SOL,\n PublicKey,\n STAKE_CONFIG_ID,\n SYSVAR_CLOCK_PUBKEY,\n SystemProgram,\n StakeProgram,\n Transaction,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport BigNumber from \"bignumber.js\";\nimport { BN } from \"bn.js\";\n\nimport { SYSVAR_RENT_PUBKEY } from \"@solana/web3.js\";\nimport {\n MPL_METADATA_PROGRAM_ID,\n SINGLE_POOL_PROGRAM_ID,\n STAKE_PROGRAM_ID,\n SYSTEM_PROGRAM_ID,\n SYSVAR_CLOCK_ID,\n SYSVAR_RENT_ID,\n SYSVAR_STAKE_HISTORY_ID,\n} from \"~/constants\";\n\nimport { TOKEN_PROGRAM_ID } from \"../spl\";\n\ninterface AccountMeta {\n pubkey: PublicKey;\n isSigner: boolean;\n isWritable: boolean;\n}\n\n// Instruction type enum\nenum SinglePoolInstructionType {\n InitializePool = 0,\n ReplenishPool,\n DepositStake,\n WithdrawStake,\n CreateTokenMetadata,\n UpdateTokenMetadata,\n InitializeOnRamp,\n}\n\nconst SinglePoolInstruction = {\n initializePool: (voteAccount: PublicKey): TransactionInstruction => {\n const pool = findPoolAddress(voteAccount);\n const stake = findPoolStakeAddress(pool);\n const mint = findPoolMintAddress(pool);\n const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: voteAccount, isSigner: false, isWritable: false },\n { pubkey: pool, isSigner: false, isWritable: true },\n { pubkey: stake, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: true },\n { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n { pubkey: mintAuthority, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_ID, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_CONFIG_ID, isSigner: false, isWritable: false },\n { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n Buffer.from([SinglePoolInstructionType.InitializePool])\n );\n },\n\n initializeOnRamp: (pool: PublicKey): TransactionInstruction => {\n const onRamp = findPoolOnRampAddress(pool);\n const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: onRamp, isSigner: false, isWritable: true },\n { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_ID, isSigner: false, isWritable: false },\n { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n Buffer.from([SinglePoolInstructionType.InitializeOnRamp])\n );\n },\n\n depositStake: async (\n pool: PublicKey,\n userStakeAccount: PublicKey,\n userTokenAccount: PublicKey,\n userLamportAccount: PublicKey\n ): Promise<TransactionInstruction> => {\n const stake = findPoolStakeAddress(pool);\n const mint = findPoolMintAddress(pool);\n const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: stake, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: true },\n { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n { pubkey: mintAuthority, isSigner: false, isWritable: false },\n { pubkey: userStakeAccount, isSigner: false, isWritable: true },\n { pubkey: userTokenAccount, isSigner: false, isWritable: true },\n { pubkey: userLamportAccount, isSigner: false, isWritable: true },\n { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n Buffer.from([SinglePoolInstructionType.DepositStake])\n );\n },\n\n withdrawStake: async (\n pool: PublicKey,\n userStakeAccount: PublicKey,\n userStakeAuthority: PublicKey,\n userTokenAccount: PublicKey,\n tokenAmount: BigNumber\n ): Promise<TransactionInstruction> => {\n const stake = findPoolStakeAddress(pool);\n const mint = findPoolMintAddress(pool);\n const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n // Try using BigInt for more precise conversion\n const rawAmount = BigInt(tokenAmount.multipliedBy(1e9).toString());\n\n const data = Buffer.concat([\n Buffer.from([SinglePoolInstructionType.WithdrawStake]),\n userStakeAuthority.toBuffer(),\n Buffer.from(new BN(rawAmount.toString()).toArray(\"le\", 8)),\n ]);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: stake, isSigner: false, isWritable: true },\n { pubkey: mint, isSigner: false, isWritable: true },\n { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n { pubkey: mintAuthority, isSigner: false, isWritable: false },\n { pubkey: userStakeAccount, isSigner: false, isWritable: true },\n { pubkey: userTokenAccount, isSigner: false, isWritable: true },\n { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n data\n );\n },\n\n createTokenMetadata: async (\n pool: PublicKey,\n payer: PublicKey\n ): Promise<TransactionInstruction> => {\n const mint = findPoolMintAddress(pool);\n const [mintAuthority, mplAuthority, mplMetadata] = await Promise.all([\n findPoolMintAuthorityAddress(pool),\n findPoolMplAuthorityAddress(pool),\n findMplMetadataAddress(mint),\n ]);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: mint, isSigner: false, isWritable: false },\n { pubkey: mintAuthority, isSigner: false, isWritable: false },\n { pubkey: mplAuthority, isSigner: false, isWritable: false },\n { pubkey: payer, isSigner: true, isWritable: true },\n { pubkey: mplMetadata, isSigner: false, isWritable: true },\n { pubkey: MPL_METADATA_PROGRAM_ID, isSigner: false, isWritable: false },\n { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n Buffer.from([SinglePoolInstructionType.CreateTokenMetadata])\n );\n },\n\n updateTokenMetadata: async (\n voteAccount: PublicKey,\n authorizedWithdrawer: PublicKey,\n tokenName: string,\n tokenSymbol: string,\n tokenUri: string = \"\"\n ): Promise<TransactionInstruction> => {\n if (tokenName.length > 32) {\n throw new Error(\"maximum token name length is 32 characters\");\n }\n if (tokenSymbol.length > 10) {\n throw new Error(\"maximum token symbol length is 10 characters\");\n }\n if (tokenUri.length > 200) {\n throw new Error(\"maximum token uri length is 200 characters\");\n }\n\n const pool = findPoolAddress(voteAccount);\n const [mint, mplAuthority] = await Promise.all([\n findPoolMintAddress(pool),\n findPoolMplAuthorityAddress(pool),\n ]);\n const mplMetadata = await findMplMetadataAddress(mint);\n\n const data = Buffer.concat([\n Buffer.from([SinglePoolInstructionType.UpdateTokenMetadata]),\n Buffer.from(new Uint32Array([tokenName.length]).buffer),\n Buffer.from(tokenName),\n Buffer.from(new Uint32Array([tokenSymbol.length]).buffer),\n Buffer.from(tokenSymbol),\n Buffer.from(new Uint32Array([tokenUri.length]).buffer),\n Buffer.from(tokenUri),\n ]);\n\n return createTransactionInstruction(\n SINGLE_POOL_PROGRAM_ID,\n [\n { pubkey: voteAccount, isSigner: false, isWritable: false },\n { pubkey: pool, isSigner: false, isWritable: false },\n { pubkey: mplAuthority, isSigner: false, isWritable: false },\n { pubkey: authorizedWithdrawer, isSigner: true, isWritable: false },\n { pubkey: mplMetadata, isSigner: false, isWritable: true },\n { pubkey: MPL_METADATA_PROGRAM_ID, isSigner: false, isWritable: false },\n ],\n data\n );\n },\n};\n\nconst createTransactionInstruction = (\n programId: PublicKey,\n keys: AccountMeta[],\n data: Buffer\n): TransactionInstruction => {\n return {\n programId,\n keys,\n data,\n };\n};\n\nconst findPda = (\n baseAddress: PublicKey,\n prefix: string,\n programId: PublicKey = SINGLE_POOL_PROGRAM_ID\n): PublicKey => {\n const [pda] = PublicKey.findProgramAddressSync(\n [Buffer.from(prefix), baseAddress.toBuffer()],\n programId\n );\n return pda;\n};\n\nconst findPoolMintAddressByVoteAccount = (voteAccountAddress: PublicKey): PublicKey =>\n findPda(findPoolAddress(voteAccountAddress), \"mint\");\nconst findPoolAddress = (voteAccountAddress: PublicKey): PublicKey =>\n findPda(voteAccountAddress, \"pool\");\nconst findPoolMintAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"mint\");\nconst findPoolStakeAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"stake\");\nconst findPoolStakeAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n findPda(poolAddress, \"stake_authority\");\nconst findPoolMintAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n findPda(poolAddress, \"mint_authority\");\nconst findPoolMplAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n findPda(poolAddress, \"mpl_authority\");\nconst findPoolOnRampAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"onramp\");\n\nconst findMplMetadataAddress = async (poolMintAddress: PublicKey): Promise<PublicKey> => {\n const [pda] = PublicKey.findProgramAddressSync(\n [Buffer.from(\"metadata\"), MPL_METADATA_PROGRAM_ID.toBuffer(), poolMintAddress.toBuffer()],\n MPL_METADATA_PROGRAM_ID\n );\n return pda;\n};\n\nconst SINGLE_POOL_ACCOUNT_SIZE = BigInt(33);\nconst STAKE_ACCOUNT_SIZE = BigInt(200);\nconst MINT_SIZE = BigInt(82);\n\nasync function initializeStakedPoolTx(\n connection: Connection,\n payer: PublicKey,\n voteAccountAddress: PublicKey\n) {\n const instructions = await initializeStakedPoolIxs(connection, payer, voteAccountAddress);\n const tx = new Transaction().add(...instructions);\n return tx;\n}\n\nasync function initializeStakedPoolIxs(\n connection: Connection,\n payer: PublicKey,\n voteAccountAddress: PublicKey\n) {\n const poolAddress = findPoolAddress(voteAccountAddress);\n\n const stakeAddress = findPoolStakeAddress(poolAddress);\n const mintAddress = findPoolMintAddress(poolAddress);\n const onRampAddress = findPoolOnRampAddress(poolAddress);\n\n // get min rent\n const [poolRent, stakeRent, mintRent, minimumDelegationObj] = await Promise.all([\n connection.getMinimumBalanceForRentExemption(Number(SINGLE_POOL_ACCOUNT_SIZE), \"confirmed\"),\n connection.getMinimumBalanceForRentExemption(Number(STAKE_ACCOUNT_SIZE), \"confirmed\"),\n connection.getMinimumBalanceForRentExemption(Number(MINT_SIZE), \"confirmed\"),\n connection.getStakeMinimumDelegation(),\n ]);\n\n const minimumDelegation = minimumDelegationObj.value;\n\n const instructions: TransactionInstruction[] = [];\n\n // instructions\n instructions.push(\n SystemProgram.transfer({ fromPubkey: payer, toPubkey: poolAddress, lamports: poolRent })\n );\n instructions.push(\n SystemProgram.transfer({\n fromPubkey: payer,\n toPubkey: stakeAddress,\n lamports: stakeRent + minimumDelegation + LAMPORTS_PER_SOL * 1,\n })\n );\n instructions.push(\n SystemProgram.transfer({ fromPubkey: payer, toPubkey: onRampAddress, lamports: stakeRent })\n );\n instructions.push(\n SystemProgram.transfer({ fromPubkey: payer, toPubkey: mintAddress, lamports: mintRent })\n );\n\n instructions.push(SinglePoolInstruction.initializePool(voteAccountAddress));\n instructions.push(SinglePoolInstruction.initializeOnRamp(poolAddress));\n instructions.push(await SinglePoolInstruction.createTokenMetadata(poolAddress, payer));\n\n return instructions;\n}\n\nconst createAccountIx = (\n from: PublicKey,\n newAccount: PublicKey,\n lamports: number,\n space: number,\n programAddress: PublicKey\n) => {\n const data = Buffer.concat([\n Buffer.from([0]), // Assuming the first byte is an instruction type or similar\n Buffer.from(new BN(lamports).toArray(\"le\", 8)),\n Buffer.from(new BN(space).toArray(\"le\", 8)),\n programAddress.toBuffer(),\n ]);\n\n const accounts = [\n { pubkey: from, isSigner: true, isWritable: true },\n { pubkey: newAccount, isSigner: true, isWritable: true },\n ];\n\n return createTransactionInstruction(SYSTEM_PROGRAM_ID, accounts, data);\n};\n\nconst createPoolOnrampIx = (voteAccount: PublicKey): TransactionInstruction => {\n const poolAccount = findPoolAddress(voteAccount);\n const onRampAccount = findPoolOnRampAddress(poolAccount);\n const poolStakeAuthority = findPoolStakeAuthorityAddress(poolAccount);\n\n const keys = [\n { pubkey: poolAccount, isSigner: false, isWritable: false },\n { pubkey: onRampAccount, isSigner: false, isWritable: true },\n { pubkey: poolStakeAuthority, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n { pubkey: StakeProgram.programId, isSigner: false, isWritable: false },\n ];\n\n // TODO don't hard code the instruction index? (or why not, it's not gna change is it?)\n const data = Buffer.from(Uint8Array.of(6));\n\n return new TransactionInstruction({\n keys,\n programId: SINGLE_POOL_PROGRAM_ID,\n data,\n });\n};\n\nconst replenishPoolIx = (voteAccount: PublicKey): TransactionInstruction => {\n const poolAccount = findPoolAddress(voteAccount);\n const stakePool = findPoolStakeAddress(poolAccount);\n const onRampPool = findPoolOnRampAddress(poolAccount);\n const authority = findPoolStakeAuthorityAddress(poolAccount);\n\n const keys = [\n { pubkey: voteAccount, isSigner: false, isWritable: false },\n { pubkey: poolAccount, isSigner: false, isWritable: false },\n { pubkey: stakePool, isSigner: false, isWritable: true },\n { pubkey: onRampPool, isSigner: false, isWritable: true },\n { pubkey: authority, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false },\n { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n { pubkey: STAKE_CONFIG_ID, isSigner: false, isWritable: false },\n { pubkey: StakeProgram.programId, isSigner: false, isWritable: false },\n ];\n\n // TODO don't hard code the instruction index? (or why not, it's not gna change is it?)\n const data = Buffer.from(Uint8Array.of(1));\n\n return createTransactionInstruction(SINGLE_POOL_PROGRAM_ID, keys, data);\n};\n\nexport {\n SinglePoolInstruction,\n initializeStakedPoolIxs,\n initializeStakedPoolTx,\n findPoolAddress,\n findPoolMintAddress,\n findPoolStakeAddress,\n findPoolStakeAuthorityAddress,\n findPoolMintAuthorityAddress,\n findPoolMplAuthorityAddress,\n findMplMetadataAddress,\n findPoolOnRampAddress,\n findPoolMintAddressByVoteAccount,\n createAccountIx,\n createPoolOnrampIx,\n replenishPoolIx,\n};\n","import { PublicKey } from \"@solana/web3.js\";\n\n/**\n * Parsed content of an on-chain StakeAccount\n *\n * Copied from https://github.com/solana-developers/solana-rpc-get-stake-activation/blob/main/web3js-1.0/src/stake.ts\n * */\nexport type StakeAccount = {\n discriminant: bigint;\n meta: {\n rentExemptReserve: bigint;\n authorized: {\n staker: PublicKey;\n withdrawer: PublicKey;\n };\n lockup: {\n unixTimestamp: bigint;\n epoch: bigint;\n custodian: PublicKey;\n };\n };\n stake: {\n delegation: {\n voterPubkey: PublicKey;\n stake: bigint;\n activationEpoch: bigint;\n deactivationEpoch: bigint;\n };\n creditsObserved: bigint;\n };\n};\n\n/**\n * Decode a StakeAccount from parsed account data.\n *\n * Copied from https://github.com/solana-developers/solana-rpc-get-stake-activation/blob/main/web3js-1.0/src/stake.ts\n * */\nexport const getStakeAccount = function (data: Buffer): StakeAccount {\n let offset = 0;\n\n // Discriminant (4 bytes)\n const discriminant = data.readBigUInt64LE(offset);\n offset += 4;\n\n // Meta\n const rentExemptReserve = data.readBigUInt64LE(offset);\n offset += 8;\n\n // Authorized staker and withdrawer (2 public keys)\n const staker = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n const withdrawer = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n // Lockup: unixTimestamp, epoch, custodian\n const unixTimestamp = data.readBigUInt64LE(offset);\n offset += 8;\n const epoch = data.readBigUInt64LE(offset);\n offset += 8;\n const custodian = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n\n // Stake: Delegation\n const voterPubkey = new PublicKey(data.subarray(offset, offset + 32));\n offset += 32;\n const stake = data.readBigUInt64LE(offset);\n offset += 8;\n const activationEpoch = data.readBigUInt64LE(offset);\n offset += 8;\n const deactivationEpoch = data.readBigUInt64LE(offset);\n offset += 8;\n\n // Credits observed\n const creditsObserved = data.readBigUInt64LE(offset);\n\n // Return the parsed StakeAccount object\n return {\n discriminant,\n meta: {\n rentExemptReserve,\n authorized: {\n staker,\n withdrawer,\n },\n lockup: {\n unixTimestamp,\n epoch,\n custodian,\n },\n },\n stake: {\n delegation: {\n voterPubkey,\n stake,\n activationEpoch,\n deactivationEpoch,\n },\n creditsObserved,\n },\n };\n};\n","{\n \"address\": \"SBondMDrcV3K4kxZR1HNVT7osZxAHVHgYXL5Ze1oMUv\",\n \"metadata\": {\n \"name\": \"sb_on_demand\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\",\n \"description\": \"Created with Anchor\"\n },\n \"instructions\": [\n {\n \"name\": \"guardian_quote_verify\",\n \"discriminator\": [168, 36, 93, 156, 157, 150, 148, 45],\n \"accounts\": [\n { \"name\": \"guardian\", \"writable\": true },\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n { \"name\": \"guardian_queue\", \"writable\": true, \"relations\": [\"state\"] },\n { \"name\": \"state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"GuardianQuoteVerifyParams\" } }\n }\n ]\n },\n {\n \"name\": \"guardian_register\",\n \"discriminator\": [159, 76, 53, 117, 219, 29, 116, 135],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"state\" },\n { \"name\": \"guardian_queue\", \"relations\": [\"state\"] },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"GuardianRegisterParams\" } }\n }\n ]\n },\n {\n \"name\": \"guardian_unregister\",\n \"discriminator\": [215, 19, 61, 120, 155, 224, 120, 60],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"state\" },\n { \"name\": \"guardian_queue\", \"writable\": true, \"relations\": [\"state\"] },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"GuardianUnregisterParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_heartbeat\",\n \"discriminator\": [10, 175, 217, 130, 111, 35, 117, 54],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n {\n \"name\": \"oracle_stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"oracle_signer\", \"signer\": true },\n {\n \"name\": \"queue\",\n \"writable\": true,\n \"relations\": [\"oracle\", \"gc_node\"]\n },\n { \"name\": \"gc_node\", \"writable\": true },\n { \"name\": \"program_state\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"native_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"queue_escrow\", \"writable\": true },\n { \"name\": \"stake_program\" },\n { \"name\": \"delegation_pool\" },\n { \"name\": \"delegation_group\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleHeartbeatParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_heartbeat_v2\",\n \"discriminator\": [122, 231, 66, 32, 226, 62, 144, 103],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n {\n \"name\": \"oracle_stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"oracle_signer\", \"signer\": true },\n {\n \"name\": \"queue\",\n \"writable\": true,\n \"relations\": [\"oracle\", \"gc_node\"]\n },\n { \"name\": \"gc_node\", \"writable\": true },\n { \"name\": \"program_state\", \"writable\": true }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleHeartbeatV2Params\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_init\",\n \"discriminator\": [21, 158, 66, 65, 60, 221, 148, 61],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"oracle_stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"program_state\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_init_svm\",\n \"discriminator\": [106, 20, 36, 117, 166, 175, 131, 83],\n \"accounts\": [\n {\n \"name\": \"oracle\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"const\", \"value\": [79, 114, 97, 99, 108, 101] },\n { \"kind\": \"arg\", \"path\": \"params.queue\" },\n { \"kind\": \"arg\", \"path\": \"params.source_oracle_key\" }\n ]\n }\n },\n {\n \"name\": \"oracle_stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"program_state\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n { \"name\": \"stake_program\" },\n { \"name\": \"stake_pool\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleInitSVMParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_reset_lut\",\n \"discriminator\": [147, 244, 108, 198, 152, 219, 0, 22],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"program_state\" },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleResetLutParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_set_configs\",\n \"discriminator\": [129, 111, 223, 4, 191, 188, 70, 180],\n \"accounts\": [\n { \"name\": \"oracle\" },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleSetConfigsParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_set_operator\",\n \"discriminator\": [210, 232, 155, 124, 69, 176, 242, 133],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n { \"name\": \"operator\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleSetOperatorParams\" } }\n }\n ]\n },\n {\n \"name\": \"oracle_sync_lut\",\n \"discriminator\": [138, 99, 12, 59, 18, 170, 171, 45],\n \"accounts\": [\n { \"name\": \"oracle\" },\n { \"name\": \"queue\", \"relations\": [\"oracle\"] },\n { \"name\": \"ncn\" },\n { \"name\": \"vault\" },\n { \"name\": \"state\" },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n { \"name\": \"operator\", \"relations\": [\"oracle\"] },\n { \"name\": \"ncn_operator_state\" },\n { \"name\": \"operator_vault_ticket\" },\n { \"name\": \"vault_operator_delegation\" },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n { \"name\": \"payer\", \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"OracleSyncLutParams\" } }\n }\n ]\n },\n {\n \"name\": \"permission_set\",\n \"discriminator\": [211, 122, 185, 120, 129, 182, 55, 103],\n \"accounts\": [\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"granter\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PermissionSetParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_close\",\n \"discriminator\": [19, 134, 50, 142, 177, 215, 196, 83],\n \"accounts\": [\n { \"name\": \"pull_feed\", \"writable\": true },\n { \"name\": \"reward_escrow\", \"writable\": true },\n { \"name\": \"lut\", \"writable\": true },\n { \"name\": \"lut_signer\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n { \"name\": \"state\" },\n {\n \"name\": \"authority\",\n \"writable\": true,\n \"signer\": true,\n \"relations\": [\"pull_feed\"]\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedCloseParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_init\",\n \"discriminator\": [198, 130, 53, 198, 235, 61, 143, 40],\n \"accounts\": [\n { \"name\": \"pull_feed\", \"writable\": true, \"signer\": true },\n { \"name\": \"queue\" },\n { \"name\": \"authority\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"program_state\" },\n {\n \"name\": \"reward_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"pull_feed\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"wrapped_sol_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"wrapped_sol_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_set_configs\",\n \"discriminator\": [217, 45, 11, 246, 64, 26, 82, 168],\n \"accounts\": [\n { \"name\": \"pull_feed\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"pull_feed\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedSetConfigsParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response\",\n \"discriminator\": [150, 22, 215, 166, 143, 93, 48, 137],\n \"accounts\": [\n { \"name\": \"feed\", \"writable\": true },\n { \"name\": \"queue\", \"relations\": [\"feed\"] },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_vault\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"token_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response_consensus\",\n \"discriminator\": [239, 124, 39, 184, 147, 222, 16, 248],\n \"accounts\": [\n { \"name\": \"queue\" },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_vault\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"token_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n {\n \"name\": \"ix_sysvar\",\n \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": { \"name\": \"PullFeedSubmitResponseConsensusParams\" }\n }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response_consensus_light\",\n \"discriminator\": [178, 179, 88, 144, 175, 130, 157, 87],\n \"accounts\": [\n { \"name\": \"queue\" },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n {\n \"name\": \"ix_sysvar\",\n \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": {\n \"defined\": { \"name\": \"PullFeedSubmitResponseConsensusLightParams\" }\n }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response_many\",\n \"discriminator\": [47, 156, 45, 25, 200, 71, 37, 215],\n \"accounts\": [\n { \"name\": \"queue\" },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_vault\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"token_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseManyParams\" } }\n }\n ]\n },\n {\n \"name\": \"pull_feed_submit_response_svm\",\n \"discriminator\": [123, 7, 190, 12, 220, 230, 198, 148],\n \"accounts\": [\n { \"name\": \"feed\", \"writable\": true },\n {\n \"name\": \"queue\",\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"const\", \"value\": [81, 117, 101, 117, 101] },\n { \"kind\": \"arg\", \"path\": \"params.source_queue_key\" }\n ]\n },\n \"relations\": [\"feed\"]\n },\n { \"name\": \"program_state\" },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_vault\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"token_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseSVMParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_add_mr_enclave\",\n \"discriminator\": [199, 255, 81, 50, 60, 133, 171, 138],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"program_authority\" },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueAddMrEnclaveParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_allow_subsidies\",\n \"discriminator\": [94, 203, 82, 157, 188, 138, 202, 108],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] },\n { \"name\": \"state\", \"writable\": true }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueAllowSubsidiesParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_garbage_collect\",\n \"discriminator\": [187, 208, 104, 247, 16, 91, 96, 98],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueGarbageCollectParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_init\",\n \"discriminator\": [144, 18, 99, 145, 133, 27, 207, 13],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"queue_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"queue\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"native_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n { \"name\": \"authority\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"native_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"program_state\" },\n { \"name\": \"lut_signer\", \"writable\": true },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_init_svm\",\n \"discriminator\": [175, 94, 119, 151, 45, 144, 173, 235],\n \"accounts\": [\n {\n \"name\": \"queue\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"const\", \"value\": [81, 117, 101, 117, 101] },\n { \"kind\": \"arg\", \"path\": \"params.source_queue_key\" }\n ]\n }\n },\n {\n \"name\": \"queue_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"queue\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"native_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n { \"name\": \"authority\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"native_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"program_state\" },\n { \"name\": \"lut_signer\", \"writable\": true },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueInitSVMParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_override_svm\",\n \"discriminator\": [43, 103, 15, 35, 89, 14, 244, 165],\n \"accounts\": [\n { \"name\": \"oracle\", \"writable\": true },\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueOverrideSVMParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_pay_subsidy\",\n \"discriminator\": [85, 84, 51, 251, 144, 57, 105, 200],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"program_state\" },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"vault\" },\n {\n \"name\": \"reward_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"vault\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"switch_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n {\n \"name\": \"subsidy_vault\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"program_state\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"switch_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"wsol_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"switch_mint\" },\n { \"name\": \"vault_config\" },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueuePaySubsidyParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_remove_mr_enclave\",\n \"discriminator\": [3, 64, 135, 33, 190, 133, 68, 252],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"program_authority\" },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueRemoveMrEnclaveParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_reset_vault\",\n \"discriminator\": [232, 255, 48, 111, 240, 168, 253, 40],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" },\n { \"name\": \"ncn\", \"relations\": [\"queue\"] },\n { \"name\": \"vault\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueResetVaultParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_set_configs\",\n \"discriminator\": [54, 183, 243, 199, 49, 103, 142, 48],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueSetConfigsParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_set_ncn\",\n \"discriminator\": [232, 223, 179, 12, 20, 136, 181, 219],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" },\n { \"name\": \"ncn\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueSetNcnParams\" } }\n }\n ]\n },\n {\n \"name\": \"queue_set_vault\",\n \"discriminator\": [48, 47, 102, 99, 241, 249, 196, 246],\n \"accounts\": [\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"state\" },\n { \"name\": \"ncn\", \"relations\": [\"queue\"] },\n { \"name\": \"vault\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"QueueSetVaultParams\" } }\n }\n ]\n },\n {\n \"name\": \"randomness_commit\",\n \"discriminator\": [52, 170, 152, 201, 179, 133, 242, 141],\n \"accounts\": [\n { \"name\": \"randomness\", \"writable\": true },\n { \"name\": \"queue\", \"relations\": [\"randomness\", \"oracle\"] },\n { \"name\": \"oracle\", \"writable\": true },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"randomness\"] }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"RandomnessCommitParams\" } }\n }\n ]\n },\n {\n \"name\": \"randomness_init\",\n \"discriminator\": [9, 9, 204, 33, 50, 116, 113, 15],\n \"accounts\": [\n { \"name\": \"randomness\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"reward_escrow\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n { \"kind\": \"account\", \"path\": \"randomness\" },\n {\n \"kind\": \"const\",\n \"value\": [\n 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n 245, 133, 126, 255, 0, 169\n ]\n },\n { \"kind\": \"account\", \"path\": \"wrapped_sol_mint\" }\n ],\n \"program\": {\n \"kind\": \"const\",\n \"value\": [\n 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n 219, 233, 248, 89\n ]\n }\n }\n },\n { \"name\": \"authority\", \"signer\": true },\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"associated_token_program\",\n \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n },\n {\n \"name\": \"wrapped_sol_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"program_state\" },\n { \"name\": \"lut_signer\" },\n { \"name\": \"lut\", \"writable\": true },\n {\n \"name\": \"address_lookup_table_program\",\n \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"RandomnessInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"randomness_reveal\",\n \"discriminator\": [197, 181, 187, 10, 30, 58, 20, 73],\n \"accounts\": [\n { \"name\": \"randomness\", \"writable\": true },\n { \"name\": \"oracle\", \"relations\": [\"randomness\"] },\n { \"name\": \"queue\", \"relations\": [\"oracle\"] },\n {\n \"name\": \"stats\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [\n {\n \"kind\": \"const\",\n \"value\": [\n 79, 114, 97, 99, 108, 101, 82, 97, 110, 100, 111, 109, 110,\n 101, 115, 115, 83, 116, 97, 116, 115\n ]\n },\n { \"kind\": \"account\", \"path\": \"oracle\" }\n ]\n }\n },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"randomness\"] },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"recent_slothashes\",\n \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n },\n { \"name\": \"reward_escrow\", \"writable\": true },\n {\n \"name\": \"token_program\",\n \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n },\n {\n \"name\": \"wrapped_sol_mint\",\n \"address\": \"So11111111111111111111111111111111111111112\"\n },\n { \"name\": \"program_state\" }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"RandomnessRevealParams\" } }\n }\n ]\n },\n {\n \"name\": \"state_init\",\n \"discriminator\": [103, 241, 106, 190, 217, 153, 87, 105],\n \"accounts\": [\n {\n \"name\": \"state\",\n \"writable\": true,\n \"pda\": {\n \"seeds\": [{ \"kind\": \"const\", \"value\": [83, 84, 65, 84, 69] }]\n }\n },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"StateInitParams\" } }\n }\n ]\n },\n {\n \"name\": \"state_set_configs\",\n \"discriminator\": [40, 98, 76, 37, 206, 9, 47, 144],\n \"accounts\": [\n { \"name\": \"state\", \"writable\": true },\n { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] },\n { \"name\": \"queue\", \"writable\": true },\n { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n {\n \"name\": \"system_program\",\n \"address\": \"11111111111111111111111111111111\"\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"StateSetConfigsParams\" } }\n }\n ]\n },\n {\n \"name\": \"test_update_oracle_stats\",\n \"discriminator\": [175, 48, 162, 252, 154, 197, 149, 187],\n \"accounts\": [\n {\n \"name\": \"oracle_stats\",\n \"docs\": [\"The OracleStats account to update.\"],\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"params\",\n \"type\": { \"defined\": { \"name\": \"TestUpdateOracleStatsParams\" } }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"OracleAccountData\",\n \"discriminator\": [128, 30, 16, 241, 170, 73, 55, 54]\n },\n {\n \"name\": \"OracleStatsAccountData\",\n \"discriminator\": [180, 157, 178, 234, 240, 27, 152, 179]\n },\n {\n \"name\": \"PullFeedAccountData\",\n \"discriminator\": [196, 27, 108, 196, 10, 215, 219, 40]\n },\n {\n \"name\": \"QueueAccountData\",\n \"discriminator\": [217, 194, 55, 127, 184, 83, 138, 1]\n },\n {\n \"name\": \"RandomnessAccountData\",\n \"discriminator\": [10, 66, 229, 135, 220, 239, 217, 114]\n },\n { \"name\": \"State\", \"discriminator\": [216, 146, 107, 94, 104, 75, 182, 177] }\n ],\n \"events\": [\n {\n \"name\": \"CostWhitelistEvent\",\n \"discriminator\": [56, 107, 191, 127, 116, 6, 138, 149]\n },\n {\n \"name\": \"GarbageCollectionEvent\",\n \"discriminator\": [232, 235, 2, 188, 8, 143, 145, 237]\n },\n {\n \"name\": \"GuardianQuoteVerifyEvent\",\n \"discriminator\": [31, 37, 39, 6, 214, 186, 33, 115]\n },\n {\n \"name\": \"OracleHeartbeatEvent\",\n \"discriminator\": [52, 29, 166, 2, 94, 7, 188, 13]\n },\n {\n \"name\": \"OracleInitEvent\",\n \"discriminator\": [89, 193, 219, 200, 1, 83, 167, 24]\n },\n {\n \"name\": \"OracleQuoteOverrideEvent\",\n \"discriminator\": [78, 204, 191, 210, 164, 196, 244, 65]\n },\n {\n \"name\": \"OracleQuoteRotateEvent\",\n \"discriminator\": [26, 189, 196, 192, 225, 127, 26, 228]\n },\n {\n \"name\": \"OracleQuoteVerifyRequestEvent\",\n \"discriminator\": [203, 209, 79, 0, 20, 71, 226, 202]\n },\n {\n \"name\": \"PermissionSetEvent\",\n \"discriminator\": [148, 86, 123, 0, 102, 20, 119, 206]\n },\n {\n \"name\": \"PullFeedErrorValueEvent\",\n \"discriminator\": [225, 80, 192, 95, 14, 12, 83, 192]\n },\n {\n \"name\": \"PullFeedValueEvents\",\n \"discriminator\": [86, 7, 231, 28, 122, 161, 117, 69]\n },\n {\n \"name\": \"QueueAddMrEnclaveEvent\",\n \"discriminator\": [170, 186, 175, 38, 216, 51, 69, 175]\n },\n {\n \"name\": \"QueueInitEvent\",\n \"discriminator\": [44, 137, 99, 227, 107, 8, 30, 105]\n },\n {\n \"name\": \"QueueRemoveMrEnclaveEvent\",\n \"discriminator\": [4, 105, 196, 60, 84, 122, 203, 196]\n },\n {\n \"name\": \"RandomnessCommitEvent\",\n \"discriminator\": [88, 60, 172, 90, 112, 10, 206, 147]\n }\n ],\n \"errors\": [\n { \"code\": 6000, \"name\": \"GenericError\" },\n { \"code\": 6001, \"name\": \"InvalidQuote\" },\n { \"code\": 6002, \"name\": \"InsufficientQueue\" },\n { \"code\": 6003, \"name\": \"QueueFull\" },\n { \"code\": 6004, \"name\": \"InvalidEnclaveSigner\" },\n { \"code\": 6005, \"name\": \"InvalidSigner\" },\n { \"code\": 6006, \"name\": \"MrEnclaveAlreadyExists\" },\n { \"code\": 6007, \"name\": \"MrEnclaveAtCapacity\" },\n { \"code\": 6008, \"name\": \"MrEnclaveDoesntExist\" },\n { \"code\": 6009, \"name\": \"PermissionDenied\" },\n { \"code\": 6010, \"name\": \"InvalidQueue\" },\n { \"code\": 6011, \"name\": \"IncorrectMrEnclave\" },\n { \"code\": 6012, \"name\": \"InvalidAuthority\" },\n { \"code\": 6013, \"name\": \"InvalidMrEnclave\" },\n { \"code\": 6014, \"name\": \"InvalidTimestamp\" },\n { \"code\": 6015, \"name\": \"InvalidOracleIdx\" },\n { \"code\": 6016, \"name\": \"InvalidSecpSignature\" },\n { \"code\": 6017, \"name\": \"InvalidGuardianQueue\" },\n { \"code\": 6018, \"name\": \"InvalidIndex\" },\n { \"code\": 6019, \"name\": \"InvalidOracleQueue\" },\n { \"code\": 6020, \"name\": \"InvalidPermission\" },\n { \"code\": 6021, \"name\": \"InvalidePermissionedAccount\" },\n { \"code\": 6022, \"name\": \"InvalidEpochRotate\" },\n { \"code\": 6023, \"name\": \"InvalidEpochFinalize\" },\n { \"code\": 6024, \"name\": \"InvalidEscrow\" },\n { \"code\": 6025, \"name\": \"IllegalOracle\" },\n { \"code\": 6026, \"name\": \"IllegalExecuteAttempt\" },\n { \"code\": 6027, \"name\": \"IllegalFeedValue\" },\n { \"code\": 6028, \"name\": \"InvalidOracleFeedStats\" },\n { \"code\": 6029, \"name\": \"InvalidStateAuthority\" },\n { \"code\": 6030, \"name\": \"NotEnoughSamples\" },\n { \"code\": 6031, \"name\": \"OracleIsVerified\" },\n { \"code\": 6032, \"name\": \"QueueIsEmpty\" },\n { \"code\": 6033, \"name\": \"SecpRecoverFailure\" },\n { \"code\": 6034, \"name\": \"StaleSample\" },\n { \"code\": 6035, \"name\": \"SwitchboardRandomnessTooOld\" },\n { \"code\": 6036, \"name\": \"EpochIdMismatch\" },\n { \"code\": 6037, \"name\": \"GuardianAlreadyVoted\" },\n { \"code\": 6038, \"name\": \"RandomnessNotRequested\" },\n { \"code\": 6039, \"name\": \"InvalidSlotNumber\" },\n { \"code\": 6040, \"name\": \"RandomnessOracleKeyExpired\" },\n { \"code\": 6041, \"name\": \"InvalidAdvisory\" },\n { \"code\": 6042, \"name\": \"InvalidOracleStats\" },\n { \"code\": 6043, \"name\": \"InvalidStakeProgram\" },\n { \"code\": 6044, \"name\": \"InvalidStakePool\" },\n { \"code\": 6045, \"name\": \"InvalidDelegationPool\" },\n { \"code\": 6046, \"name\": \"UnparsableAccount\" },\n { \"code\": 6047, \"name\": \"InvalidInstruction\" },\n { \"code\": 6048, \"name\": \"OracleAlreadyVerified\" },\n { \"code\": 6049, \"name\": \"GuardianNotVerified\" },\n { \"code\": 6050, \"name\": \"InvalidConstraint\" },\n { \"code\": 6051, \"name\": \"InvalidDelegationGroup\" },\n { \"code\": 6052, \"name\": \"OracleKeyNotFound\" },\n { \"code\": 6053, \"name\": \"GuardianReregisterAttempt\" },\n { \"code\": 6054, \"name\": \"InvalidManySubmissionCount\" },\n { \"code\": 6055, \"name\": \"MissingSecpIx\" },\n { \"code\": 6056, \"name\": \"ChecksumMismatch\" },\n { \"code\": 6057, \"name\": \"InvalidSubmissionFeedsCount\" },\n { \"code\": 6058, \"name\": \"InvalidSecpSignatureOraclesCount\" },\n { \"code\": 6059, \"name\": \"InvalidEthAddress\" },\n { \"code\": 6060, \"name\": \"NoLutKeysAdded\" },\n { \"code\": 6061, \"name\": \"InvalidVaultOperatorDelegation\" },\n { \"code\": 6062, \"name\": \"InvalidVaultTokenAccount\" },\n { \"code\": 6063, \"name\": \"InvalidRemainingAccounts\" },\n { \"code\": 6064, \"name\": \"SubsidiesNotAllowed\" },\n { \"code\": 6065, \"name\": \"MissingVod\" },\n { \"code\": 6066, \"name\": \"InvalidVodEpoch\" },\n { \"code\": 6067, \"name\": \"InvalidOracleSubsidyWallet\" },\n { \"code\": 6068, \"name\": \"InvalidOperator\" },\n { \"code\": 6069, \"name\": \"Max128SampleValue\" },\n { \"code\": 6070, \"name\": \"RewardAlreadyPaid\" }\n ],\n \"types\": [\n {\n \"name\": \"CompactResult\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"std_dev\",\n \"docs\": [\n \"The standard deviation of the submissions needed for quorom size\"\n ],\n \"type\": \"f32\"\n },\n {\n \"name\": \"mean\",\n \"docs\": [\"The mean of the submissions needed for quorom size\"],\n \"type\": \"f32\"\n },\n {\n \"name\": \"slot\",\n \"docs\": [\"The slot at which this value was signed.\"],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"CostWhitelistEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"feeds\", \"type\": { \"vec\": \"pubkey\" } },\n { \"name\": \"oracles\", \"type\": { \"vec\": \"pubkey\" } },\n { \"name\": \"values\", \"type\": { \"vec\": { \"vec\": \"i128\" } } },\n { \"name\": \"reward\", \"type\": \"u32\" }\n ]\n }\n },\n {\n \"name\": \"CurrentResult\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"value\",\n \"docs\": [\n \"The median value of the submissions needed for quorom size\"\n ],\n \"type\": \"i128\"\n },\n {\n \"name\": \"std_dev\",\n \"docs\": [\n \"The standard deviation of the submissions needed for quorom size\"\n ],\n \"type\": \"i128\"\n },\n {\n \"name\": \"mean\",\n \"docs\": [\"The mean of the submissions needed for quorom size\"],\n \"type\": \"i128\"\n },\n {\n \"name\": \"range\",\n \"docs\": [\"The range of the submissions needed for quorom size\"],\n \"type\": \"i128\"\n },\n {\n \"name\": \"min_value\",\n \"docs\": [\n \"The minimum value of the submissions needed for quorom size\"\n ],\n \"type\": \"i128\"\n },\n {\n \"name\": \"max_value\",\n \"docs\": [\n \"The maximum value of the submissions needed for quorom size\"\n ],\n \"type\": \"i128\"\n },\n {\n \"name\": \"num_samples\",\n \"docs\": [\"The number of samples used to calculate this result\"],\n \"type\": \"u8\"\n },\n {\n \"name\": \"submission_idx\",\n \"docs\": [\n \"The index of the submission that was used to calculate this result\"\n ],\n \"type\": \"u8\"\n },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 6] } },\n {\n \"name\": \"slot\",\n \"docs\": [\"The slot at which this value was signed.\"],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_slot\",\n \"docs\": [\n \"The slot at which the first considered submission was made\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_slot\",\n \"docs\": [\n \"The slot at which the last considered submission was made\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"GarbageCollectionEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"GuardianQuoteVerifyEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"quote\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"GuardianQuoteVerifyParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"timestamp\", \"type\": \"i64\" },\n { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"_reserved1\", \"type\": \"u32\" },\n { \"name\": \"ed25519_key\", \"type\": \"pubkey\" },\n { \"name\": \"secp256k1_key\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"slot\", \"type\": \"u64\" },\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" },\n { \"name\": \"advisories\", \"type\": { \"vec\": \"u32\" } }\n ]\n }\n },\n {\n \"name\": \"GuardianRegisterParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"GuardianUnregisterParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"MegaSlotInfo\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"reserved1\", \"type\": \"u64\" },\n { \"name\": \"slot_end\", \"type\": \"u64\" },\n { \"name\": \"perf_goal\", \"type\": \"i64\" },\n { \"name\": \"current_signature_count\", \"type\": \"i64\" }\n ]\n }\n },\n {\n \"name\": \"MultiSubmission\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } },\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" }\n ]\n }\n },\n {\n \"name\": \"OracleAccountData\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"enclave\",\n \"docs\": [\"Represents the state of the quote verifiers enclave.\"],\n \"type\": { \"defined\": { \"name\": \"Quote\" } }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"The authority of the EnclaveAccount which is permitted to make account changes.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"queue\",\n \"docs\": [\n \"Queue used for attestation to verify a MRENCLAVE measurement.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"created_at\",\n \"docs\": [\"The unix timestamp when the quote was created.\"],\n \"type\": \"i64\"\n },\n {\n \"name\": \"last_heartbeat\",\n \"docs\": [\"The last time the quote heartbeated on-chain.\"],\n \"type\": \"i64\"\n },\n { \"name\": \"secp_authority\", \"type\": { \"array\": [\"u8\", 64] } },\n {\n \"name\": \"gateway_uri\",\n \"docs\": [\"URI location of the verifier's gateway.\"],\n \"type\": { \"array\": [\"u8\", 64] }\n },\n { \"name\": \"permissions\", \"type\": \"u64\" },\n {\n \"name\": \"is_on_queue\",\n \"docs\": [\n \"Whether the quote is located on the AttestationQueues buffer.\"\n ],\n \"type\": \"u8\"\n },\n { \"name\": \"_padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"last_reward_epoch\", \"type\": \"u64\" },\n { \"name\": \"operator\", \"type\": \"pubkey\" },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 16] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 1024] } }\n ]\n }\n },\n {\n \"name\": \"OracleEpochInfo\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"id\", \"type\": \"u64\" },\n { \"name\": \"reserved1\", \"type\": \"u64\" },\n { \"name\": \"_reserved\", \"type\": \"u64\" },\n { \"name\": \"slash_score\", \"type\": \"u64\" },\n { \"name\": \"reward_score\", \"type\": \"u64\" },\n { \"name\": \"stake_score\", \"type\": \"u64\" }\n ]\n }\n },\n {\n \"name\": \"OracleHeartbeatEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"OracleHeartbeatParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway_uri\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n }\n ]\n }\n },\n {\n \"name\": \"OracleHeartbeatV2Params\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"gateway_uri\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n }\n ]\n }\n },\n {\n \"name\": \"OracleInitEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"oracle\", \"type\": \"pubkey\" }]\n }\n },\n {\n \"name\": \"OracleInitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"recent_slot\", \"type\": \"u64\" },\n { \"name\": \"authority\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n {\n \"name\": \"secp_authority\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n }\n ]\n }\n },\n {\n \"name\": \"OracleInitSVMParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"recent_slot\", \"type\": \"u64\" },\n { \"name\": \"authority\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n {\n \"name\": \"secp_authority\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n },\n { \"name\": \"source_oracle_key\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"OracleQuoteOverrideEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"OracleQuoteRotateEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"oracle\", \"type\": \"pubkey\" }]\n }\n },\n {\n \"name\": \"OracleQuoteVerifyRequestEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"quote\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"OracleResetLutParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"recent_slot\", \"type\": \"u64\" }]\n }\n },\n {\n \"name\": \"OracleSetConfigsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"new_authority\", \"type\": { \"option\": \"pubkey\" } },\n {\n \"name\": \"new_secp_authority\",\n \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n }\n ]\n }\n },\n {\n \"name\": \"OracleSetOperatorParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"OracleStatsAccountData\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"owner\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n {\n \"name\": \"finalized_epoch\",\n \"docs\": [\n \"The last epoch that has completed. cleared after registered with the\",\n \"staking program.\"\n ],\n \"type\": { \"defined\": { \"name\": \"OracleEpochInfo\" } }\n },\n {\n \"name\": \"current_epoch\",\n \"docs\": [\n \"The current epoch info being used by the oracle. for stake. Will moved\",\n \"to finalized_epoch as soon as the epoch is over.\"\n ],\n \"type\": { \"defined\": { \"name\": \"OracleEpochInfo\" } }\n },\n {\n \"name\": \"mega_slot_info\",\n \"type\": { \"defined\": { \"name\": \"MegaSlotInfo\" } }\n },\n { \"name\": \"last_transfer_slot\", \"type\": \"u64\" },\n { \"name\": \"bump\", \"type\": \"u8\" },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n {\n \"name\": \"_ebuf\",\n \"docs\": [\"Reserved.\"],\n \"type\": { \"array\": [\"u8\", 1024] }\n }\n ]\n }\n },\n {\n \"name\": \"OracleSubmission\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"oracle\",\n \"docs\": [\"The public key of the oracle that submitted this value.\"],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"slot\",\n \"docs\": [\"The slot at which this value was signed.\"],\n \"type\": \"u64\"\n },\n {\n \"name\": \"landed_at\",\n \"docs\": [\"The slot at which this value was landed on chain.\"],\n \"type\": \"u64\"\n },\n {\n \"name\": \"value\",\n \"docs\": [\"The value that was submitted.\"],\n \"type\": \"i128\"\n }\n ]\n }\n },\n {\n \"name\": \"OracleSyncLutParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"PermissionSetEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"permission\", \"type\": \"pubkey\" }]\n }\n },\n {\n \"name\": \"PermissionSetParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"permission\", \"type\": \"u8\" },\n { \"name\": \"enable\", \"type\": \"bool\" }\n ]\n }\n },\n {\n \"name\": \"PullFeedAccountData\",\n \"docs\": [\"A representation of the data in a pull feed account.\"],\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"submissions\",\n \"docs\": [\"The oracle submissions for this feed.\"],\n \"type\": {\n \"array\": [{ \"defined\": { \"name\": \"OracleSubmission\" } }, 32]\n }\n },\n {\n \"name\": \"authority\",\n \"docs\": [\n \"The public key of the authority that can update the feed hash that\",\n \"this account will use for registering updates.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"queue\",\n \"docs\": [\n \"The public key of the queue which oracles must be bound to in order to\",\n \"submit data to this feed.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"feed_hash\",\n \"docs\": [\n \"SHA-256 hash of the job schema oracles will execute to produce data\",\n \"for this feed.\"\n ],\n \"type\": { \"array\": [\"u8\", 32] }\n },\n {\n \"name\": \"initialized_at\",\n \"docs\": [\"The slot at which this account was initialized.\"],\n \"type\": \"i64\"\n },\n { \"name\": \"permissions\", \"type\": \"u64\" },\n { \"name\": \"max_variance\", \"type\": \"u64\" },\n { \"name\": \"min_responses\", \"type\": \"u32\" },\n { \"name\": \"name\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 1] } },\n { \"name\": \"permit_write_by_authority\", \"type\": \"u8\" },\n { \"name\": \"historical_result_idx\", \"type\": \"u8\" },\n { \"name\": \"min_sample_size\", \"type\": \"u8\" },\n { \"name\": \"last_update_timestamp\", \"type\": \"i64\" },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"_reserved1\", \"type\": { \"array\": [\"u8\", 32] } },\n {\n \"name\": \"result\",\n \"type\": { \"defined\": { \"name\": \"CurrentResult\" } }\n },\n { \"name\": \"max_staleness\", \"type\": \"u32\" },\n { \"name\": \"padding2\", \"type\": { \"array\": [\"u8\", 12] } },\n {\n \"name\": \"historical_results\",\n \"type\": {\n \"array\": [{ \"defined\": { \"name\": \"CompactResult\" } }, 32]\n }\n },\n { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 8] } },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 24] } },\n { \"name\": \"submission_timestamps\", \"type\": { \"array\": [\"i64\", 32] } }\n ]\n }\n },\n {\n \"name\": \"PullFeedCloseParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"PullFeedErrorValueEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"feed\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"PullFeedInitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"feed_hash\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"max_variance\", \"type\": \"u64\" },\n { \"name\": \"min_responses\", \"type\": \"u32\" },\n { \"name\": \"name\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"recent_slot\", \"type\": \"u64\" },\n { \"name\": \"ipfs_hash\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"min_sample_size\", \"type\": \"u8\" },\n { \"name\": \"max_staleness\", \"type\": \"u32\" },\n { \"name\": \"permit_write_by_authority\", \"type\": { \"option\": \"bool\" } }\n ]\n }\n },\n {\n \"name\": \"PullFeedSetConfigsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"feed_hash\",\n \"type\": { \"option\": { \"array\": [\"u8\", 32] } }\n },\n { \"name\": \"authority\", \"type\": { \"option\": \"pubkey\" } },\n { \"name\": \"max_variance\", \"type\": { \"option\": \"u64\" } },\n { \"name\": \"min_responses\", \"type\": { \"option\": \"u32\" } },\n { \"name\": \"name\", \"type\": { \"option\": { \"array\": [\"u8\", 32] } } },\n {\n \"name\": \"ipfs_hash\",\n \"type\": { \"option\": { \"array\": [\"u8\", 32] } }\n },\n { \"name\": \"min_sample_size\", \"type\": { \"option\": \"u8\" } },\n { \"name\": \"max_staleness\", \"type\": { \"option\": \"u32\" } },\n { \"name\": \"permit_write_by_authority\", \"type\": { \"option\": \"bool\" } }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseConsensusLightParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseConsensusParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseManyParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n {\n \"name\": \"submissions\",\n \"type\": { \"vec\": { \"defined\": { \"name\": \"MultiSubmission\" } } }\n }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n {\n \"name\": \"submissions\",\n \"type\": {\n \"vec\": {\n \"defined\": {\n \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_action::Submission\"\n }\n }\n }\n }\n ]\n }\n },\n {\n \"name\": \"PullFeedSubmitResponseSVMParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"slot\", \"type\": \"u64\" },\n {\n \"name\": \"submissions\",\n \"type\": {\n \"vec\": {\n \"defined\": {\n \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_svm_action::Submission\"\n }\n }\n }\n },\n { \"name\": \"source_queue_key\", \"type\": \"pubkey\" },\n { \"name\": \"queue_bump\", \"type\": \"u8\" }\n ]\n }\n },\n {\n \"name\": \"PullFeedValueEvents\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"feeds\", \"type\": { \"vec\": \"pubkey\" } },\n { \"name\": \"oracles\", \"type\": { \"vec\": \"pubkey\" } },\n { \"name\": \"values\", \"type\": { \"vec\": { \"vec\": \"i128\" } } },\n { \"name\": \"reward\", \"type\": \"u32\" }\n ]\n }\n },\n {\n \"name\": \"QueueAccountData\",\n \"docs\": [\n \"An Queue represents a round-robin queue of oracle oracles who attest on-chain\",\n \"whether a Switchboard Function was executed within an enclave against an expected set of\",\n \"enclave measurements.\",\n \"\",\n \"For an oracle to join the queue, the oracle must first submit their enclave quote on-chain and\",\n \"wait for an existing oracle to attest their quote. If the oracle's quote matches an expected\",\n \"measurement within the queues mr_enclaves config, it is granted permissions and will start\",\n \"being assigned update requests.\"\n ],\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"authority\",\n \"docs\": [\n \"The address of the authority which is permitted to add/remove allowed enclave measurements.\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mr_enclaves\",\n \"docs\": [\"Allowed enclave measurements.\"],\n \"type\": { \"array\": [{ \"array\": [\"u8\", 32] }, 32] }\n },\n {\n \"name\": \"oracle_keys\",\n \"docs\": [\n \"The addresses of the quote oracles who have a valid\",\n \"verification status and have heartbeated on-chain recently.\"\n ],\n \"type\": { \"array\": [\"pubkey\", 128] }\n },\n {\n \"name\": \"max_quote_verification_age\",\n \"docs\": [\n \"The maximum allowable time until a EnclaveAccount needs to be re-verified on-chain.\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"last_heartbeat\",\n \"docs\": [\n \"The unix timestamp when the last quote oracle heartbeated on-chain.\"\n ],\n \"type\": \"i64\"\n },\n { \"name\": \"node_timeout\", \"type\": \"i64\" },\n {\n \"name\": \"oracle_min_stake\",\n \"docs\": [\n \"The minimum number of lamports a quote oracle needs to lock-up in order to heartbeat and verify other quotes.\"\n ],\n \"type\": \"u64\"\n },\n { \"name\": \"allow_authority_override_after\", \"type\": \"i64\" },\n {\n \"name\": \"mr_enclaves_len\",\n \"docs\": [\"The number of allowed enclave measurements.\"],\n \"type\": \"u32\"\n },\n {\n \"name\": \"oracle_keys_len\",\n \"docs\": [\n \"The length of valid quote oracles for the given attestation queue.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"reward\",\n \"docs\": [\n \"The reward paid to quote oracles for attesting on-chain.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"curr_idx\",\n \"docs\": [\n \"Incrementer used to track the current quote oracle permitted to run any available functions.\"\n ],\n \"type\": \"u32\"\n },\n {\n \"name\": \"gc_idx\",\n \"docs\": [\n \"Incrementer used to garbage collect and remove stale quote oracles.\"\n ],\n \"type\": \"u32\"\n },\n { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"u8\" },\n { \"name\": \"require_authority_verify_permission\", \"type\": \"u8\" },\n { \"name\": \"require_usage_permissions\", \"type\": \"u8\" },\n { \"name\": \"signer_bump\", \"type\": \"u8\" },\n { \"name\": \"mint\", \"type\": \"pubkey\" },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"allow_subsidies\", \"type\": \"u8\" },\n { \"name\": \"_ebuf6\", \"type\": { \"array\": [\"u8\", 15] } },\n { \"name\": \"ncn\", \"type\": \"pubkey\" },\n { \"name\": \"_resrved\", \"type\": \"u64\" },\n {\n \"name\": \"vaults\",\n \"type\": { \"array\": [{ \"defined\": { \"name\": \"VaultInfo\" } }, 4] }\n },\n { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 256] } },\n { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 512] } }\n ]\n }\n },\n {\n \"name\": \"QueueAddMrEnclaveEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }\n ]\n }\n },\n {\n \"name\": \"QueueAddMrEnclaveParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }]\n }\n },\n {\n \"name\": \"QueueAllowSubsidiesParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"allow_subsidies\", \"type\": \"u8\" }]\n }\n },\n {\n \"name\": \"QueueGarbageCollectParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [{ \"name\": \"idx\", \"type\": \"u32\" }] }\n },\n {\n \"name\": \"QueueInitEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"queue\", \"type\": \"pubkey\" }]\n }\n },\n {\n \"name\": \"QueueInitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"allow_authority_override_after\", \"type\": \"u32\" },\n { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"bool\" },\n { \"name\": \"require_usage_permissions\", \"type\": \"bool\" },\n { \"name\": \"max_quote_verification_age\", \"type\": \"u32\" },\n { \"name\": \"reward\", \"type\": \"u32\" },\n { \"name\": \"node_timeout\", \"type\": \"u32\" },\n { \"name\": \"recent_slot\", \"type\": \"u64\" }\n ]\n }\n },\n {\n \"name\": \"QueueInitSVMParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"allow_authority_override_after\", \"type\": \"u32\" },\n { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"bool\" },\n { \"name\": \"require_usage_permissions\", \"type\": \"bool\" },\n { \"name\": \"max_quote_verification_age\", \"type\": \"u32\" },\n { \"name\": \"reward\", \"type\": \"u32\" },\n { \"name\": \"node_timeout\", \"type\": \"u32\" },\n { \"name\": \"recent_slot\", \"type\": \"u64\" },\n { \"name\": \"source_queue_key\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"QueueOverrideSVMParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"secp256k1_signer\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"max_quote_verification_age\", \"type\": \"i64\" },\n { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"slot\", \"type\": \"u64\" }\n ]\n }\n },\n {\n \"name\": \"QueuePaySubsidyParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"QueueRemoveMrEnclaveEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }\n ]\n }\n },\n {\n \"name\": \"QueueRemoveMrEnclaveParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }]\n }\n },\n {\n \"name\": \"QueueResetVaultParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"QueueSetConfigsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"authority\", \"type\": { \"option\": \"pubkey\" } },\n { \"name\": \"reward\", \"type\": { \"option\": \"u32\" } },\n { \"name\": \"node_timeout\", \"type\": { \"option\": \"i64\" } }\n ]\n }\n },\n { \"name\": \"QueueSetNcnParams\", \"type\": { \"kind\": \"struct\", \"fields\": [] } },\n {\n \"name\": \"QueueSetVaultParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"enable\", \"type\": \"bool\" }]\n }\n },\n {\n \"name\": \"Quote\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"enclave_signer\",\n \"docs\": [\"The address of the signer generated within an enclave.\"],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mr_enclave\",\n \"docs\": [\n \"The quotes MRENCLAVE measurement dictating the contents of the secure enclave.\"\n ],\n \"type\": { \"array\": [\"u8\", 32] }\n },\n {\n \"name\": \"verification_status\",\n \"docs\": [\"The VerificationStatus of the quote.\"],\n \"type\": \"u8\"\n },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n {\n \"name\": \"verification_timestamp\",\n \"docs\": [\"The unix timestamp when the quote was last verified.\"],\n \"type\": \"i64\"\n },\n {\n \"name\": \"valid_until\",\n \"docs\": [\n \"The unix timestamp when the quotes verification status expires.\"\n ],\n \"type\": \"i64\"\n },\n {\n \"name\": \"quote_registry\",\n \"docs\": [\n \"The off-chain registry where the verifiers quote can be located.\"\n ],\n \"type\": { \"array\": [\"u8\", 32] }\n },\n {\n \"name\": \"registry_key\",\n \"docs\": [\n \"Key to lookup the buffer data on IPFS or an alternative decentralized storage solution.\"\n ],\n \"type\": { \"array\": [\"u8\", 64] }\n },\n {\n \"name\": \"secp256k1_signer\",\n \"docs\": [\n \"The secp256k1 public key of the enclave signer. Derived from the enclave_signer.\"\n ],\n \"type\": { \"array\": [\"u8\", 64] }\n },\n { \"name\": \"last_ed25519_signer\", \"type\": \"pubkey\" },\n { \"name\": \"last_secp256k1_signer\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"last_rotate_slot\", \"type\": \"u64\" },\n { \"name\": \"guardian_approvers\", \"type\": { \"array\": [\"pubkey\", 64] } },\n { \"name\": \"guardian_approvers_len\", \"type\": \"u8\" },\n { \"name\": \"padding2\", \"type\": { \"array\": [\"u8\", 7] } },\n { \"name\": \"staging_ed25519_signer\", \"type\": \"pubkey\" },\n {\n \"name\": \"staging_secp256k1_signer\",\n \"type\": { \"array\": [\"u8\", 64] }\n },\n { \"name\": \"eth_signer\", \"type\": { \"array\": [\"u8\", 20] } },\n {\n \"name\": \"_ebuf4\",\n \"docs\": [\"Reserved.\"],\n \"type\": { \"array\": [\"u8\", 12] }\n },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 128] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 256] } },\n { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 512] } }\n ]\n }\n },\n {\n \"name\": \"RandomnessAccountData\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"authority\", \"type\": \"pubkey\" },\n { \"name\": \"queue\", \"type\": \"pubkey\" },\n { \"name\": \"seed_slothash\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"seed_slot\", \"type\": \"u64\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"reveal_slot\", \"type\": \"u64\" },\n { \"name\": \"value\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 24] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 128] } },\n {\n \"name\": \"active_secp256k1_signer\",\n \"type\": { \"array\": [\"u8\", 64] }\n },\n { \"name\": \"active_secp256k1_expiration\", \"type\": \"i64\" }\n ]\n }\n },\n {\n \"name\": \"RandomnessCommitEvent\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"randomness_account\", \"type\": \"pubkey\" },\n { \"name\": \"oracle\", \"type\": \"pubkey\" },\n { \"name\": \"slot\", \"type\": \"u64\" },\n { \"name\": \"slothash\", \"type\": { \"array\": [\"u8\", 32] } }\n ]\n }\n },\n {\n \"name\": \"RandomnessCommitParams\",\n \"type\": { \"kind\": \"struct\", \"fields\": [] }\n },\n {\n \"name\": \"RandomnessInitParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"recent_slot\", \"type\": \"u64\" }]\n }\n },\n {\n \"name\": \"RandomnessRevealParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" },\n { \"name\": \"value\", \"type\": { \"array\": [\"u8\", 32] } }\n ]\n }\n },\n {\n \"name\": \"State\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"bump\", \"type\": \"u8\" },\n { \"name\": \"test_only_disable_mr_enclave_check\", \"type\": \"u8\" },\n { \"name\": \"enable_staking\", \"type\": \"u8\" },\n { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 5] } },\n { \"name\": \"authority\", \"type\": \"pubkey\" },\n { \"name\": \"guardian_queue\", \"type\": \"pubkey\" },\n { \"name\": \"reserved1\", \"type\": \"u64\" },\n { \"name\": \"epoch_length\", \"type\": \"u64\" },\n { \"name\": \"reserved2\", \"type\": { \"array\": [\"u8\", 136] } },\n { \"name\": \"switch_mint\", \"type\": \"pubkey\" },\n { \"name\": \"sgx_advisories\", \"type\": { \"array\": [\"u16\", 32] } },\n { \"name\": \"advisories_len\", \"type\": \"u8\" },\n { \"name\": \"padding2\", \"type\": \"u8\" },\n { \"name\": \"flat_reward_cut_percentage\", \"type\": \"u8\" },\n { \"name\": \"enable_slashing\", \"type\": \"u8\" },\n { \"name\": \"padding3\", \"type\": \"u32\" },\n { \"name\": \"lut_slot\", \"type\": \"u64\" },\n { \"name\": \"base_reward\", \"type\": \"u32\" },\n { \"name\": \"padding4\", \"type\": { \"array\": [\"u8\", 4] } },\n { \"name\": \"subsidy_amount\", \"type\": \"u64\" },\n { \"name\": \"_ebuf6\", \"type\": { \"array\": [\"u8\", 16] } },\n { \"name\": \"_ebuf5\", \"type\": { \"array\": [\"u8\", 32] } },\n { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 128] } },\n { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 512] } },\n {\n \"name\": \"cost_whitelist\",\n \"docs\": [\"Cost whitelist by authority\"],\n \"type\": { \"array\": [\"pubkey\", 32] }\n }\n ]\n }\n },\n { \"name\": \"StateInitParams\", \"type\": { \"kind\": \"struct\", \"fields\": [] } },\n {\n \"name\": \"StateSetConfigsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"new_authority\", \"type\": \"pubkey\" },\n { \"name\": \"test_only_disable_mr_enclave_check\", \"type\": \"u8\" },\n { \"name\": \"add_advisory\", \"type\": \"u16\" },\n { \"name\": \"rm_advisory\", \"type\": \"u16\" },\n { \"name\": \"switch_mint\", \"type\": \"pubkey\" },\n { \"name\": \"subsidy_amount\", \"type\": \"u64\" },\n { \"name\": \"base_reward\", \"type\": \"u32\" },\n { \"name\": \"add_cost_wl\", \"type\": \"pubkey\" },\n { \"name\": \"rm_cost_wl\", \"type\": \"pubkey\" }\n ]\n }\n },\n {\n \"name\": \"TestUpdateOracleStatsParams\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [{ \"name\": \"new_reward_score\", \"type\": \"u64\" }]\n }\n },\n {\n \"name\": \"VaultInfo\",\n \"serialization\": \"bytemuck\",\n \"repr\": { \"kind\": \"c\" },\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"vault_key\", \"type\": \"pubkey\" },\n { \"name\": \"last_reward_epoch\", \"type\": \"u64\" }\n ]\n }\n },\n {\n \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_action::Submission\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"value\", \"type\": \"i128\" },\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" },\n { \"name\": \"offset\", \"type\": \"u8\" }\n ]\n }\n },\n {\n \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_svm_action::Submission\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n { \"name\": \"value\", \"type\": \"i128\" },\n { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n { \"name\": \"recovery_id\", \"type\": \"u8\" }\n ]\n }\n }\n ]\n}\n","import { BorshCoder, Idl, Program, Provider } from \"@coral-xyz/anchor\";\nimport BN from \"bn.js\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nimport SWB_ONDEMAND_IDL from \"./idl.json\";\n\nexport const SWITCHBOARD_ONDEMANDE_PRICE_PRECISION = 18;\n\nexport interface CurrentResult {\n value: BN;\n std_dev: BN;\n mean: BN;\n range: BN;\n min_value: BN;\n max_vaalue: BN;\n slot: BN;\n min_slot: BN;\n max_slot: BN;\n}\n\nexport interface OracleSubmission {\n oracle: PublicKey;\n slot: BN;\n value: BN;\n}\n\nexport interface PullFeedAccountData {\n submissions: OracleSubmission[];\n authority: PublicKey;\n queue: PublicKey;\n feed_hash: Buffer;\n initialized_at: BN;\n permissions: BN;\n max_variance: BN;\n min_responses: number;\n name: Buffer;\n sample_size: number;\n last_update_timestamp: BN;\n lut_slot: BN;\n result: CurrentResult;\n max_staleness: number;\n min_sample_size: number;\n}\n\nexport type CrossbarSimulatePayload = FeedResponse[];\n\nexport interface FeedResponse {\n feedHash: string;\n results: number[];\n}\n\nexport const switchboardAccountCoder = new BorshCoder(SWB_ONDEMAND_IDL as unknown as Idl);\nexport function getSwitchboardProgram(provider: Provider): Program {\n return new Program(SWB_ONDEMAND_IDL as unknown as Idl, provider);\n}\n\nexport function decodeSwitchboardPullFeedData(data: Buffer): PullFeedAccountData {\n const pullFeedDAta = switchboardAccountCoder.accounts.decode(\n \"PullFeedAccountData\",\n data\n ) as PullFeedAccountData;\n return pullFeedDAta;\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const KLEND_PROGRAM_ID = new PublicKey(\n \"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD\"\n);\nexport const FARMS_PROGRAM_ID = new PublicKey(\n \"FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr\"\n);\n\nconst MAIN_MARKET: PublicKey = new PublicKey(\n \"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF\"\n);\nconst MAIN_MARKET_LUT: PublicKey = new PublicKey(\n \"284iwGtA9X9aLy3KsyV8uT2pXLARhYbiSi5SiM2g47M2\"\n);\n\n// Slot timing constants (matches Kamino SDK)\nexport const SLOTS_PER_SECOND = 2;\n\nexport const SLOTS_PER_MINUTE = SLOTS_PER_SECOND * 60;\n\nexport const SLOTS_PER_HOUR = SLOTS_PER_MINUTE * 60;\n\nexport const SLOTS_PER_DAY = SLOTS_PER_HOUR * 24;\n\nexport const SLOTS_PER_YEAR = SLOTS_PER_DAY * 365;\n\n// Default slot duration in milliseconds\nexport const DEFAULT_RECENT_SLOT_DURATION_MS = 450;\n\nexport const ONE_HUNDRED_PCT_IN_BPS = 10_000;\n\nconst klendConstants = {\n MAIN_MARKET,\n MAIN_MARKET_LUT,\n KLEND_PROGRAM_ID,\n FARMS_PROGRAM_ID,\n};\n\nexport default klendConstants;\n","import { Address, Program } from \"@coral-xyz/anchor\";\nimport {\n AccountMeta,\n PublicKey,\n TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { KlendIdlType } from \"./idl\";\nimport { bool, struct } from \"@coral-xyz/borsh\";\nimport { KLEND_PROGRAM_ID } from \"./constants\";\n\n/**\n * Refresh a generic Kamino reserve with a legacy Pyth oracle\n * @param program\n * @param reserve\n * @param market\n * @param oracle\n * @returns\n */\ntype MakeRefreshReserveIxParams = {\n program: Program<KlendIdlType>;\n reserve: PublicKey;\n market: PublicKey;\n pythOracle: PublicKey | null;\n switchboardPriceOracle: PublicKey | null;\n switchboardTwapOracle: PublicKey | null;\n scopePrices: PublicKey | null;\n};\n\nconst DEFAULT_PUBLIC_KEY: PublicKey = new PublicKey(\n \"11111111111111111111111111111111\"\n);\nconst NULL_PUBKEY: PublicKey = new PublicKey(\n \"nu11111111111111111111111111111111111111111\"\n);\n\nfunction isNotNullPubkey(pubkey: PublicKey | null): boolean {\n if (!pubkey) {\n return false;\n }\n return !pubkey.equals(NULL_PUBKEY) && !pubkey.equals(DEFAULT_PUBLIC_KEY);\n}\n\nfunction optionalAccount(pubkey: PublicKey | null): PublicKey | null {\n if (isNotNullPubkey(pubkey)) {\n return pubkey;\n } else {\n return null;\n }\n}\n\nconst makeRefreshReserveIx = ({\n program,\n reserve,\n market,\n pythOracle,\n switchboardPriceOracle,\n switchboardTwapOracle,\n scopePrices,\n}: MakeRefreshReserveIxParams) => {\n const ix = program.methods\n .refreshReserve()\n .accounts({\n reserve: reserve,\n lendingMarket: market,\n pythOracle: optionalAccount(pythOracle),\n switchboardPriceOracle: optionalAccount(switchboardPriceOracle),\n switchboardTwapOracle: optionalAccount(switchboardTwapOracle),\n scopePrices: optionalAccount(scopePrices),\n })\n .instruction();\n\n return ix;\n};\n\n/**\n * Refresh a generic Kamino obligation\n * @param program\n * @param market\n * @param obligation\n * @param remaining - pack the reserves used in this obligation, in the order they appear, starting\n * with lending reserves. For example, a user lending USDC at index 0, SOL at index 1, borrowing\n * BONK at index 0, pass [USDC, SOL, BONK] reserves\n * @returns\n */\nexport const REFRESH_OBLIGATION_DISCRIMINATOR = Buffer.from([\n 33, 132, 147, 228, 151, 192, 72, 89,\n]);\n\nexport interface RefreshObligationAccounts {\n lendingMarket: Address;\n obligation: Address;\n}\n\nexport const makeRefreshObligationIx = (\n lendingMarket: PublicKey,\n obligation: PublicKey,\n reserve: PublicKey\n): TransactionInstruction => {\n const keys: AccountMeta[] = [\n // lendingMarket: read-only, not a signer\n { pubkey: lendingMarket, isSigner: false, isWritable: false },\n\n // obligation: writable, not a signer (typical for state being updated)\n { pubkey: obligation, isSigner: false, isWritable: true },\n\n // any additional metas (e.g., oracles, reserves, payer signer, sysvars, etc.)\n {\n pubkey: reserve,\n isSigner: false,\n isWritable: false,\n },\n ];\n\n return new TransactionInstruction({\n keys,\n programId: KLEND_PROGRAM_ID,\n data: REFRESH_OBLIGATION_DISCRIMINATOR, // no extra encoding—just the 8-byte discriminator\n });\n};\n\nconst REFRESH_BATCH_DISCRIMINATOR = Buffer.from([\n 144, 110, 26, 103, 162, 204, 252, 147,\n]);\n\ninterface RefreshReservesBatchArgs {\n skipPriceUpdates: boolean;\n}\n\nexport const layout = struct<RefreshReservesBatchArgs>([\n bool(\"skipPriceUpdates\"),\n]);\n\ntype ReserveRemainingAccounts = {\n reserve: PublicKey;\n lendingMarket: PublicKey;\n};\n\nexport function makeRefreshReservesBatchIx(\n reserves: ReserveRemainingAccounts[],\n programId: PublicKey = KLEND_PROGRAM_ID\n) {\n const remainingAccounts = reserves.flatMap((reserve) => [\n {\n pubkey: reserve.reserve,\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: reserve.lendingMarket,\n isSigner: false,\n isWritable: false,\n },\n ]);\n\n const keys: Array<AccountMeta> = [...remainingAccounts];\n const buffer = Buffer.alloc(1000);\n const len = layout.encode(\n {\n skipPriceUpdates: true,\n },\n buffer\n );\n const data = Buffer.concat([REFRESH_BATCH_DISCRIMINATOR, buffer]).slice(\n 0,\n 8 + len\n );\n const ix = new TransactionInstruction({\n programId,\n keys,\n data,\n });\n return ix;\n}\n\nconst klendInstructions = {\n makeRefreshReserveIx,\n makeRefreshObligationIx,\n makeRefreshReservesBatchIx,\n};\n\nexport default klendInstructions;\n","import { Program } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nimport { KlendIdlType } from \"./idl\";\nimport klendInstructions from \"./instructions\";\nimport { ReserveRaw } from \"./types\";\n\ntype MakeRefreshingIxsParams = {\n klendProgram: Program<KlendIdlType>;\n // A \"bank\" in Kamino parlance\n reserve: ReserveRaw;\n reserveKey: PublicKey;\n obligationKey: PublicKey;\n program: Program<KlendIdlType>;\n};\n\nexport async function makeRefreshingIxs({\n klendProgram,\n reserve,\n reserveKey,\n obligationKey,\n program,\n}: MakeRefreshingIxsParams) {\n const tokenInfo = reserve.config.tokenInfo;\n const lendingMarket = reserve.lendingMarket;\n const refreshReserveIx = await klendInstructions.makeRefreshReserveIx({\n program: klendProgram,\n reserve: reserveKey,\n market: lendingMarket,\n pythOracle: tokenInfo.pythConfiguration.price,\n switchboardPriceOracle: tokenInfo.switchboardConfiguration.priceAggregator,\n switchboardTwapOracle: tokenInfo.switchboardConfiguration.twapAggregator,\n scopePrices: tokenInfo.scopeConfiguration.priceFeed,\n });\n\n const refreshObligationIx = klendInstructions.makeRefreshObligationIx(\n lendingMarket,\n obligationKey,\n reserveKey\n );\n\n return [refreshReserveIx, refreshObligationIx];\n}\n","import {\n ObligationCollateralFields,\n ObligationCollateralJSON,\n ObligationJSON,\n ObligationLiquidityFields,\n ObligationLiquidityJSON,\n ObligationOrderFields,\n ObligationOrderJSON,\n ObligationRaw,\n ReserveConfigFields,\n ReserveConfigJSON,\n ReserveJSON,\n ReserveLiquidityFields,\n ReserveLiquidityJSON,\n ReserveRaw,\n TokenInfoFields,\n TokenInfoJSON,\n WithdrawalCapsFields,\n WithdrawalCapsJSON,\n} from \"../../types\";\n\nexport function obligationRawToDto(\n obligationRaw: ObligationRaw\n): ObligationJSON {\n return {\n tag: obligationRaw.tag.toString(),\n lastUpdate: {\n slot: obligationRaw.lastUpdate.slot.toString(),\n stale: obligationRaw.lastUpdate.stale,\n priceStatus: obligationRaw.lastUpdate.priceStatus,\n placeholder: obligationRaw.lastUpdate.placeholder,\n },\n lendingMarket: obligationRaw.lendingMarket.toBase58(),\n owner: obligationRaw.owner.toBase58(),\n deposits: obligationRaw.deposits.map((item) =>\n obligationCollateralToDto(item)\n ),\n lowestReserveDepositLiquidationLtv:\n obligationRaw.lowestReserveDepositLiquidationLtv.toString(),\n depositedValueSf: obligationRaw.depositedValueSf.toString(),\n borrows: obligationRaw.borrows.map((item) =>\n obligationLiquidityToDto(item)\n ),\n borrowFactorAdjustedDebtValueSf:\n obligationRaw.borrowFactorAdjustedDebtValueSf.toString(),\n borrowedAssetsMarketValueSf:\n obligationRaw.borrowedAssetsMarketValueSf.toString(),\n allowedBorrowValueSf: obligationRaw.allowedBorrowValueSf.toString(),\n unhealthyBorrowValueSf: obligationRaw.unhealthyBorrowValueSf.toString(),\n depositsAssetTiers: obligationRaw.depositsAssetTiers,\n borrowsAssetTiers: obligationRaw.borrowsAssetTiers,\n elevationGroup: obligationRaw.elevationGroup,\n numOfObsoleteDepositReserves: obligationRaw.numOfObsoleteDepositReserves,\n hasDebt: obligationRaw.hasDebt,\n referrer: obligationRaw.referrer.toBase58(),\n borrowingDisabled: obligationRaw.borrowingDisabled,\n autodeleverageTargetLtvPct: obligationRaw.autodeleverageTargetLtvPct,\n lowestReserveDepositMaxLtvPct: obligationRaw.lowestReserveDepositMaxLtvPct,\n numOfObsoleteBorrowReserves: obligationRaw.numOfObsoleteBorrowReserves,\n reserved: obligationRaw.reserved,\n highestBorrowFactorPct: obligationRaw.highestBorrowFactorPct.toString(),\n autodeleverageMarginCallStartedTimestamp:\n obligationRaw.autodeleverageMarginCallStartedTimestamp.toString(),\n orders: obligationRaw.orders.map((item) => obligationOrderToDto(item)),\n padding3: obligationRaw.padding3.map((item) => item.toString()),\n };\n}\n\nexport function reserveRawToDto(reserveRaw: ReserveRaw): ReserveJSON {\n return {\n version: reserveRaw.version.toString(),\n lastUpdate: {\n slot: reserveRaw.lastUpdate.slot.toString(),\n stale: reserveRaw.lastUpdate.stale,\n priceStatus: reserveRaw.lastUpdate.priceStatus,\n placeholder: reserveRaw.lastUpdate.placeholder,\n },\n lendingMarket: reserveRaw.lendingMarket.toBase58(),\n farmCollateral: reserveRaw.farmCollateral.toBase58(),\n farmDebt: reserveRaw.farmDebt.toBase58(),\n liquidity: reserveLiquidityFieldsToDto(reserveRaw.liquidity),\n reserveLiquidityPadding: reserveRaw.reserveLiquidityPadding.map((item) =>\n item.toString()\n ),\n collateral: {\n mintPubkey: reserveRaw.collateral.mintPubkey.toBase58(),\n mintTotalSupply: reserveRaw.collateral.mintTotalSupply.toString(),\n supplyVault: reserveRaw.collateral.supplyVault.toBase58(),\n padding1: reserveRaw.collateral.padding1.map((item) => item.toString()),\n padding2: reserveRaw.collateral.padding2.map((item) => item.toString()),\n },\n reserveCollateralPadding: reserveRaw.reserveCollateralPadding.map((item) =>\n item.toString()\n ),\n config: reserveConfigFieldsToDto(reserveRaw.config),\n configPadding: reserveRaw.configPadding.map((item) => item.toString()),\n borrowedAmountOutsideElevationGroup:\n reserveRaw.borrowedAmountOutsideElevationGroup.toString(),\n borrowedAmountsAgainstThisReserveInElevationGroups:\n reserveRaw.borrowedAmountsAgainstThisReserveInElevationGroups.map(\n (item) => item.toString()\n ),\n padding: reserveRaw.padding.map((item) => item.toString()),\n };\n}\n\nfunction reserveLiquidityFieldsToDto(\n reserveLiquidityFields: ReserveLiquidityFields\n): ReserveLiquidityJSON {\n return {\n mintPubkey: reserveLiquidityFields.mintPubkey.toBase58(),\n supplyVault: reserveLiquidityFields.supplyVault.toBase58(),\n feeVault: reserveLiquidityFields.feeVault.toBase58(),\n availableAmount: reserveLiquidityFields.availableAmount.toString(),\n borrowedAmountSf: reserveLiquidityFields.borrowedAmountSf.toString(),\n marketPriceSf: reserveLiquidityFields.marketPriceSf.toString(),\n marketPriceLastUpdatedTs:\n reserveLiquidityFields.marketPriceLastUpdatedTs.toString(),\n mintDecimals: reserveLiquidityFields.mintDecimals.toString(),\n depositLimitCrossedTimestamp:\n reserveLiquidityFields.depositLimitCrossedTimestamp.toString(),\n borrowLimitCrossedTimestamp:\n reserveLiquidityFields.borrowLimitCrossedTimestamp.toString(),\n cumulativeBorrowRateBsf: {\n value: reserveLiquidityFields.cumulativeBorrowRateBsf.value.map((item) =>\n item.toString()\n ),\n padding: reserveLiquidityFields.cumulativeBorrowRateBsf.padding.map(\n (item) => item.toString()\n ),\n },\n accumulatedProtocolFeesSf:\n reserveLiquidityFields.accumulatedProtocolFeesSf.toString(),\n accumulatedReferrerFeesSf:\n reserveLiquidityFields.accumulatedReferrerFeesSf.toString(),\n pendingReferrerFeesSf:\n reserveLiquidityFields.pendingReferrerFeesSf.toString(),\n absoluteReferralRateSf:\n reserveLiquidityFields.absoluteReferralRateSf.toString(),\n tokenProgram: reserveLiquidityFields.tokenProgram.toBase58(),\n padding2: reserveLiquidityFields.padding2.map((item) => item.toString()),\n padding3: reserveLiquidityFields.padding3.map((item) => item.toString()),\n };\n}\n\nfunction reserveConfigFieldsToDto(\n reserveConfigFields: ReserveConfigFields\n): ReserveConfigJSON {\n return {\n status: reserveConfigFields.status,\n assetTier: reserveConfigFields.assetTier,\n hostFixedInterestRateBps: reserveConfigFields.hostFixedInterestRateBps,\n reserved2: reserveConfigFields.reserved2,\n protocolOrderExecutionFeePct:\n reserveConfigFields.protocolOrderExecutionFeePct,\n protocolTakeRatePct: reserveConfigFields.protocolTakeRatePct,\n protocolLiquidationFeePct: reserveConfigFields.protocolLiquidationFeePct,\n loanToValuePct: reserveConfigFields.loanToValuePct,\n liquidationThresholdPct: reserveConfigFields.liquidationThresholdPct,\n minLiquidationBonusBps: reserveConfigFields.minLiquidationBonusBps,\n maxLiquidationBonusBps: reserveConfigFields.maxLiquidationBonusBps,\n badDebtLiquidationBonusBps: reserveConfigFields.badDebtLiquidationBonusBps,\n deleveragingMarginCallPeriodSecs:\n reserveConfigFields.deleveragingMarginCallPeriodSecs.toString(),\n deleveragingThresholdDecreaseBpsPerDay:\n reserveConfigFields.deleveragingThresholdDecreaseBpsPerDay.toString(),\n fees: {\n borrowFeeSf: reserveConfigFields.fees.borrowFeeSf.toString(),\n flashLoanFeeSf: reserveConfigFields.fees.flashLoanFeeSf.toString(),\n padding: reserveConfigFields.fees.padding,\n },\n borrowRateCurve: {\n points: reserveConfigFields.borrowRateCurve.points.map((item) => ({\n utilizationRateBps: item.utilizationRateBps,\n borrowRateBps: item.borrowRateBps,\n })),\n },\n borrowFactorPct: reserveConfigFields.borrowFactorPct.toString(),\n depositLimit: reserveConfigFields.depositLimit.toString(),\n borrowLimit: reserveConfigFields.borrowLimit.toString(),\n tokenInfo: tokenInfoFieldsToDto(reserveConfigFields.tokenInfo),\n depositWithdrawalCap: withdrawalCapsFieldsToDto(\n reserveConfigFields.depositWithdrawalCap\n ),\n debtWithdrawalCap: withdrawalCapsFieldsToDto(\n reserveConfigFields.debtWithdrawalCap\n ),\n elevationGroups: reserveConfigFields.elevationGroups,\n disableUsageAsCollOutsideEmode:\n reserveConfigFields.disableUsageAsCollOutsideEmode,\n utilizationLimitBlockBorrowingAbovePct:\n reserveConfigFields.utilizationLimitBlockBorrowingAbovePct,\n autodeleverageEnabled: reserveConfigFields.autodeleverageEnabled,\n reserved1: reserveConfigFields.reserved1,\n borrowLimitOutsideElevationGroup:\n reserveConfigFields.borrowLimitOutsideElevationGroup.toString(),\n borrowLimitAgainstThisCollateralInElevationGroup:\n reserveConfigFields.borrowLimitAgainstThisCollateralInElevationGroup.map(\n (item) => item.toString()\n ),\n deleveragingBonusIncreaseBpsPerDay:\n reserveConfigFields.deleveragingBonusIncreaseBpsPerDay.toString(),\n };\n}\n\nfunction tokenInfoFieldsToDto(tokenInfoFields: TokenInfoFields): TokenInfoJSON {\n return {\n name: tokenInfoFields.name,\n heuristic: {\n lower: tokenInfoFields.heuristic.lower.toString(),\n upper: tokenInfoFields.heuristic.upper.toString(),\n exp: tokenInfoFields.heuristic.exp.toString(),\n },\n maxTwapDivergenceBps: tokenInfoFields.maxTwapDivergenceBps.toString(),\n maxAgePriceSeconds: tokenInfoFields.maxAgePriceSeconds.toString(),\n maxAgeTwapSeconds: tokenInfoFields.maxAgeTwapSeconds.toString(),\n scopeConfiguration: {\n priceFeed: tokenInfoFields.scopeConfiguration.priceFeed.toBase58(),\n priceChain: tokenInfoFields.scopeConfiguration.priceChain,\n twapChain: tokenInfoFields.scopeConfiguration.twapChain,\n },\n switchboardConfiguration: {\n priceAggregator:\n tokenInfoFields.switchboardConfiguration.priceAggregator.toBase58(),\n twapAggregator:\n tokenInfoFields.switchboardConfiguration.twapAggregator.toBase58(),\n },\n pythConfiguration: {\n price: tokenInfoFields.pythConfiguration.price.toBase58(),\n },\n blockPriceUsage: tokenInfoFields.blockPriceUsage,\n reserved: tokenInfoFields.reserved,\n padding: tokenInfoFields.padding.map((item) => item.toString()),\n };\n}\n\nfunction withdrawalCapsFieldsToDto(\n withdrawalCapsFields: WithdrawalCapsFields\n): WithdrawalCapsJSON {\n return {\n configCapacity: withdrawalCapsFields.configCapacity.toString(),\n currentTotal: withdrawalCapsFields.currentTotal.toString(),\n lastIntervalStartTimestamp:\n withdrawalCapsFields.lastIntervalStartTimestamp.toString(),\n configIntervalLengthSeconds:\n withdrawalCapsFields.configIntervalLengthSeconds.toString(),\n };\n}\n\nfunction obligationCollateralToDto(\n obligationCollateralFields: ObligationCollateralFields\n): ObligationCollateralJSON {\n return {\n depositReserve: obligationCollateralFields.depositReserve.toBase58(),\n depositedAmount: obligationCollateralFields.depositedAmount.toString(),\n marketValueSf: obligationCollateralFields.marketValueSf.toString(),\n borrowedAmountAgainstThisCollateralInElevationGroup:\n obligationCollateralFields.borrowedAmountAgainstThisCollateralInElevationGroup.toString(),\n padding: obligationCollateralFields.padding.map((item) => item.toString()),\n };\n}\n\nfunction obligationLiquidityToDto(\n obligationLiquidityFields: ObligationLiquidityFields\n): ObligationLiquidityJSON {\n return {\n borrowReserve: obligationLiquidityFields.borrowReserve.toBase58(),\n cumulativeBorrowRateBsf: {\n value: obligationLiquidityFields.cumulativeBorrowRateBsf.value.map(\n (item) => item.toString()\n ),\n padding: obligationLiquidityFields.cumulativeBorrowRateBsf.padding.map(\n (item) => item.toString()\n ),\n },\n padding: obligationLiquidityFields.padding.toString(),\n borrowedAmountSf: obligationLiquidityFields.borrowedAmountSf.toString(),\n marketValueSf: obligationLiquidityFields.marketValueSf.toString(),\n borrowFactorAdjustedMarketValueSf:\n obligationLiquidityFields.borrowFactorAdjustedMarketValueSf.toString(),\n borrowedAmountOutsideElevationGroups:\n obligationLiquidityFields.borrowedAmountOutsideElevationGroups.toString(),\n padding2: obligationLiquidityFields.padding2.map((item) => item.toString()),\n };\n}\n\nfunction obligationOrderToDto(\n obligationOrderFields: ObligationOrderFields\n): ObligationOrderJSON {\n return {\n conditionThresholdSf: obligationOrderFields.conditionThresholdSf.toString(),\n opportunityParameterSf:\n obligationOrderFields.opportunityParameterSf.toString(),\n minExecutionBonusBps: obligationOrderFields.minExecutionBonusBps,\n maxExecutionBonusBps: obligationOrderFields.maxExecutionBonusBps,\n conditionType: obligationOrderFields.conditionType,\n opportunityType: obligationOrderFields.opportunityType,\n padding1: obligationOrderFields.padding1,\n padding2: obligationOrderFields.padding2.map((item) => item.toString()),\n };\n}\n","{\n \"address\": \"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD\",\n \"metadata\": {\n \"name\": \"kamino_lending\",\n \"version\": \"1.11.0\",\n \"spec\": \"0.1.0\"\n },\n \"instructions\": [\n {\n \"name\": \"init_lending_market\",\n \"discriminator\": [\n 34,\n 162,\n 116,\n 14,\n 101,\n 137,\n 94,\n 239\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"lending_market\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": [\n {\n \"name\": \"quote_currency\",\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n }\n ]\n },\n {\n \"name\": \"update_lending_market\",\n \"discriminator\": [\n 209,\n 157,\n 53,\n 210,\n 97,\n 180,\n 31,\n 45\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u8\",\n 72\n ]\n }\n }\n ]\n },\n {\n \"name\": \"update_lending_market_owner\",\n \"discriminator\": [\n 118,\n 224,\n 10,\n 62,\n 196,\n 230,\n 184,\n 89\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner_cached\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"init_reserve\",\n \"discriminator\": [\n 138,\n 245,\n 71,\n 225,\n 153,\n 4,\n 3,\n 43\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_supply\",\n \"writable\": true\n },\n {\n \"name\": \"initial_liquidity_source\",\n \"writable\": true\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"init_farms_for_reserve\",\n \"discriminator\": [\n 218,\n 6,\n 62,\n 233,\n 1,\n 33,\n 232,\n 82\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market_owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"farms_program\"\n },\n {\n \"name\": \"farms_global_config\"\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"farms_vault_authority\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"update_reserve_config\",\n \"discriminator\": [\n 61,\n 148,\n 100,\n 70,\n 143,\n 107,\n 17,\n 13\n ],\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateConfigMode\"\n }\n }\n },\n {\n \"name\": \"value\",\n \"type\": \"bytes\"\n },\n {\n \"name\": \"skip_config_integrity_validation\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"redeem_fees\",\n \"discriminator\": [\n 215,\n 39,\n 180,\n 41,\n 173,\n 46,\n 248,\n 220\n ],\n \"accounts\": [\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_supply_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_protocol_fee\",\n \"discriminator\": [\n 158,\n 201,\n 158,\n 189,\n 33,\n 93,\n 162,\n 103\n ],\n \"accounts\": [\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\"\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"fee_vault\",\n \"writable\": true\n },\n {\n \"name\": \"fee_collector_ata\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"socialize_loss\",\n \"discriminator\": [\n 245,\n 75,\n 91,\n 0,\n 236,\n 97,\n 19,\n 3\n ],\n \"accounts\": [\n {\n \"name\": \"risk_council\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"socialize_loss_v2\",\n \"discriminator\": [\n 238,\n 95,\n 98,\n 220,\n 187,\n 40,\n 204,\n 154\n ],\n \"accounts\": [\n {\n \"name\": \"socialize_loss_accounts\",\n \"accounts\": [\n {\n \"name\": \"risk_council\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"mark_obligation_for_deleveraging\",\n \"discriminator\": [\n 164,\n 35,\n 182,\n 19,\n 0,\n 116,\n 243,\n 127\n ],\n \"accounts\": [\n {\n \"name\": \"risk_council\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n }\n ],\n \"args\": [\n {\n \"name\": \"autodeleverage_target_ltv_pct\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"refresh_reserve\",\n \"discriminator\": [\n 2,\n 218,\n 138,\n 235,\n 79,\n 201,\n 25,\n 102\n ],\n \"accounts\": [\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"pyth_oracle\",\n \"optional\": true\n },\n {\n \"name\": \"switchboard_price_oracle\",\n \"optional\": true\n },\n {\n \"name\": \"switchboard_twap_oracle\",\n \"optional\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"refresh_reserves_batch\",\n \"discriminator\": [\n 144,\n 110,\n 26,\n 103,\n 162,\n 204,\n 252,\n 147\n ],\n \"accounts\": [],\n \"args\": [\n {\n \"name\": \"skip_price_updates\",\n \"type\": \"bool\"\n }\n ]\n },\n {\n \"name\": \"deposit_reserve_liquidity\",\n \"discriminator\": [\n 169,\n 201,\n 30,\n 126,\n 6,\n 205,\n 102,\n 68\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"redeem_reserve_collateral\",\n \"discriminator\": [\n 234,\n 117,\n 181,\n 125,\n 185,\n 142,\n 220,\n 29\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"init_obligation\",\n \"discriminator\": [\n 251,\n 10,\n 231,\n 76,\n 27,\n 11,\n 159,\n 96\n ],\n \"accounts\": [\n {\n \"name\": \"obligation_owner\",\n \"signer\": true\n },\n {\n \"name\": \"fee_payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"seed1_account\"\n },\n {\n \"name\": \"seed2_account\"\n },\n {\n \"name\": \"owner_user_metadata\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"args\",\n \"type\": {\n \"defined\": {\n \"name\": \"InitObligationArgs\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"init_obligation_farms_for_reserve\",\n \"discriminator\": [\n 136,\n 63,\n 15,\n 186,\n 211,\n 152,\n 168,\n 164\n ],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"owner\"\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"obligation_farm\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"farms_program\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"refresh_obligation_farms_for_reserve\",\n \"discriminator\": [\n 140,\n 144,\n 253,\n 21,\n 10,\n 74,\n 248,\n 3\n ],\n \"accounts\": [\n {\n \"name\": \"crank\",\n \"signer\": true\n },\n {\n \"name\": \"base_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\"\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"refresh_obligation\",\n \"discriminator\": [\n 33,\n 132,\n 147,\n 228,\n 151,\n 192,\n 72,\n 89\n ],\n \"accounts\": [\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"deposit_obligation_collateral\",\n \"discriminator\": [\n 108,\n 209,\n 4,\n 72,\n 21,\n 22,\n 118,\n 133\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"deposit_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_obligation_collateral_v2\",\n \"discriminator\": [\n 137,\n 145,\n 151,\n 94,\n 167,\n 113,\n 4,\n 145\n ],\n \"accounts\": [\n {\n \"name\": \"deposit_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"deposit_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_obligation_collateral\",\n \"discriminator\": [\n 37,\n 116,\n 205,\n 103,\n 243,\n 192,\n 92,\n 198\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_obligation_collateral_v2\",\n \"discriminator\": [\n 202,\n 249,\n 117,\n 114,\n 231,\n 192,\n 47,\n 138\n ],\n \"accounts\": [\n {\n \"name\": \"withdraw_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"borrow_obligation_liquidity\",\n \"discriminator\": [\n 121,\n 127,\n 18,\n 204,\n 73,\n 245,\n 225,\n 65\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"borrow_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"borrow_reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"borrow_reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"borrow_obligation_liquidity_v2\",\n \"discriminator\": [\n 161,\n 128,\n 143,\n 245,\n 171,\n 199,\n 194,\n 6\n ],\n \"accounts\": [\n {\n \"name\": \"borrow_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"borrow_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"borrow_reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"borrow_reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"repay_obligation_liquidity\",\n \"discriminator\": [\n 145,\n 178,\n 13,\n 225,\n 76,\n 240,\n 147,\n 72\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"repay_obligation_liquidity_v2\",\n \"discriminator\": [\n 116,\n 174,\n 213,\n 76,\n 180,\n 53,\n 210,\n 144\n ],\n \"accounts\": [\n {\n \"name\": \"repay_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"repay_and_withdraw_and_redeem\",\n \"discriminator\": [\n 2,\n 54,\n 152,\n 3,\n 148,\n 96,\n 109,\n 218\n ],\n \"accounts\": [\n {\n \"name\": \"repay_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"withdraw_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"collateral_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"debt_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"repay_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdraw_collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_and_withdraw\",\n \"discriminator\": [\n 141,\n 153,\n 39,\n 15,\n 64,\n 61,\n 88,\n 84\n ],\n \"accounts\": [\n {\n \"name\": \"deposit_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_deposit_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"withdraw_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"deposit_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"withdraw_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"withdraw_collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_reserve_liquidity_and_obligation_collateral\",\n \"discriminator\": [\n 129,\n 199,\n 4,\n 2,\n 222,\n 39,\n 26,\n 46\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_deposit_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_reserve_liquidity_and_obligation_collateral_v2\",\n \"discriminator\": [\n 216,\n 224,\n 191,\n 27,\n 204,\n 151,\n 102,\n 175\n ],\n \"accounts\": [\n {\n \"name\": \"deposit_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_destination_deposit_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_obligation_collateral_and_redeem_reserve_collateral\",\n \"discriminator\": [\n 75,\n 93,\n 93,\n 220,\n 34,\n 150,\n 218,\n 196\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_obligation_collateral_and_redeem_reserve_collateral_v2\",\n \"discriminator\": [\n 235,\n 52,\n 119,\n 152,\n 149,\n 197,\n 20,\n 7\n ],\n \"accounts\": [\n {\n \"name\": \"withdraw_accounts\",\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"placeholder_user_destination_collateral\",\n \"optional\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"collateral_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"liquidate_obligation_and_redeem_reserve_collateral\",\n \"discriminator\": [\n 177,\n 71,\n 154,\n 188,\n 226,\n 133,\n 74,\n 55\n ],\n \"accounts\": [\n {\n \"name\": \"liquidator\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"repay_reserve_liquidity_mint\"\n },\n {\n \"name\": \"repay_reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_mint\"\n },\n {\n \"name\": \"withdraw_reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_collateral_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"repay_liquidity_token_program\"\n },\n {\n \"name\": \"withdraw_liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_acceptable_received_liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_allowed_ltv_override_percent\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"liquidate_obligation_and_redeem_reserve_collateral_v2\",\n \"discriminator\": [\n 162,\n 161,\n 35,\n 143,\n 30,\n 187,\n 185,\n 103\n ],\n \"accounts\": [\n {\n \"name\": \"liquidation_accounts\",\n \"accounts\": [\n {\n \"name\": \"liquidator\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\",\n \"writable\": true\n },\n {\n \"name\": \"repay_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"repay_reserve_liquidity_mint\"\n },\n {\n \"name\": \"repay_reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_mint\"\n },\n {\n \"name\": \"withdraw_reserve_collateral_mint\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_collateral_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_supply\",\n \"writable\": true\n },\n {\n \"name\": \"withdraw_reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_collateral\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"collateral_token_program\"\n },\n {\n \"name\": \"repay_liquidity_token_program\"\n },\n {\n \"name\": \"withdraw_liquidity_token_program\"\n },\n {\n \"name\": \"instruction_sysvar_account\"\n }\n ]\n },\n {\n \"name\": \"collateral_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"debt_farms_accounts\",\n \"accounts\": [\n {\n \"name\": \"obligation_farm_user_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"reserve_farm_state\",\n \"writable\": true,\n \"optional\": true\n }\n ]\n },\n {\n \"name\": \"farms_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_acceptable_received_liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_allowed_ltv_override_percent\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"flash_repay_reserve_liquidity\",\n \"discriminator\": [\n 185,\n 117,\n 0,\n 203,\n 96,\n 245,\n 180,\n 186\n ],\n \"accounts\": [\n {\n \"name\": \"user_transfer_authority\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"referrer_account\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"sysvar_info\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrow_instruction_index\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"flash_borrow_reserve_liquidity\",\n \"discriminator\": [\n 135,\n 231,\n 52,\n 167,\n 7,\n 52,\n 212,\n 193\n ],\n \"accounts\": [\n {\n \"name\": \"user_transfer_authority\",\n \"signer\": true\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_source_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"user_destination_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_fee_receiver\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"referrer_account\",\n \"writable\": true,\n \"optional\": true\n },\n {\n \"name\": \"sysvar_info\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"liquidity_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"request_elevation_group\",\n \"discriminator\": [\n 36,\n 119,\n 251,\n 129,\n 34,\n 240,\n 7,\n 147\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n }\n ],\n \"args\": [\n {\n \"name\": \"elevation_group\",\n \"type\": \"u8\"\n }\n ]\n },\n {\n \"name\": \"init_referrer_token_state\",\n \"discriminator\": [\n 116,\n 45,\n 66,\n 148,\n 58,\n 13,\n 218,\n 115\n ],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\"\n },\n {\n \"name\": \"referrer\"\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"init_user_metadata\",\n \"discriminator\": [\n 117,\n 169,\n 176,\n 69,\n 197,\n 23,\n 15,\n 162\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"fee_payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"user_metadata\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_user_metadata\",\n \"optional\": true\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"user_lookup_table\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"withdraw_referrer_fees\",\n \"discriminator\": [\n 171,\n 118,\n 121,\n 201,\n 233,\n 140,\n 23,\n 228\n ],\n \"accounts\": [\n {\n \"name\": \"referrer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"referrer_token_state\",\n \"writable\": true\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n },\n {\n \"name\": \"reserve_liquidity_mint\"\n },\n {\n \"name\": \"reserve_supply_liquidity\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"lending_market_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"init_referrer_state_and_short_url\",\n \"discriminator\": [\n 165,\n 19,\n 25,\n 127,\n 100,\n 55,\n 31,\n 90\n ],\n \"accounts\": [\n {\n \"name\": \"referrer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"referrer_state\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_short_url\",\n \"writable\": true\n },\n {\n \"name\": \"referrer_user_metadata\"\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"short_url\",\n \"type\": \"string\"\n }\n ]\n },\n {\n \"name\": \"delete_referrer_state_and_short_url\",\n \"discriminator\": [\n 153,\n 185,\n 99,\n 28,\n 228,\n 179,\n 187,\n 150\n ],\n \"accounts\": [\n {\n \"name\": \"referrer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"referrer_state\",\n \"writable\": true\n },\n {\n \"name\": \"short_url\",\n \"writable\": true\n },\n {\n \"name\": \"rent\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"set_obligation_order\",\n \"discriminator\": [\n 81,\n 1,\n 99,\n 156,\n 211,\n 83,\n 78,\n 46\n ],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"obligation\",\n \"writable\": true\n },\n {\n \"name\": \"lending_market\"\n }\n ],\n \"args\": [\n {\n \"name\": \"index\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"order\",\n \"type\": {\n \"defined\": {\n \"name\": \"ObligationOrder\"\n }\n }\n }\n ]\n },\n {\n \"name\": \"init_global_config\",\n \"discriminator\": [\n 140,\n 136,\n 214,\n 48,\n 87,\n 0,\n 120,\n 255\n ],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n },\n {\n \"name\": \"program_data\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_global_config\",\n \"discriminator\": [\n 164,\n 84,\n 130,\n 189,\n 111,\n 58,\n 250,\n 200\n ],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateGlobalConfigMode\"\n }\n }\n },\n {\n \"name\": \"value\",\n \"type\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"update_global_config_admin\",\n \"discriminator\": [\n 184,\n 87,\n 23,\n 193,\n 156,\n 238,\n 175,\n 119\n ],\n \"accounts\": [\n {\n \"name\": \"pending_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"idl_missing_types\",\n \"discriminator\": [\n 130,\n 80,\n 38,\n 153,\n 80,\n 212,\n 182,\n 253\n ],\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"lending_market\"\n },\n {\n \"name\": \"reserve\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"reserve_farm_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveFarmKind\"\n }\n }\n },\n {\n \"name\": \"asset_tier\",\n \"type\": {\n \"defined\": {\n \"name\": \"AssetTier\"\n }\n }\n },\n {\n \"name\": \"fee_calculation\",\n \"type\": {\n \"defined\": {\n \"name\": \"FeeCalculation\"\n }\n }\n },\n {\n \"name\": \"reserve_status\",\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveStatus\"\n }\n }\n },\n {\n \"name\": \"update_config_mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateConfigMode\"\n }\n }\n },\n {\n \"name\": \"update_lending_market_config_value\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateLendingMarketConfigValue\"\n }\n }\n },\n {\n \"name\": \"update_lending_market_config_mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"UpdateLendingMarketMode\"\n }\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"UserState\",\n \"discriminator\": [\n 72,\n 177,\n 85,\n 249,\n 76,\n 167,\n 186,\n 126\n ]\n },\n {\n \"name\": \"GlobalConfig\",\n \"discriminator\": [\n 149,\n 8,\n 156,\n 202,\n 160,\n 252,\n 176,\n 217\n ]\n },\n {\n \"name\": \"LendingMarket\",\n \"discriminator\": [\n 246,\n 114,\n 50,\n 98,\n 72,\n 157,\n 28,\n 120\n ]\n },\n {\n \"name\": \"Obligation\",\n \"discriminator\": [\n 168,\n 206,\n 141,\n 106,\n 88,\n 76,\n 172,\n 167\n ]\n },\n {\n \"name\": \"ReferrerState\",\n \"discriminator\": [\n 194,\n 81,\n 217,\n 103,\n 12,\n 19,\n 12,\n 66\n ]\n },\n {\n \"name\": \"ReferrerTokenState\",\n \"discriminator\": [\n 39,\n 15,\n 208,\n 77,\n 32,\n 195,\n 105,\n 56\n ]\n },\n {\n \"name\": \"ShortUrl\",\n \"discriminator\": [\n 28,\n 89,\n 174,\n 25,\n 226,\n 124,\n 126,\n 212\n ]\n },\n {\n \"name\": \"UserMetadata\",\n \"discriminator\": [\n 157,\n 214,\n 220,\n 235,\n 98,\n 135,\n 171,\n 28\n ]\n },\n {\n \"name\": \"Reserve\",\n \"discriminator\": [\n 43,\n 242,\n 204,\n 202,\n 26,\n 247,\n 59,\n 127\n ]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"InvalidMarketAuthority\",\n \"msg\": \"Market authority is invalid\"\n },\n {\n \"code\": 6001,\n \"name\": \"InvalidMarketOwner\",\n \"msg\": \"Market owner is invalid\"\n },\n {\n \"code\": 6002,\n \"name\": \"InvalidAccountOwner\",\n \"msg\": \"Input account owner is not the program address\"\n },\n {\n \"code\": 6003,\n \"name\": \"InvalidAmount\",\n \"msg\": \"Input amount is invalid\"\n },\n {\n \"code\": 6004,\n \"name\": \"InvalidConfig\",\n \"msg\": \"Input config value is invalid\"\n },\n {\n \"code\": 6005,\n \"name\": \"InvalidSigner\",\n \"msg\": \"Input account must be a signer\"\n },\n {\n \"code\": 6006,\n \"name\": \"InvalidAccountInput\",\n \"msg\": \"Invalid account input\"\n },\n {\n \"code\": 6007,\n \"name\": \"MathOverflow\",\n \"msg\": \"Math operation overflow\"\n },\n {\n \"code\": 6008,\n \"name\": \"InsufficientLiquidity\",\n \"msg\": \"Insufficient liquidity available\"\n },\n {\n \"code\": 6009,\n \"name\": \"ReserveStale\",\n \"msg\": \"Reserve state needs to be refreshed\"\n },\n {\n \"code\": 6010,\n \"name\": \"WithdrawTooSmall\",\n \"msg\": \"Withdraw amount too small\"\n },\n {\n \"code\": 6011,\n \"name\": \"WithdrawTooLarge\",\n \"msg\": \"Withdraw amount too large\"\n },\n {\n \"code\": 6012,\n \"name\": \"BorrowTooSmall\",\n \"msg\": \"Borrow amount too small to receive liquidity after fees\"\n },\n {\n \"code\": 6013,\n \"name\": \"BorrowTooLarge\",\n \"msg\": \"Borrow amount too large for deposited collateral\"\n },\n {\n \"code\": 6014,\n \"name\": \"RepayTooSmall\",\n \"msg\": \"Repay amount too small to transfer liquidity\"\n },\n {\n \"code\": 6015,\n \"name\": \"LiquidationTooSmall\",\n \"msg\": \"Liquidation amount too small to receive collateral\"\n },\n {\n \"code\": 6016,\n \"name\": \"ObligationHealthy\",\n \"msg\": \"Cannot liquidate healthy obligations\"\n },\n {\n \"code\": 6017,\n \"name\": \"ObligationStale\",\n \"msg\": \"Obligation state needs to be refreshed\"\n },\n {\n \"code\": 6018,\n \"name\": \"ObligationReserveLimit\",\n \"msg\": \"Obligation reserve limit exceeded\"\n },\n {\n \"code\": 6019,\n \"name\": \"InvalidObligationOwner\",\n \"msg\": \"Obligation owner is invalid\"\n },\n {\n \"code\": 6020,\n \"name\": \"ObligationDepositsEmpty\",\n \"msg\": \"Obligation deposits are empty\"\n },\n {\n \"code\": 6021,\n \"name\": \"ObligationBorrowsEmpty\",\n \"msg\": \"Obligation borrows are empty\"\n },\n {\n \"code\": 6022,\n \"name\": \"ObligationDepositsZero\",\n \"msg\": \"Obligation deposits have zero value\"\n },\n {\n \"code\": 6023,\n \"name\": \"ObligationBorrowsZero\",\n \"msg\": \"Obligation borrows have zero value\"\n },\n {\n \"code\": 6024,\n \"name\": \"InvalidObligationCollateral\",\n \"msg\": \"Invalid obligation collateral\"\n },\n {\n \"code\": 6025,\n \"name\": \"InvalidObligationLiquidity\",\n \"msg\": \"Invalid obligation liquidity\"\n },\n {\n \"code\": 6026,\n \"name\": \"ObligationCollateralEmpty\",\n \"msg\": \"Obligation collateral is empty\"\n },\n {\n \"code\": 6027,\n \"name\": \"ObligationLiquidityEmpty\",\n \"msg\": \"Obligation liquidity is empty\"\n },\n {\n \"code\": 6028,\n \"name\": \"NegativeInterestRate\",\n \"msg\": \"Interest rate is negative\"\n },\n {\n \"code\": 6029,\n \"name\": \"InvalidOracleConfig\",\n \"msg\": \"Input oracle config is invalid\"\n },\n {\n \"code\": 6030,\n \"name\": \"InsufficientProtocolFeesToRedeem\",\n \"msg\": \"Insufficient protocol fees to claim or no liquidity available\"\n },\n {\n \"code\": 6031,\n \"name\": \"FlashBorrowCpi\",\n \"msg\": \"No cpi flash borrows allowed\"\n },\n {\n \"code\": 6032,\n \"name\": \"NoFlashRepayFound\",\n \"msg\": \"No corresponding repay found for flash borrow\"\n },\n {\n \"code\": 6033,\n \"name\": \"InvalidFlashRepay\",\n \"msg\": \"Invalid repay found\"\n },\n {\n \"code\": 6034,\n \"name\": \"FlashRepayCpi\",\n \"msg\": \"No cpi flash repays allowed\"\n },\n {\n \"code\": 6035,\n \"name\": \"MultipleFlashBorrows\",\n \"msg\": \"Multiple flash borrows not allowed in the same transaction\"\n },\n {\n \"code\": 6036,\n \"name\": \"FlashLoansDisabled\",\n \"msg\": \"Flash loans are disabled for this reserve\"\n },\n {\n \"code\": 6037,\n \"name\": \"SwitchboardV2Error\",\n \"msg\": \"Switchboard error\"\n },\n {\n \"code\": 6038,\n \"name\": \"CouldNotDeserializeScope\",\n \"msg\": \"Cannot deserialize the scope price account\"\n },\n {\n \"code\": 6039,\n \"name\": \"PriceTooOld\",\n \"msg\": \"Price too old\"\n },\n {\n \"code\": 6040,\n \"name\": \"PriceTooDivergentFromTwap\",\n \"msg\": \"Price too divergent from twap\"\n },\n {\n \"code\": 6041,\n \"name\": \"InvalidTwapPrice\",\n \"msg\": \"Invalid twap price\"\n },\n {\n \"code\": 6042,\n \"name\": \"GlobalEmergencyMode\",\n \"msg\": \"Emergency mode is enabled\"\n },\n {\n \"code\": 6043,\n \"name\": \"InvalidFlag\",\n \"msg\": \"Invalid lending market config\"\n },\n {\n \"code\": 6044,\n \"name\": \"PriceNotValid\",\n \"msg\": \"Price is not valid\"\n },\n {\n \"code\": 6045,\n \"name\": \"PriceIsBiggerThanHeuristic\",\n \"msg\": \"Price is bigger than allowed by heuristic\"\n },\n {\n \"code\": 6046,\n \"name\": \"PriceIsLowerThanHeuristic\",\n \"msg\": \"Price lower than allowed by heuristic\"\n },\n {\n \"code\": 6047,\n \"name\": \"PriceIsZero\",\n \"msg\": \"Price is zero\"\n },\n {\n \"code\": 6048,\n \"name\": \"PriceConfidenceTooWide\",\n \"msg\": \"Price confidence too wide\"\n },\n {\n \"code\": 6049,\n \"name\": \"IntegerOverflow\",\n \"msg\": \"Conversion between integers failed\"\n },\n {\n \"code\": 6050,\n \"name\": \"NoFarmForReserve\",\n \"msg\": \"This reserve does not have a farm\"\n },\n {\n \"code\": 6051,\n \"name\": \"IncorrectInstructionInPosition\",\n \"msg\": \"Wrong instruction at expected position\"\n },\n {\n \"code\": 6052,\n \"name\": \"NoPriceFound\",\n \"msg\": \"No price found\"\n },\n {\n \"code\": 6053,\n \"name\": \"InvalidTwapConfig\",\n \"msg\": \"Invalid Twap configuration: Twap is enabled but one of the enabled price doesn't have a twap\"\n },\n {\n \"code\": 6054,\n \"name\": \"InvalidPythPriceAccount\",\n \"msg\": \"Pyth price account does not match configuration\"\n },\n {\n \"code\": 6055,\n \"name\": \"InvalidSwitchboardAccount\",\n \"msg\": \"Switchboard account(s) do not match configuration\"\n },\n {\n \"code\": 6056,\n \"name\": \"InvalidScopePriceAccount\",\n \"msg\": \"Scope price account does not match configuration\"\n },\n {\n \"code\": 6057,\n \"name\": \"ObligationCollateralLtvZero\",\n \"msg\": \"The obligation has one collateral with an LTV set to 0. Withdraw it before withdrawing other collaterals\"\n },\n {\n \"code\": 6058,\n \"name\": \"InvalidObligationSeedsValue\",\n \"msg\": \"Seeds must be default pubkeys for tag 0, and mint addresses for tag 1 or 2\"\n },\n {\n \"code\": 6059,\n \"name\": \"DeprecatedInvalidObligationId\",\n \"msg\": \"[DEPRECATED] Obligation id must be 0\"\n },\n {\n \"code\": 6060,\n \"name\": \"InvalidBorrowRateCurvePoint\",\n \"msg\": \"Invalid borrow rate curve point\"\n },\n {\n \"code\": 6061,\n \"name\": \"InvalidUtilizationRate\",\n \"msg\": \"Invalid utilization rate\"\n },\n {\n \"code\": 6062,\n \"name\": \"CannotSocializeObligationWithCollateral\",\n \"msg\": \"Obligation hasn't been fully liquidated and debt cannot be socialized.\"\n },\n {\n \"code\": 6063,\n \"name\": \"ObligationEmpty\",\n \"msg\": \"Obligation has no borrows or deposits.\"\n },\n {\n \"code\": 6064,\n \"name\": \"WithdrawalCapReached\",\n \"msg\": \"Withdrawal cap is reached\"\n },\n {\n \"code\": 6065,\n \"name\": \"LastTimestampGreaterThanCurrent\",\n \"msg\": \"The last interval start timestamp is greater than the current timestamp\"\n },\n {\n \"code\": 6066,\n \"name\": \"LiquidationRewardTooSmall\",\n \"msg\": \"The reward amount is less than the minimum acceptable received liquidity\"\n },\n {\n \"code\": 6067,\n \"name\": \"IsolatedAssetTierViolation\",\n \"msg\": \"Isolated Asset Tier Violation\"\n },\n {\n \"code\": 6068,\n \"name\": \"InconsistentElevationGroup\",\n \"msg\": \"The obligation's elevation group and the reserve's are not the same\"\n },\n {\n \"code\": 6069,\n \"name\": \"InvalidElevationGroup\",\n \"msg\": \"The elevation group chosen for the reserve does not exist in the lending market\"\n },\n {\n \"code\": 6070,\n \"name\": \"InvalidElevationGroupConfig\",\n \"msg\": \"The elevation group updated has wrong parameters set\"\n },\n {\n \"code\": 6071,\n \"name\": \"UnhealthyElevationGroupLtv\",\n \"msg\": \"The current obligation must have most or all its debt repaid before changing the elevation group\"\n },\n {\n \"code\": 6072,\n \"name\": \"ElevationGroupNewLoansDisabled\",\n \"msg\": \"Elevation group does not accept any new loans or any new borrows/withdrawals\"\n },\n {\n \"code\": 6073,\n \"name\": \"ReserveDeprecated\",\n \"msg\": \"Reserve was deprecated, no longer usable\"\n },\n {\n \"code\": 6074,\n \"name\": \"ReferrerAccountNotInitialized\",\n \"msg\": \"Referrer account not initialized\"\n },\n {\n \"code\": 6075,\n \"name\": \"ReferrerAccountMintMissmatch\",\n \"msg\": \"Referrer account mint does not match the operation reserve mint\"\n },\n {\n \"code\": 6076,\n \"name\": \"ReferrerAccountWrongAddress\",\n \"msg\": \"Referrer account address is not a valid program address\"\n },\n {\n \"code\": 6077,\n \"name\": \"ReferrerAccountReferrerMissmatch\",\n \"msg\": \"Referrer account referrer does not match the owner referrer\"\n },\n {\n \"code\": 6078,\n \"name\": \"ReferrerAccountMissing\",\n \"msg\": \"Referrer account missing for obligation with referrer\"\n },\n {\n \"code\": 6079,\n \"name\": \"InsufficientReferralFeesToRedeem\",\n \"msg\": \"Insufficient referral fees to claim or no liquidity available\"\n },\n {\n \"code\": 6080,\n \"name\": \"CpiDisabled\",\n \"msg\": \"CPI disabled for this instruction\"\n },\n {\n \"code\": 6081,\n \"name\": \"ShortUrlNotAsciiAlphanumeric\",\n \"msg\": \"Referrer short_url is not ascii alphanumeric\"\n },\n {\n \"code\": 6082,\n \"name\": \"ReserveObsolete\",\n \"msg\": \"Reserve is marked as obsolete\"\n },\n {\n \"code\": 6083,\n \"name\": \"ElevationGroupAlreadyActivated\",\n \"msg\": \"Obligation already part of the same elevation group\"\n },\n {\n \"code\": 6084,\n \"name\": \"ObligationInObsoleteReserve\",\n \"msg\": \"Obligation has a deposit or borrow in an obsolete reserve\"\n },\n {\n \"code\": 6085,\n \"name\": \"ReferrerStateOwnerMismatch\",\n \"msg\": \"Referrer state owner does not match the given signer\"\n },\n {\n \"code\": 6086,\n \"name\": \"UserMetadataOwnerAlreadySet\",\n \"msg\": \"User metadata owner is already set\"\n },\n {\n \"code\": 6087,\n \"name\": \"CollateralNonLiquidatable\",\n \"msg\": \"This collateral cannot be liquidated (LTV set to 0)\"\n },\n {\n \"code\": 6088,\n \"name\": \"BorrowingDisabled\",\n \"msg\": \"Borrowing is disabled\"\n },\n {\n \"code\": 6089,\n \"name\": \"BorrowLimitExceeded\",\n \"msg\": \"Cannot borrow above borrow limit\"\n },\n {\n \"code\": 6090,\n \"name\": \"DepositLimitExceeded\",\n \"msg\": \"Cannot deposit above deposit limit\"\n },\n {\n \"code\": 6091,\n \"name\": \"BorrowingDisabledOutsideElevationGroup\",\n \"msg\": \"Reserve does not accept any new borrows outside elevation group\"\n },\n {\n \"code\": 6092,\n \"name\": \"NetValueRemainingTooSmall\",\n \"msg\": \"Net value remaining too small\"\n },\n {\n \"code\": 6093,\n \"name\": \"WorseLtvBlocked\",\n \"msg\": \"Cannot get the obligation in a worse position\"\n },\n {\n \"code\": 6094,\n \"name\": \"LiabilitiesBiggerThanAssets\",\n \"msg\": \"Cannot have more liabilities than assets in a position\"\n },\n {\n \"code\": 6095,\n \"name\": \"ReserveTokenBalanceMismatch\",\n \"msg\": \"Reserve state and token account cannot drift\"\n },\n {\n \"code\": 6096,\n \"name\": \"ReserveVaultBalanceMismatch\",\n \"msg\": \"Reserve token account has been unexpectedly modified\"\n },\n {\n \"code\": 6097,\n \"name\": \"ReserveAccountingMismatch\",\n \"msg\": \"Reserve internal state accounting has been unexpectedly modified\"\n },\n {\n \"code\": 6098,\n \"name\": \"BorrowingAboveUtilizationRateDisabled\",\n \"msg\": \"Borrowing above set utilization rate is disabled\"\n },\n {\n \"code\": 6099,\n \"name\": \"LiquidationBorrowFactorPriority\",\n \"msg\": \"Liquidation must prioritize the debt with the highest borrow factor\"\n },\n {\n \"code\": 6100,\n \"name\": \"LiquidationLowestLiquidationLtvPriority\",\n \"msg\": \"Liquidation must prioritize the collateral with the lowest liquidation LTV\"\n },\n {\n \"code\": 6101,\n \"name\": \"ElevationGroupBorrowLimitExceeded\",\n \"msg\": \"Elevation group borrow limit exceeded\"\n },\n {\n \"code\": 6102,\n \"name\": \"ElevationGroupWithoutDebtReserve\",\n \"msg\": \"The elevation group does not have a debt reserve defined\"\n },\n {\n \"code\": 6103,\n \"name\": \"ElevationGroupMaxCollateralReserveZero\",\n \"msg\": \"The elevation group does not allow any collateral reserves\"\n },\n {\n \"code\": 6104,\n \"name\": \"ElevationGroupHasAnotherDebtReserve\",\n \"msg\": \"In elevation group attempt to borrow from a reserve that is not the debt reserve\"\n },\n {\n \"code\": 6105,\n \"name\": \"ElevationGroupDebtReserveAsCollateral\",\n \"msg\": \"The elevation group's debt reserve cannot be used as a collateral reserve\"\n },\n {\n \"code\": 6106,\n \"name\": \"ObligationCollateralExceedsElevationGroupLimit\",\n \"msg\": \"Obligation have more collateral than the maximum allowed by the elevation group\"\n },\n {\n \"code\": 6107,\n \"name\": \"ObligationElevationGroupMultipleDebtReserve\",\n \"msg\": \"Obligation is an elevation group but have more than one debt reserve\"\n },\n {\n \"code\": 6108,\n \"name\": \"UnsupportedTokenExtension\",\n \"msg\": \"Mint has a token (2022) extension that is not supported\"\n },\n {\n \"code\": 6109,\n \"name\": \"InvalidTokenAccount\",\n \"msg\": \"Can't have an spl token mint with a t22 account\"\n },\n {\n \"code\": 6110,\n \"name\": \"DepositDisabledOutsideElevationGroup\",\n \"msg\": \"Can't deposit into this reserve outside elevation group\"\n },\n {\n \"code\": 6111,\n \"name\": \"CannotCalculateReferralAmountDueToSlotsMismatch\",\n \"msg\": \"Cannot calculate referral amount due to slots mismatch\"\n },\n {\n \"code\": 6112,\n \"name\": \"ObligationOwnersMustMatch\",\n \"msg\": \"Obligation owners must match\"\n },\n {\n \"code\": 6113,\n \"name\": \"ObligationsMustMatch\",\n \"msg\": \"Obligations must match\"\n },\n {\n \"code\": 6114,\n \"name\": \"LendingMarketsMustMatch\",\n \"msg\": \"Lending markets must match\"\n },\n {\n \"code\": 6115,\n \"name\": \"ObligationCurrentlyMarkedForDeleveraging\",\n \"msg\": \"Obligation is already marked for deleveraging\"\n },\n {\n \"code\": 6116,\n \"name\": \"MaximumWithdrawValueZero\",\n \"msg\": \"Maximum withdrawable value of this collateral is zero, LTV needs improved\"\n },\n {\n \"code\": 6117,\n \"name\": \"ZeroMaxLtvAssetsInDeposits\",\n \"msg\": \"No max LTV 0 assets allowed in deposits for repay and withdraw\"\n },\n {\n \"code\": 6118,\n \"name\": \"LowestLtvAssetsPriority\",\n \"msg\": \"Withdrawing must prioritize the collateral with the lowest reserve max-LTV\"\n },\n {\n \"code\": 6119,\n \"name\": \"WorseLtvThanUnhealthyLtv\",\n \"msg\": \"Cannot get the obligation liquidatable\"\n },\n {\n \"code\": 6120,\n \"name\": \"FarmAccountsMissing\",\n \"msg\": \"Farm accounts to refresh are missing\"\n },\n {\n \"code\": 6121,\n \"name\": \"RepayTooSmallForFullLiquidation\",\n \"msg\": \"Repay amount is too small to satisfy the mandatory full liquidation\"\n },\n {\n \"code\": 6122,\n \"name\": \"InsufficientRepayAmount\",\n \"msg\": \"Liquidator provided repay amount lower than required by liquidation rules\"\n },\n {\n \"code\": 6123,\n \"name\": \"OrderIndexOutOfBounds\",\n \"msg\": \"Obligation order of the given index cannot exist\"\n },\n {\n \"code\": 6124,\n \"name\": \"InvalidOrderConfiguration\",\n \"msg\": \"Given order configuration has wrong parameters\"\n },\n {\n \"code\": 6125,\n \"name\": \"OrderConfigurationNotSupportedByObligation\",\n \"msg\": \"Given order configuration cannot be used with the current state of the obligation\"\n },\n {\n \"code\": 6126,\n \"name\": \"OperationNotPermittedWithCurrentObligationOrders\",\n \"msg\": \"Single debt, single collateral obligation orders have to be cancelled before changing the deposit/borrow count\"\n },\n {\n \"code\": 6127,\n \"name\": \"OperationNotPermittedMarketImmutable\",\n \"msg\": \"Cannot update lending market because it is set as immutable\"\n },\n {\n \"code\": 6128,\n \"name\": \"OrderCreationDisabled\",\n \"msg\": \"Creation of new orders is disabled\"\n },\n {\n \"code\": 6129,\n \"name\": \"NoUpgradeAuthority\",\n \"msg\": \"Cannot initialize global config because there is no upgrade authority to the program\"\n }\n ],\n \"types\": [\n {\n \"name\": \"UpdateConfigMode\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"UpdateLoanToValuePct\"\n },\n {\n \"name\": \"UpdateMaxLiquidationBonusBps\"\n },\n {\n \"name\": \"UpdateLiquidationThresholdPct\"\n },\n {\n \"name\": \"UpdateProtocolLiquidationFee\"\n },\n {\n \"name\": \"UpdateProtocolTakeRate\"\n },\n {\n \"name\": \"UpdateFeesBorrowFee\"\n },\n {\n \"name\": \"UpdateFeesFlashLoanFee\"\n },\n {\n \"name\": \"DeprecatedUpdateFeesReferralFeeBps\"\n },\n {\n \"name\": \"UpdateDepositLimit\"\n },\n {\n \"name\": \"UpdateBorrowLimit\"\n },\n {\n \"name\": \"UpdateTokenInfoLowerHeuristic\"\n },\n {\n \"name\": \"UpdateTokenInfoUpperHeuristic\"\n },\n {\n \"name\": \"UpdateTokenInfoExpHeuristic\"\n },\n {\n \"name\": \"UpdateTokenInfoTwapDivergence\"\n },\n {\n \"name\": \"UpdateTokenInfoScopeTwap\"\n },\n {\n \"name\": \"UpdateTokenInfoScopeChain\"\n },\n {\n \"name\": \"UpdateTokenInfoName\"\n },\n {\n \"name\": \"UpdateTokenInfoPriceMaxAge\"\n },\n {\n \"name\": \"UpdateTokenInfoTwapMaxAge\"\n },\n {\n \"name\": \"UpdateScopePriceFeed\"\n },\n {\n \"name\": \"UpdatePythPrice\"\n },\n {\n \"name\": \"UpdateSwitchboardFeed\"\n },\n {\n \"name\": \"UpdateSwitchboardTwapFeed\"\n },\n {\n \"name\": \"UpdateBorrowRateCurve\"\n },\n {\n \"name\": \"UpdateEntireReserveConfig\"\n },\n {\n \"name\": \"UpdateDebtWithdrawalCap\"\n },\n {\n \"name\": \"UpdateDepositWithdrawalCap\"\n },\n {\n \"name\": \"DeprecatedUpdateDebtWithdrawalCapCurrentTotal\"\n },\n {\n \"name\": \"DeprecatedUpdateDepositWithdrawalCapCurrentTotal\"\n },\n {\n \"name\": \"UpdateBadDebtLiquidationBonusBps\"\n },\n {\n \"name\": \"UpdateMinLiquidationBonusBps\"\n },\n {\n \"name\": \"UpdateDeleveragingMarginCallPeriod\"\n },\n {\n \"name\": \"UpdateBorrowFactor\"\n },\n {\n \"name\": \"UpdateAssetTier\"\n },\n {\n \"name\": \"UpdateElevationGroup\"\n },\n {\n \"name\": \"UpdateDeleveragingThresholdDecreaseBpsPerDay\"\n },\n {\n \"name\": \"DeprecatedUpdateMultiplierSideBoost\"\n },\n {\n \"name\": \"DeprecatedUpdateMultiplierTagBoost\"\n },\n {\n \"name\": \"UpdateReserveStatus\"\n },\n {\n \"name\": \"UpdateFarmCollateral\"\n },\n {\n \"name\": \"UpdateFarmDebt\"\n },\n {\n \"name\": \"UpdateDisableUsageAsCollateralOutsideEmode\"\n },\n {\n \"name\": \"UpdateBlockBorrowingAboveUtilizationPct\"\n },\n {\n \"name\": \"UpdateBlockPriceUsage\"\n },\n {\n \"name\": \"UpdateBorrowLimitOutsideElevationGroup\"\n },\n {\n \"name\": \"UpdateBorrowLimitsInElevationGroupAgainstThisReserve\"\n },\n {\n \"name\": \"UpdateHostFixedInterestRateBps\"\n },\n {\n \"name\": \"UpdateAutodeleverageEnabled\"\n },\n {\n \"name\": \"UpdateDeleveragingBonusIncreaseBpsPerDay\"\n },\n {\n \"name\": \"UpdateProtocolOrderExecutionFee\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdateLendingMarketConfigValue\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Bool\",\n \"fields\": [\n \"bool\"\n ]\n },\n {\n \"name\": \"U8\",\n \"fields\": [\n \"u8\"\n ]\n },\n {\n \"name\": \"U8Array\",\n \"fields\": [\n {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n ]\n },\n {\n \"name\": \"U16\",\n \"fields\": [\n \"u16\"\n ]\n },\n {\n \"name\": \"U64\",\n \"fields\": [\n \"u64\"\n ]\n },\n {\n \"name\": \"U128\",\n \"fields\": [\n \"u128\"\n ]\n },\n {\n \"name\": \"Pubkey\",\n \"fields\": [\n \"pubkey\"\n ]\n },\n {\n \"name\": \"ElevationGroup\",\n \"fields\": [\n {\n \"defined\": {\n \"name\": \"ElevationGroup\"\n }\n }\n ]\n },\n {\n \"name\": \"Name\",\n \"fields\": [\n {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n ]\n }\n ]\n }\n },\n {\n \"name\": \"UpdateLendingMarketMode\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"UpdateOwner\"\n },\n {\n \"name\": \"UpdateEmergencyMode\"\n },\n {\n \"name\": \"UpdateLiquidationCloseFactor\"\n },\n {\n \"name\": \"UpdateLiquidationMaxValue\"\n },\n {\n \"name\": \"DeprecatedUpdateGlobalUnhealthyBorrow\"\n },\n {\n \"name\": \"UpdateGlobalAllowedBorrow\"\n },\n {\n \"name\": \"UpdateRiskCouncil\"\n },\n {\n \"name\": \"UpdateMinFullLiquidationThreshold\"\n },\n {\n \"name\": \"UpdateInsolvencyRiskLtv\"\n },\n {\n \"name\": \"UpdateElevationGroup\"\n },\n {\n \"name\": \"UpdateReferralFeeBps\"\n },\n {\n \"name\": \"DeprecatedUpdateMultiplierPoints\"\n },\n {\n \"name\": \"UpdatePriceRefreshTriggerToMaxAgePct\"\n },\n {\n \"name\": \"UpdateAutodeleverageEnabled\"\n },\n {\n \"name\": \"UpdateBorrowingDisabled\"\n },\n {\n \"name\": \"UpdateMinNetValueObligationPostAction\"\n },\n {\n \"name\": \"UpdateMinValueLtvSkipPriorityLiqCheck\"\n },\n {\n \"name\": \"UpdateMinValueBfSkipPriorityLiqCheck\"\n },\n {\n \"name\": \"UpdatePaddingFields\"\n },\n {\n \"name\": \"UpdateName\"\n },\n {\n \"name\": \"UpdateIndividualAutodeleverageMarginCallPeriodSecs\"\n },\n {\n \"name\": \"UpdateInitialDepositAmount\"\n },\n {\n \"name\": \"UpdateObligationOrderExecutionEnabled\"\n },\n {\n \"name\": \"UpdateImmutableFlag\"\n },\n {\n \"name\": \"UpdateObligationOrderCreationEnabled\"\n }\n ]\n }\n },\n {\n \"name\": \"UpdateGlobalConfigMode\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"PendingAdmin\"\n },\n {\n \"name\": \"FeeCollector\"\n }\n ]\n }\n },\n {\n \"name\": \"LastUpdate\",\n \"docs\": [\n \"Last update state\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"slot\",\n \"docs\": [\n \"Last slot when updated\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"stale\",\n \"docs\": [\n \"True when marked stale, false when slot updated\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"price_status\",\n \"docs\": [\n \"Status of the prices used to calculate the last update\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"placeholder\",\n \"type\": {\n \"array\": [\n \"u8\",\n 6\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ElevationGroup\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"max_liquidation_bonus_bps\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"id\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"ltv_pct\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"liquidation_threshold_pct\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"allow_new_loans\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"max_reserves_as_collateral\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"debt_reserve\",\n \"docs\": [\n \"Mandatory debt reserve for this elevation group\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 4\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"InitObligationArgs\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"tag\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"id\",\n \"type\": \"u8\"\n }\n ]\n }\n },\n {\n \"name\": \"ObligationCollateral\",\n \"docs\": [\n \"Obligation collateral state\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"deposit_reserve\",\n \"docs\": [\n \"Reserve collateral is deposited to\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"deposited_amount\",\n \"docs\": [\n \"Amount of collateral deposited\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"market_value_sf\",\n \"docs\": [\n \"Collateral market value in quote currency (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrowed_amount_against_this_collateral_in_elevation_group\",\n \"docs\": [\n \"Debt amount (lamport) taken against this collateral.\",\n \"(only meaningful if this obligation is part of an elevation group, otherwise 0)\",\n \"This is only indicative of the debt computed on the last refresh obligation.\",\n \"If the obligation have multiple collateral this value is the same for all of them.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 9\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ObligationLiquidity\",\n \"docs\": [\n \"Obligation liquidity state\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"borrow_reserve\",\n \"docs\": [\n \"Reserve liquidity is borrowed from\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"cumulative_borrow_rate_bsf\",\n \"docs\": [\n \"Borrow rate used for calculating interest (big scaled fraction)\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BigFractionBytes\"\n }\n }\n },\n {\n \"name\": \"padding\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrowed_amount_sf\",\n \"docs\": [\n \"Amount of liquidity borrowed plus interest (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"market_value_sf\",\n \"docs\": [\n \"Liquidity market value in quote currency (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrow_factor_adjusted_market_value_sf\",\n \"docs\": [\n \"Risk adjusted liquidity market value in quote currency - DEBUG ONLY - use market_value instead\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrowed_amount_outside_elevation_groups\",\n \"docs\": [\n \"Amount of liquidity borrowed outside of an elevation group\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u64\",\n 7\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ObligationOrder\",\n \"docs\": [\n \"A single obligation order.\",\n \"See [Obligation::orders].\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"condition_threshold_sf\",\n \"docs\": [\n \"A threshold value used by the condition (scaled [Fraction]).\",\n \"The exact meaning depends on the specific [Self::condition_type].\",\n \"\",\n \"Examples:\",\n \"- when `condition_type == 2 (UserLtvBelow)`:\",\n \"then a value of `0.455` here means that the order is active only when the obligation's\",\n \"user LTV is less than `0.455` (i.e. < 45.5%).\",\n \"- when `condition_type == 3 (DebtCollPriceRatioAbove)`:\",\n \"assuming the obligation uses BTC collateral for SOL debt, then a value of `491.3` here\",\n \"means that the order is active only when the BTC-SOL price is greater than `491.3` (i.e.\",\n \"> 491.3 SOL per BTC).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"opportunity_parameter_sf\",\n \"docs\": [\n \"A configuration parameter used by the opportunity (scaled [Fraction]).\",\n \"The exact meaning depends on the specific [Self::opportunity_type].\",\n \"\",\n \"Examples:\",\n \"- when `opportunity_type == 0 (DeleverageSingleDebtAmount)`:\",\n \"Assuming the obligation uses BTC collateral for SOL debt, then a value of `1_234_000_000`\",\n \"here means that a liquidator may repay up to 1234000000 lamports (i.e. 1.234 SOL) on this\",\n \"obligation.\",\n \"Note: the special value of [Fraction::MAX] is *not* allowed in this case.\",\n \"- when `opportunity_type == 1 (DeleverageAllDebtAmount)`:\",\n \"The only allowed value in this case is [Fraction::MAX] (to emphasize that *all* debt\",\n \"should be repaid).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"min_execution_bonus_bps\",\n \"docs\": [\n \"A *minimum* additional fraction of collateral transferred to the liquidator, in bps.\",\n \"\",\n \"The minimum bonus is applied exactly when the [Self::condition_threshold_sf] is met, and\",\n \"grows linearly towards the [Self::max_execution_bonus_bps].\",\n \"\",\n \"Example: a value of `50` here means 50bps == 0.5% bonus for an \\\"LTV > 65%\\\" order, when\",\n \"executed precisely at the moment LTV exceeds 65%.\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_execution_bonus_bps\",\n \"docs\": [\n \"A *maximum* additional fraction of collateral transferred to the liquidator, in bps.\",\n \"\",\n \"The maximum bonus is applied at the relevant \\\"extreme\\\" state of the obligation, i.e.:\",\n \"- for a stop-loss condition, it is a point at which the obligation becomes liquidatable;\",\n \"- for a take-profit condition, it is a point at which obligation has 0% LTV.\",\n \"\",\n \"In non-extreme states, the actual bonus value is interpolated linearly, starting from\",\n \"[Self::min_execution_bonus_bps] (at the point specified by the order's condition).\",\n \"\",\n \"Example: a value of `300` here means 300bps == 3.0% bonus for a \\\"debt/coll price > 140\\\"\",\n \"order, when executed at a higher price = 200, at which the obligation's LTV happens to\",\n \"be equal to its liquidation LTV.\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"condition_type\",\n \"docs\": [\n \"Serialized [ConditionType].\",\n \"The entire order is void when this is zeroed (i.e. representing [ConditionType::Never]).\",\n \"\",\n \"Example: a value of `2` here denotes `UserLtvBelow` condition type. Of course, to\",\n \"interpret this condition, we also need to take the [Self::condition_threshold_sf] into\",\n \"account.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"opportunity_type\",\n \"docs\": [\n \"Serialized [OpportunityType].\",\n \"\",\n \"Example: a value of `0` here denotes `DeleverageSingleDebtAmount` opportunity. Of course, to\",\n \"interpret this opportunity, we also need to take the [Self::opportunity_parameter_sf] into\",\n \"account.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding1\",\n \"docs\": [\n \"Internal padding.\",\n \"The fields above take up 2+2+1+1 bytes = 48 bits, which means we need 80 bits = 10 bytes to\",\n \"align with `u128`s.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 10\n ]\n }\n },\n {\n \"name\": \"padding2\",\n \"docs\": [\n \"End padding.\",\n \"The total size of a single instance is 8*u128 = 128 bytes.\"\n ],\n \"type\": {\n \"array\": [\n \"u128\",\n 5\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"AssetTier\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Regular\"\n },\n {\n \"name\": \"IsolatedCollateral\"\n },\n {\n \"name\": \"IsolatedDebt\"\n }\n ]\n }\n },\n {\n \"name\": \"BigFractionBytes\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\n \"u64\",\n 4\n ]\n }\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 2\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"FeeCalculation\",\n \"docs\": [\n \"Calculate fees exlusive or inclusive of an amount\"\n ],\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Exclusive\"\n },\n {\n \"name\": \"Inclusive\"\n }\n ]\n }\n },\n {\n \"name\": \"ReserveCollateral\",\n \"docs\": [\n \"Reserve collateral\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mint_pubkey\",\n \"docs\": [\n \"Reserve collateral mint address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint_total_supply\",\n \"docs\": [\n \"Reserve collateral mint supply, used for exchange rate\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"supply_vault\",\n \"docs\": [\n \"Reserve collateral supply address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u128\",\n 32\n ]\n }\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u128\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ReserveConfig\",\n \"docs\": [\n \"Reserve configuration values\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"status\",\n \"docs\": [\n \"Status of the reserve Active/Obsolete/Hidden\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"asset_tier\",\n \"docs\": [\n \"Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"host_fixed_interest_rate_bps\",\n \"docs\": [\n \"Flat rate that goes to the host\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"reserved2\",\n \"docs\": [\n \"[DEPRECATED] Space that used to hold 2 fields:\",\n \"- Boost for side (debt or collateral)\",\n \"- Reward points multiplier per obligation type\",\n \"Can be re-used after making sure all underlying production account data is zeroed.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 9\n ]\n }\n },\n {\n \"name\": \"protocol_order_execution_fee_pct\",\n \"docs\": [\n \"Cut of the order execution bonus that the protocol receives, as a percentage\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"protocol_take_rate_pct\",\n \"docs\": [\n \"Protocol take rate is the amount borrowed interest protocol receives, as a percentage\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"protocol_liquidation_fee_pct\",\n \"docs\": [\n \"Cut of the liquidation bonus that the protocol receives, as a percentage\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"loan_to_value_pct\",\n \"docs\": [\n \"Target ratio of the value of borrows to deposits, as a percentage\",\n \"0 if use as collateral is disabled\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"liquidation_threshold_pct\",\n \"docs\": [\n \"Loan to value ratio at which an obligation can be liquidated, as percentage\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"min_liquidation_bonus_bps\",\n \"docs\": [\n \"Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"max_liquidation_bonus_bps\",\n \"docs\": [\n \"Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"bad_debt_liquidation_bonus_bps\",\n \"docs\": [\n \"Bad debt liquidation bonus for an undercollateralized obligation, as bps\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"deleveraging_margin_call_period_secs\",\n \"docs\": [\n \"Time in seconds that must pass before redemptions are enabled after the deposit limit is\",\n \"crossed.\",\n \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"deleveraging_threshold_decrease_bps_per_day\",\n \"docs\": [\n \"The rate at which the deleveraging threshold decreases, in bps per day.\",\n \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"fees\",\n \"docs\": [\n \"Program owner fees assessed, separate from gains due to interest accrual\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveFees\"\n }\n }\n },\n {\n \"name\": \"borrow_rate_curve\",\n \"docs\": [\n \"Borrow rate curve based on utilization\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BorrowRateCurve\"\n }\n }\n },\n {\n \"name\": \"borrow_factor_pct\",\n \"docs\": [\n \"Borrow factor in percentage - used for risk adjustment\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"deposit_limit\",\n \"docs\": [\n \"Maximum deposit limit of liquidity in native units, u64::MAX for inf\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrow_limit\",\n \"docs\": [\n \"Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_info\",\n \"docs\": [\n \"Token id from TokenInfos struct\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"TokenInfo\"\n }\n }\n },\n {\n \"name\": \"deposit_withdrawal_cap\",\n \"docs\": [\n \"Deposit withdrawal caps - deposit & redeem\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"WithdrawalCaps\"\n }\n }\n },\n {\n \"name\": \"debt_withdrawal_cap\",\n \"docs\": [\n \"Debt withdrawal caps - borrow & repay\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"WithdrawalCaps\"\n }\n }\n },\n {\n \"name\": \"elevation_groups\",\n \"type\": {\n \"array\": [\n \"u8\",\n 20\n ]\n }\n },\n {\n \"name\": \"disable_usage_as_coll_outside_emode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"utilization_limit_block_borrowing_above_pct\",\n \"docs\": [\n \"Utilization (in percentage) above which borrowing is blocked. 0 to disable.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"autodeleverage_enabled\",\n \"docs\": [\n \"Whether this reserve should be subject to auto-deleveraging after deposit or borrow limit is\",\n \"crossed.\",\n \"Besides this flag, the lending market's flag also needs to be enabled (logical `AND`).\",\n \"**NOTE:** the manual \\\"target LTV\\\" deleveraging (enabled by the risk council for individual\",\n \"obligations) is NOT affected by this flag.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"reserved1\",\n \"type\": {\n \"array\": [\n \"u8\",\n 1\n ]\n }\n },\n {\n \"name\": \"borrow_limit_outside_elevation_group\",\n \"docs\": [\n \"Maximum amount liquidity of this reserve borrowed outside all elevation groups\",\n \"- u64::MAX for inf\",\n \"- 0 to disable borrows outside elevation groups\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrow_limit_against_this_collateral_in_elevation_group\",\n \"docs\": [\n \"Defines the maximum amount (in lamports of elevation group debt asset)\",\n \"that can be borrowed when this reserve is used as collateral.\",\n \"- u64::MAX for inf\",\n \"- 0 to disable borrows in this elevation group (expected value for the debt asset)\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 32\n ]\n }\n },\n {\n \"name\": \"deleveraging_bonus_increase_bps_per_day\",\n \"docs\": [\n \"The rate at which the deleveraging-related liquidation bonus increases, in bps per day.\",\n \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"ReserveFarmKind\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Collateral\"\n },\n {\n \"name\": \"Debt\"\n }\n ]\n }\n },\n {\n \"name\": \"ReserveFees\",\n \"docs\": [\n \"Additional fee information on a reserve\",\n \"\",\n \"These exist separately from interest accrual fees, and are specifically for the program owner\",\n \"and referral fee. The fees are paid out as a percentage of liquidity token amounts during\",\n \"repayments and liquidations.\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"borrow_fee_sf\",\n \"docs\": [\n \"Fee assessed on `BorrowObligationLiquidity`, as scaled fraction (60 bits fractional part)\",\n \"Must be between `0` and `2^60`, such that `2^60 = 1`. A few examples for\",\n \"clarity:\",\n \"1% = (1 << 60) / 100 = 11529215046068470\",\n \"0.01% (1 basis point) = 115292150460685\",\n \"0.00001% (Aave borrow fee) = 115292150461\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"flash_loan_fee_sf\",\n \"docs\": [\n \"Fee for flash loan, expressed as scaled fraction.\",\n \"0.3% (Aave flash loan fee) = 0.003 * 2^60 = 3458764513820541\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding\",\n \"docs\": [\n \"Used for allignment\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ReserveLiquidity\",\n \"docs\": [\n \"Reserve liquidity\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mint_pubkey\",\n \"docs\": [\n \"Reserve liquidity mint address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"supply_vault\",\n \"docs\": [\n \"Reserve liquidity supply address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"fee_vault\",\n \"docs\": [\n \"Reserve liquidity fee collection address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"available_amount\",\n \"docs\": [\n \"Reserve liquidity available\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrowed_amount_sf\",\n \"docs\": [\n \"Reserve liquidity borrowed (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"market_price_sf\",\n \"docs\": [\n \"Reserve liquidity market price in quote currency (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"market_price_last_updated_ts\",\n \"docs\": [\n \"Unix timestamp of the market price (from the oracle)\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"mint_decimals\",\n \"docs\": [\n \"Reserve liquidity mint decimals\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"deposit_limit_crossed_timestamp\",\n \"docs\": [\n \"Timestamp when the last refresh reserve detected that the liquidity amount is above the deposit cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.\",\n \"If the threshold is not crossed, then the timestamp is set to 0\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrow_limit_crossed_timestamp\",\n \"docs\": [\n \"Timestamp when the last refresh reserve detected that the borrowed amount is above the borrow cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.\",\n \"If the threshold is not crossed, then the timestamp is set to 0\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"cumulative_borrow_rate_bsf\",\n \"docs\": [\n \"Reserve liquidity cumulative borrow rate (scaled fraction)\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"BigFractionBytes\"\n }\n }\n },\n {\n \"name\": \"accumulated_protocol_fees_sf\",\n \"docs\": [\n \"Reserve cumulative protocol fees (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"accumulated_referrer_fees_sf\",\n \"docs\": [\n \"Reserve cumulative referrer fees (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_referrer_fees_sf\",\n \"docs\": [\n \"Reserve pending referrer fees, to be claimed in refresh_obligation by referrer or protocol (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"absolute_referral_rate_sf\",\n \"docs\": [\n \"Reserve referrer fee absolute rate calculated at each refresh_reserve operation (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"token_program\",\n \"docs\": [\n \"Token program of the liquidity mint\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u64\",\n 51\n ]\n }\n },\n {\n \"name\": \"padding3\",\n \"type\": {\n \"array\": [\n \"u128\",\n 32\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ReserveStatus\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Active\"\n },\n {\n \"name\": \"Obsolete\"\n },\n {\n \"name\": \"Hidden\"\n }\n ]\n }\n },\n {\n \"name\": \"WithdrawalCaps\",\n \"docs\": [\n \"Reserve Withdrawal Caps State\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"config_capacity\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"current_total\",\n \"type\": \"i64\"\n },\n {\n \"name\": \"last_interval_start_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"config_interval_length_seconds\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"PriceHeuristic\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"lower\",\n \"docs\": [\n \"Lower value of acceptable price\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"upper\",\n \"docs\": [\n \"Upper value of acceptable price\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"exp\",\n \"docs\": [\n \"Number of decimals of the previously defined values\"\n ],\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"PythConfiguration\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"price\",\n \"docs\": [\n \"Pubkey of the base price feed (disabled if `null` or `default`)\"\n ],\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"ScopeConfiguration\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"price_feed\",\n \"docs\": [\n \"Pubkey of the scope price feed (disabled if `null` or `default`)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"price_chain\",\n \"docs\": [\n \"This is the scope_id price chain that results in a price for the token\"\n ],\n \"type\": {\n \"array\": [\n \"u16\",\n 4\n ]\n }\n },\n {\n \"name\": \"twap_chain\",\n \"docs\": [\n \"This is the scope_id price chain for the twap\"\n ],\n \"type\": {\n \"array\": [\n \"u16\",\n 4\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"SwitchboardConfiguration\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"price_aggregator\",\n \"docs\": [\n \"Pubkey of the base price feed (disabled if `null` or `default`)\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"twap_aggregator\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenInfo\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"name\",\n \"docs\": [\n \"UTF-8 encoded name of the token (null-terminated)\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"heuristic\",\n \"docs\": [\n \"Heuristics limits of acceptable price\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PriceHeuristic\"\n }\n }\n },\n {\n \"name\": \"max_twap_divergence_bps\",\n \"docs\": [\n \"Max divergence between twap and price in bps\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_age_price_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_age_twap_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"scope_configuration\",\n \"docs\": [\n \"Scope price configuration\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ScopeConfiguration\"\n }\n }\n },\n {\n \"name\": \"switchboard_configuration\",\n \"docs\": [\n \"Switchboard configuration\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"SwitchboardConfiguration\"\n }\n }\n },\n {\n \"name\": \"pyth_configuration\",\n \"docs\": [\n \"Pyth configuration\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"PythConfiguration\"\n }\n }\n },\n {\n \"name\": \"block_price_usage\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"reserved\",\n \"type\": {\n \"array\": [\n \"u8\",\n 7\n ]\n }\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 19\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"BorrowRateCurve\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"points\",\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"CurvePoint\"\n }\n },\n 11\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"CurvePoint\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"utilization_rate_bps\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"borrow_rate_bps\",\n \"type\": \"u32\"\n }\n ]\n }\n },\n {\n \"name\": \"UserState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"user_id\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"farm_state\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"is_farm_delegated\",\n \"docs\": [\n \"Indicate if this user state is part of a delegated farm\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": {\n \"array\": [\n \"u8\",\n 7\n ]\n }\n },\n {\n \"name\": \"rewards_tally_scaled\",\n \"docs\": [\n \"Rewards tally used for computation of gained rewards\",\n \"(scaled from `Decimal` representation).\"\n ],\n \"type\": {\n \"array\": [\n \"u128\",\n 10\n ]\n }\n },\n {\n \"name\": \"rewards_issued_unclaimed\",\n \"docs\": [\n \"Number of reward tokens ready for claim\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 10\n ]\n }\n },\n {\n \"name\": \"last_claim_ts\",\n \"type\": {\n \"array\": [\n \"u64\",\n 10\n ]\n }\n },\n {\n \"name\": \"active_stake_scaled\",\n \"docs\": [\n \"User stake deposited and usable, generating rewards and fees.\",\n \"(scaled from `Decimal` representation).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_deposit_stake_scaled\",\n \"docs\": [\n \"User stake deposited but not usable and not generating rewards yet.\",\n \"(scaled from `Decimal` representation).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_deposit_stake_ts\",\n \"docs\": [\n \"After this timestamp, pending user stake can be moved to user stake\",\n \"Initialized to now() + delayed user stake period\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"pending_withdrawal_unstake_scaled\",\n \"docs\": [\n \"User deposits unstaked, pending for withdrawal, not usable and not generating rewards.\",\n \"(scaled from `Decimal` representation).\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_withdrawal_unstake_ts\",\n \"docs\": [\n \"After this timestamp, user can withdraw their deposit.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump\",\n \"docs\": [\n \"User bump used for account address validation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegatee\",\n \"docs\": [\n \"Delegatee used for initialisation - useful to check against\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"last_stake_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 50\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"GlobalConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"global_admin\",\n \"docs\": [\n \"Global admin of the program\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"pending_admin\",\n \"docs\": [\n \"Pending admin must sign a specific transaction to become the global admin\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"fee_collector\",\n \"docs\": [\n \"Fee collector is the only allowed owner of token accounts receiving protocol fees\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding\",\n \"docs\": [\n \"Padding to make the struct size 1024 bytes\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 928\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"LendingMarket\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"version\",\n \"docs\": [\n \"Version of lending market\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump_seed\",\n \"docs\": [\n \"Bump seed for derived authority address\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"lending_market_owner\",\n \"docs\": [\n \"Owner authority which can add new reserves\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"lending_market_owner_cached\",\n \"docs\": [\n \"Temporary cache of the lending market owner, used in update_lending_market_owner\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"quote_currency\",\n \"docs\": [\n \"Currency market prices are quoted in\",\n \"e.g. \\\"USD\\\" null padded (`*b\\\"USD\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\"`) or a SPL token mint pubkey\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"referral_fee_bps\",\n \"docs\": [\n \"Referral fee for the lending market, as bps out of the total protocol fee\"\n ],\n \"type\": \"u16\"\n },\n {\n \"name\": \"emergency_mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"autodeleverage_enabled\",\n \"docs\": [\n \"Whether the obligations on this market should be subject to auto-deleveraging after deposit\",\n \"or borrow limit is crossed.\",\n \"Besides this flag, the particular reserve's flag also needs to be enabled (logical `AND`).\",\n \"**NOTE:** this also affects the individual \\\"target LTV\\\" deleveraging.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"borrow_disabled\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"price_refresh_trigger_to_max_age_pct\",\n \"docs\": [\n \"Refresh price from oracle only if it's older than this percentage of the price max age.\",\n \"e.g. if the max age is set to 100s and this is set to 80%, the price will be refreshed if it's older than 80s.\",\n \"Price is always refreshed if this set to 0.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"liquidation_max_debt_close_factor_pct\",\n \"docs\": [\n \"Percentage of the total borrowed value in an obligation available for liquidation\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"insolvency_risk_unhealthy_ltv_pct\",\n \"docs\": [\n \"Minimum acceptable unhealthy LTV before max_debt_close_factor_pct becomes 100%\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"min_full_liquidation_value_threshold\",\n \"docs\": [\n \"Minimum liquidation value threshold triggering full liquidation for an obligation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"max_liquidatable_debt_market_value_at_once\",\n \"docs\": [\n \"Max allowed liquidation value in one ix call\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"reserved0\",\n \"docs\": [\n \"[DEPRECATED] Global maximum unhealthy borrow value allowed for any obligation\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"global_allowed_borrow_value\",\n \"docs\": [\n \"Global maximum allowed borrow value allowed for any obligation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"risk_council\",\n \"docs\": [\n \"The address of the risk council, in charge of making parameter and risk decisions on behalf of the protocol\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"reserved1\",\n \"docs\": [\n \"[DEPRECATED] Reward points multiplier per obligation type\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"elevation_groups\",\n \"docs\": [\n \"Elevation groups are used to group together reserves that have the same risk parameters and can bump the ltv and liquidation threshold\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"ElevationGroup\"\n }\n },\n 32\n ]\n }\n },\n {\n \"name\": \"elevation_group_padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 90\n ]\n }\n },\n {\n \"name\": \"min_net_value_in_obligation_sf\",\n \"docs\": [\n \"Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"min_value_skip_liquidation_ltv_checks\",\n \"docs\": [\n \"Minimum value to enforce smallest ltv priority checks on the collateral reserves on liquidation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"name\",\n \"docs\": [\n \"Market name, zero-padded.\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 32\n ]\n }\n },\n {\n \"name\": \"min_value_skip_liquidation_bf_checks\",\n \"docs\": [\n \"Minimum value to enforce highest borrow factor priority checks on the debt reserves on liquidation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"individual_autodeleverage_margin_call_period_secs\",\n \"docs\": [\n \"Time (in seconds) that must pass before liquidation is allowed on an obligation that has\",\n \"been individually marked for auto-deleveraging (by the risk council).\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"min_initial_deposit_amount\",\n \"docs\": [\n \"Minimum amount of deposit at creation of a reserve to prevent artificial inflation\",\n \"Note: this amount cannot be recovered, the ctoken associated are never minted\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"obligation_order_execution_enabled\",\n \"docs\": [\n \"Whether the obligation orders should be evaluated during liquidations.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"immutable\",\n \"docs\": [\n \"Whether the lending market is set as immutable.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"obligation_order_creation_enabled\",\n \"docs\": [\n \"Whether new obligation orders can be created.\",\n \"Note: updating or cancelling existing orders is *not* affected by this flag.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 169\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Obligation\",\n \"docs\": [\n \"Lending market obligation state\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"tag\",\n \"docs\": [\n \"Version of the struct\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_update\",\n \"docs\": [\n \"Last update to collateral, liquidity, or their market values\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"LastUpdate\"\n }\n }\n },\n {\n \"name\": \"lending_market\",\n \"docs\": [\n \"Lending market address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"Owner authority which can borrow liquidity\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"deposits\",\n \"docs\": [\n \"Deposited collateral for the obligation, unique by deposit reserve address\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"ObligationCollateral\"\n }\n },\n 8\n ]\n }\n },\n {\n \"name\": \"lowest_reserve_deposit_liquidation_ltv\",\n \"docs\": [\n \"Worst LTV for the collaterals backing the loan, represented as a percentage\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"deposited_value_sf\",\n \"docs\": [\n \"Market value of deposits (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrows\",\n \"docs\": [\n \"Borrowed liquidity for the obligation, unique by borrow reserve address\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"ObligationLiquidity\"\n }\n },\n 5\n ]\n }\n },\n {\n \"name\": \"borrow_factor_adjusted_debt_value_sf\",\n \"docs\": [\n \"Risk adjusted market value of borrows/debt (sum of price * borrowed_amount * borrow_factor) (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"borrowed_assets_market_value_sf\",\n \"docs\": [\n \"Market value of borrows - used for max_liquidatable_borrowed_amount (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"allowed_borrow_value_sf\",\n \"docs\": [\n \"The maximum borrow value at the weighted average loan to value ratio (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"unhealthy_borrow_value_sf\",\n \"docs\": [\n \"The dangerous borrow value at the weighted average liquidation threshold (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"deposits_asset_tiers\",\n \"docs\": [\n \"The asset tier of the deposits\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 8\n ]\n }\n },\n {\n \"name\": \"borrows_asset_tiers\",\n \"docs\": [\n \"The asset tier of the borrows\"\n ],\n \"type\": {\n \"array\": [\n \"u8\",\n 5\n ]\n }\n },\n {\n \"name\": \"elevation_group\",\n \"docs\": [\n \"The elevation group id the obligation opted into.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"num_of_obsolete_deposit_reserves\",\n \"docs\": [\n \"The number of obsolete reserves the obligation has a deposit in\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"has_debt\",\n \"docs\": [\n \"Marked = 1 if borrows array is not empty, 0 = borrows empty\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"referrer\",\n \"docs\": [\n \"Wallet address of the referrer\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"borrowing_disabled\",\n \"docs\": [\n \"Marked = 1 if borrowing disabled, 0 = borrowing enabled\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"autodeleverage_target_ltv_pct\",\n \"docs\": [\n \"A target LTV set by the risk council when marking this obligation for deleveraging.\",\n \"Only effective when `deleveraging_margin_call_started_slot != 0`.\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"lowest_reserve_deposit_max_ltv_pct\",\n \"docs\": [\n \"The lowest max LTV found amongst the collateral deposits\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"num_of_obsolete_borrow_reserves\",\n \"docs\": [\n \"The number of obsolete reserves the obligation has a borrow in\"\n ],\n \"type\": \"u8\"\n },\n {\n \"name\": \"reserved\",\n \"type\": {\n \"array\": [\n \"u8\",\n 4\n ]\n }\n },\n {\n \"name\": \"highest_borrow_factor_pct\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"autodeleverage_margin_call_started_timestamp\",\n \"docs\": [\n \"A timestamp at which the risk council most-recently marked this obligation for deleveraging.\",\n \"Zero if not currently subject to deleveraging.\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"orders\",\n \"docs\": [\n \"Owner-defined, liquidator-executed orders applicable to this obligation.\",\n \"Typical use-cases would be a stop-loss and a take-profit (possibly co-existing).\"\n ],\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"ObligationOrder\"\n }\n },\n 2\n ]\n }\n },\n {\n \"name\": \"padding3\",\n \"type\": {\n \"array\": [\n \"u64\",\n 93\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ReferrerState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"short_url\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n }\n ]\n }\n },\n {\n \"name\": \"ReferrerTokenState\",\n \"docs\": [\n \"Referrer account -> each owner can have multiple accounts for specific reserves\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"referrer\",\n \"docs\": [\n \"Pubkey of the referrer/owner\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"mint\",\n \"docs\": [\n \"Token mint for the account\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"amount_unclaimed_sf\",\n \"docs\": [\n \"Amount that has been accumulated and not claimed yet -> available to claim (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"amount_cumulative_sf\",\n \"docs\": [\n \"Amount that has been accumulated in total -> both already claimed and unclaimed (scaled fraction)\"\n ],\n \"type\": \"u128\"\n },\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Referrer token state bump, used for address validation\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 31\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"ShortUrl\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"referrer\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"short_url\",\n \"type\": \"string\"\n }\n ]\n }\n },\n {\n \"name\": \"UserMetadata\",\n \"docs\": [\n \"Referrer account -> each owner can have multiple accounts for specific reserves\"\n ],\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"referrer\",\n \"docs\": [\n \"Pubkey of the referrer/owner - pubkey::default if no referrer\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"bump\",\n \"docs\": [\n \"Bump used for validation of account address\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"user_lookup_table\",\n \"docs\": [\n \"User lookup table - used to store all user accounts - atas for each reserve mint, each obligation PDA, UserMetadata itself and all referrer_token_states if there is a referrer\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"docs\": [\n \"User metadata account owner\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\n \"u64\",\n 51\n ]\n }\n },\n {\n \"name\": \"padding2\",\n \"type\": {\n \"array\": [\n \"u64\",\n 64\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"Reserve\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"version\",\n \"docs\": [\n \"Version of the reserve\"\n ],\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_update\",\n \"docs\": [\n \"Last slot when supply and rates updated\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"LastUpdate\"\n }\n }\n },\n {\n \"name\": \"lending_market\",\n \"docs\": [\n \"Lending market address\"\n ],\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"farm_collateral\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"farm_debt\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"liquidity\",\n \"docs\": [\n \"Reserve liquidity\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveLiquidity\"\n }\n }\n },\n {\n \"name\": \"reserve_liquidity_padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 150\n ]\n }\n },\n {\n \"name\": \"collateral\",\n \"docs\": [\n \"Reserve collateral\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveCollateral\"\n }\n }\n },\n {\n \"name\": \"reserve_collateral_padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 150\n ]\n }\n },\n {\n \"name\": \"config\",\n \"docs\": [\n \"Reserve configuration values\"\n ],\n \"type\": {\n \"defined\": {\n \"name\": \"ReserveConfig\"\n }\n }\n },\n {\n \"name\": \"config_padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 116\n ]\n }\n },\n {\n \"name\": \"borrowed_amount_outside_elevation_group\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"borrowed_amounts_against_this_reserve_in_elevation_groups\",\n \"docs\": [\n \"Amount of token borrowed in lamport of debt asset in the given\",\n \"elevation group when this reserve is part of the collaterals.\"\n ],\n \"type\": {\n \"array\": [\n \"u64\",\n 32\n ]\n }\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\n \"u64\",\n 207\n ]\n }\n }\n ]\n }\n }\n ]\n}","{\n \"address\": \"FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr\",\n \"metadata\": {\n \"name\": \"farms\",\n \"version\": \"0.1.0\",\n \"spec\": \"0.1.0\"\n },\n \"instructions\": [\n {\n \"name\": \"initialize_global_config\",\n \"discriminator\": [113, 216, 122, 131, 225, 209, 22, 55],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n },\n {\n \"name\": \"treasury_vaults_authority\"\n },\n {\n \"name\": \"system_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_global_config\",\n \"discriminator\": [164, 84, 130, 189, 111, 58, 250, 200],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"value\",\n \"type\": {\n \"array\": [\"u8\", 32]\n }\n }\n ]\n },\n {\n \"name\": \"initialize_farm\",\n \"discriminator\": [252, 28, 185, 172, 244, 74, 117, 165],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"token_mint\"\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"initialize_farm_delegated\",\n \"discriminator\": [250, 84, 101, 25, 51, 77, 204, 91],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_delegate\",\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"initialize_reward\",\n \"discriminator\": [95, 135, 192, 196, 242, 129, 230, 68],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"reward_treasury_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"treasury_vaults_authority\"\n },\n {\n \"name\": \"token_program\"\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"add_rewards\",\n \"discriminator\": [88, 186, 25, 227, 38, 137, 81, 23],\n \"accounts\": [\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"payer_reward_token_ata\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update_farm_config\",\n \"discriminator\": [214, 176, 188, 244, 203, 59, 230, 207],\n \"accounts\": [\n {\n \"name\": \"signer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"mode\",\n \"type\": \"u16\"\n },\n {\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ]\n },\n {\n \"name\": \"initialize_user\",\n \"discriminator\": [111, 17, 185, 250, 60, 122, 38, 254],\n \"accounts\": [\n {\n \"name\": \"authority\",\n \"signer\": true\n },\n {\n \"name\": \"payer\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"owner\"\n },\n {\n \"name\": \"delegatee\"\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"system_program\"\n },\n {\n \"name\": \"rent\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"transfer_ownership\",\n \"discriminator\": [65, 177, 215, 73, 53, 45, 99, 47],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"new_owner\",\n \"type\": \"pubkey\"\n }\n ]\n },\n {\n \"name\": \"reward_user_once\",\n \"discriminator\": [219, 137, 57, 22, 94, 186, 96, 114],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"refresh_farm\",\n \"discriminator\": [214, 131, 138, 183, 144, 194, 172, 42],\n \"accounts\": [\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"stake\",\n \"discriminator\": [206, 176, 202, 18, 200, 209, 179, 108],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"user_ata\",\n \"writable\": true\n },\n {\n \"name\": \"token_mint\"\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"set_stake_delegated\",\n \"discriminator\": [73, 171, 184, 75, 30, 56, 198, 223],\n \"accounts\": [\n {\n \"name\": \"delegate_authority\",\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"new_amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"harvest_reward\",\n \"discriminator\": [68, 200, 228, 233, 184, 32, 226, 188],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"user_reward_ata\",\n \"writable\": true\n },\n {\n \"name\": \"rewards_vault\",\n \"writable\": true\n },\n {\n \"name\": \"rewards_treasury_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"reward_index\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"unstake\",\n \"discriminator\": [90, 95, 107, 42, 205, 124, 50, 225],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"stake_shares_scaled\",\n \"type\": \"u128\"\n }\n ]\n },\n {\n \"name\": \"refresh_user_state\",\n \"discriminator\": [1, 135, 12, 62, 243, 140, 77, 108],\n \"accounts\": [\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_unstaked_deposits\",\n \"discriminator\": [36, 102, 187, 49, 220, 36, 132, 67],\n \"accounts\": [\n {\n \"name\": \"owner\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"user_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"user_ata\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_treasury\",\n \"discriminator\": [40, 63, 122, 158, 144, 216, 83, 96],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"reward_treasury_vault\",\n \"writable\": true\n },\n {\n \"name\": \"treasury_vault_authority\"\n },\n {\n \"name\": \"withdraw_destination_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"deposit_to_farm_vault\",\n \"discriminator\": [131, 166, 64, 94, 108, 213, 114, 183],\n \"accounts\": [\n {\n \"name\": \"depositor\",\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"depositor_ata\",\n \"writable\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_from_farm_vault\",\n \"discriminator\": [22, 82, 128, 250, 86, 79, 124, 78],\n \"accounts\": [\n {\n \"name\": \"withdraw_authority\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"withdrawer_token_account\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"withdraw_slashed_amount\",\n \"discriminator\": [202, 217, 67, 74, 172, 22, 140, 216],\n \"accounts\": [\n {\n \"name\": \"crank\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"slashed_amount_spill_address\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_farm_admin\",\n \"discriminator\": [20, 37, 136, 19, 122, 239, 36, 130],\n \"accounts\": [\n {\n \"name\": \"pending_farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"update_global_config_admin\",\n \"discriminator\": [184, 87, 23, 193, 156, 238, 175, 119],\n \"accounts\": [\n {\n \"name\": \"pending_global_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"withdraw_reward\",\n \"discriminator\": [191, 187, 176, 137, 9, 25, 187, 244],\n \"accounts\": [\n {\n \"name\": \"farm_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"reward_mint\"\n },\n {\n \"name\": \"reward_vault\",\n \"writable\": true\n },\n {\n \"name\": \"farm_vaults_authority\"\n },\n {\n \"name\": \"admin_reward_token_ata\",\n \"writable\": true\n },\n {\n \"name\": \"scope_prices\",\n \"optional\": true\n },\n {\n \"name\": \"token_program\"\n }\n ],\n \"args\": [\n {\n \"name\": \"amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_index\",\n \"type\": \"u64\"\n }\n ]\n },\n {\n \"name\": \"update_second_delegated_authority\",\n \"discriminator\": [127, 26, 6, 181, 203, 248, 117, 64],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"writable\": true,\n \"signer\": true\n },\n {\n \"name\": \"farm_state\",\n \"writable\": true\n },\n {\n \"name\": \"global_config\"\n },\n {\n \"name\": \"new_second_delegated_authority\"\n }\n ],\n \"args\": []\n },\n {\n \"name\": \"idl_missing_types\",\n \"discriminator\": [130, 80, 38, 153, 80, 212, 182, 253],\n \"accounts\": [\n {\n \"name\": \"global_admin\",\n \"signer\": true\n },\n {\n \"name\": \"global_config\",\n \"writable\": true\n }\n ],\n \"args\": [\n {\n \"name\": \"global_config_option_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"GlobalConfigOption\"\n }\n }\n },\n {\n \"name\": \"farm_config_option_kind\",\n \"type\": {\n \"defined\": {\n \"name\": \"FarmConfigOption\"\n }\n }\n },\n {\n \"name\": \"time_unit\",\n \"type\": {\n \"defined\": {\n \"name\": \"TimeUnit\"\n }\n }\n },\n {\n \"name\": \"locking_mode\",\n \"type\": {\n \"defined\": {\n \"name\": \"LockingMode\"\n }\n }\n },\n {\n \"name\": \"reward_type\",\n \"type\": {\n \"defined\": {\n \"name\": \"RewardType\"\n }\n }\n }\n ]\n }\n ],\n \"accounts\": [\n {\n \"name\": \"FarmState\",\n \"discriminator\": [198, 102, 216, 74, 63, 66, 163, 190]\n },\n {\n \"name\": \"GlobalConfig\",\n \"discriminator\": [149, 8, 156, 202, 160, 252, 176, 217]\n },\n {\n \"name\": \"UserState\",\n \"discriminator\": [72, 177, 85, 249, 76, 167, 186, 126]\n },\n {\n \"name\": \"OraclePrices\",\n \"discriminator\": [89, 128, 118, 221, 6, 72, 180, 146]\n }\n ],\n \"errors\": [\n {\n \"code\": 6000,\n \"name\": \"StakeZero\",\n \"msg\": \"Cannot stake 0 amount\"\n },\n {\n \"code\": 6001,\n \"name\": \"UnstakeZero\",\n \"msg\": \"Cannot unstake 0 amount\"\n },\n {\n \"code\": 6002,\n \"name\": \"NothingToUnstake\",\n \"msg\": \"Nothing to unstake\"\n },\n {\n \"code\": 6003,\n \"name\": \"NoRewardToHarvest\",\n \"msg\": \"No reward to harvest\"\n },\n {\n \"code\": 6004,\n \"name\": \"NoRewardInList\",\n \"msg\": \"Reward not present in reward list\"\n },\n {\n \"code\": 6005,\n \"name\": \"RewardAlreadyInitialized\",\n \"msg\": \"Reward already initialized\"\n },\n {\n \"code\": 6006,\n \"name\": \"MaxRewardNumberReached\",\n \"msg\": \"Max number of reward tokens reached\"\n },\n {\n \"code\": 6007,\n \"name\": \"RewardDoesNotExist\",\n \"msg\": \"Reward does not exist\"\n },\n {\n \"code\": 6008,\n \"name\": \"WrongRewardVaultAccount\",\n \"msg\": \"Reward vault exists but the account is wrong\"\n },\n {\n \"code\": 6009,\n \"name\": \"RewardVaultMismatch\",\n \"msg\": \"Reward vault pubkey does not match staking pool vault\"\n },\n {\n \"code\": 6010,\n \"name\": \"RewardVaultAuthorityMismatch\",\n \"msg\": \"Reward vault authority pubkey does not match staking pool vault\"\n },\n {\n \"code\": 6011,\n \"name\": \"NothingStaked\",\n \"msg\": \"Nothing staked, cannot collect any rewards\"\n },\n {\n \"code\": 6012,\n \"name\": \"IntegerOverflow\",\n \"msg\": \"Integer overflow\"\n },\n {\n \"code\": 6013,\n \"name\": \"ConversionFailure\",\n \"msg\": \"Conversion failure\"\n },\n {\n \"code\": 6014,\n \"name\": \"UnexpectedAccount\",\n \"msg\": \"Unexpected account in instruction\"\n },\n {\n \"code\": 6015,\n \"name\": \"OperationForbidden\",\n \"msg\": \"Operation forbidden\"\n },\n {\n \"code\": 6016,\n \"name\": \"MathOverflow\",\n \"msg\": \"Mathematical operation with overflow\"\n },\n {\n \"code\": 6017,\n \"name\": \"MinClaimDurationNotReached\",\n \"msg\": \"Minimum claim duration has not been reached\"\n },\n {\n \"code\": 6018,\n \"name\": \"RewardsVaultHasDelegate\",\n \"msg\": \"Reward vault has a delegate\"\n },\n {\n \"code\": 6019,\n \"name\": \"RewardsVaultHasCloseAuthority\",\n \"msg\": \"Reward vault has a close authority\"\n },\n {\n \"code\": 6020,\n \"name\": \"FarmVaultHasDelegate\",\n \"msg\": \"Farm vault has a delegate\"\n },\n {\n \"code\": 6021,\n \"name\": \"FarmVaultHasCloseAuthority\",\n \"msg\": \"Farm vault has a close authority\"\n },\n {\n \"code\": 6022,\n \"name\": \"RewardsTreasuryVaultHasDelegate\",\n \"msg\": \"Reward vault has a delegate\"\n },\n {\n \"code\": 6023,\n \"name\": \"RewardsTreasuryVaultHasCloseAuthority\",\n \"msg\": \"Reward vault has a close authority\"\n },\n {\n \"code\": 6024,\n \"name\": \"UserAtaRewardVaultMintMissmatch\",\n \"msg\": \"User ata and reward vault have different mints\"\n },\n {\n \"code\": 6025,\n \"name\": \"UserAtaFarmTokenMintMissmatch\",\n \"msg\": \"User ata and farm token have different mints\"\n },\n {\n \"code\": 6026,\n \"name\": \"TokenFarmTokenMintMissmatch\",\n \"msg\": \"Token mint and farm token have different mints\"\n },\n {\n \"code\": 6027,\n \"name\": \"RewardAtaRewardMintMissmatch\",\n \"msg\": \"Reward ata mint is different than reward mint\"\n },\n {\n \"code\": 6028,\n \"name\": \"RewardAtaOwnerNotPayer\",\n \"msg\": \"Reward ata owner is different than payer\"\n },\n {\n \"code\": 6029,\n \"name\": \"InvalidGlobalConfigMode\",\n \"msg\": \"Mode to update global_config is invalid\"\n },\n {\n \"code\": 6030,\n \"name\": \"RewardIndexOutOfRange\",\n \"msg\": \"Reward Index is higher than number of rewards\"\n },\n {\n \"code\": 6031,\n \"name\": \"NothingToWithdraw\",\n \"msg\": \"No tokens available to withdraw\"\n },\n {\n \"code\": 6032,\n \"name\": \"UserDelegatedFarmNonDelegatedMissmatch\",\n \"msg\": \"user, user_ref, authority and payer must match for non-delegated farm\"\n },\n {\n \"code\": 6033,\n \"name\": \"AuthorityFarmDelegateMissmatch\",\n \"msg\": \"Authority must match farm delegate authority\"\n },\n {\n \"code\": 6034,\n \"name\": \"FarmNotDelegated\",\n \"msg\": \"Farm not delegated, can not set stake\"\n },\n {\n \"code\": 6035,\n \"name\": \"FarmDelegated\",\n \"msg\": \"Operation not allowed for delegated farm\"\n },\n {\n \"code\": 6036,\n \"name\": \"UnstakeNotElapsed\",\n \"msg\": \"Unstake lockup period is not elapsed. Deposit is locked until end of unstake period\"\n },\n {\n \"code\": 6037,\n \"name\": \"PendingWithdrawalNotWithdrawnYet\",\n \"msg\": \"Pending withdrawal already exist and not withdrawn yet\"\n },\n {\n \"code\": 6038,\n \"name\": \"DepositZero\",\n \"msg\": \"Cannot deposit zero amount directly to farm vault\"\n },\n {\n \"code\": 6039,\n \"name\": \"InvalidConfigValue\",\n \"msg\": \"Invalid config value\"\n },\n {\n \"code\": 6040,\n \"name\": \"InvalidPenaltyPercentage\",\n \"msg\": \"Invalid penalty percentage\"\n },\n {\n \"code\": 6041,\n \"name\": \"EarlyWithdrawalNotAllowed\",\n \"msg\": \"Early withdrawal not allowed\"\n },\n {\n \"code\": 6042,\n \"name\": \"InvalidLockingTimestamps\",\n \"msg\": \"Invalid locking timestamps\"\n },\n {\n \"code\": 6043,\n \"name\": \"InvalidRpsCurvePoint\",\n \"msg\": \"Invalid reward rate curve point\"\n },\n {\n \"code\": 6044,\n \"name\": \"InvalidTimestamp\",\n \"msg\": \"Invalid timestamp\"\n },\n {\n \"code\": 6045,\n \"name\": \"DepositCapReached\",\n \"msg\": \"Deposit cap reached\"\n },\n {\n \"code\": 6046,\n \"name\": \"MissingScopePrices\",\n \"msg\": \"Missing Scope Prices\"\n },\n {\n \"code\": 6047,\n \"name\": \"ScopeOraclePriceTooOld\",\n \"msg\": \"Scope Oracle Price Too Old\"\n },\n {\n \"code\": 6048,\n \"name\": \"InvalidOracleConfig\",\n \"msg\": \"Invalid Oracle Config\"\n },\n {\n \"code\": 6049,\n \"name\": \"CouldNotDeserializeScope\",\n \"msg\": \"Could not deserialize scope\"\n },\n {\n \"code\": 6050,\n \"name\": \"RewardAtaOwnerNotAdmin\",\n \"msg\": \"Reward ata owner is different than farm admin\"\n },\n {\n \"code\": 6051,\n \"name\": \"WithdrawRewardZeroAvailable\",\n \"msg\": \"Cannot withdraw reward as available amount is zero\"\n },\n {\n \"code\": 6052,\n \"name\": \"RewardScheduleCurveSet\",\n \"msg\": \"Cannot withdraw reward as reward schedule is set\"\n },\n {\n \"code\": 6053,\n \"name\": \"UnsupportedTokenExtension\",\n \"msg\": \"Cannot initialize farm while having a mint with token22 and requested extensions\"\n },\n {\n \"code\": 6054,\n \"name\": \"InvalidFarmConfigUpdateAuthority\",\n \"msg\": \"Invalid authority for updating farm config\"\n }\n ],\n \"types\": [\n {\n \"name\": \"FarmConfigOption\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"UpdateRewardRps\"\n },\n {\n \"name\": \"UpdateRewardMinClaimDuration\"\n },\n {\n \"name\": \"WithdrawAuthority\"\n },\n {\n \"name\": \"DepositWarmupPeriod\"\n },\n {\n \"name\": \"WithdrawCooldownPeriod\"\n },\n {\n \"name\": \"RewardType\"\n },\n {\n \"name\": \"RpsDecimals\"\n },\n {\n \"name\": \"LockingMode\"\n },\n {\n \"name\": \"LockingStartTimestamp\"\n },\n {\n \"name\": \"LockingDuration\"\n },\n {\n \"name\": \"LockingEarlyWithdrawalPenaltyBps\"\n },\n {\n \"name\": \"DepositCapAmount\"\n },\n {\n \"name\": \"SlashedAmountSpillAddress\"\n },\n {\n \"name\": \"ScopePricesAccount\"\n },\n {\n \"name\": \"ScopeOraclePriceId\"\n },\n {\n \"name\": \"ScopeOracleMaxAge\"\n },\n {\n \"name\": \"UpdateRewardScheduleCurvePoints\"\n },\n {\n \"name\": \"UpdatePendingFarmAdmin\"\n },\n {\n \"name\": \"UpdateStrategyId\"\n },\n {\n \"name\": \"UpdateDelegatedRpsAdmin\"\n },\n {\n \"name\": \"UpdateVaultId\"\n },\n {\n \"name\": \"UpdateExtraDelegatedAuthority\"\n }\n ]\n }\n },\n {\n \"name\": \"GlobalConfigOption\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"SetPendingGlobalAdmin\"\n },\n {\n \"name\": \"SetTreasuryFeeBps\"\n }\n ]\n }\n },\n {\n \"name\": \"LockingMode\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"None\"\n },\n {\n \"name\": \"Continuous\"\n },\n {\n \"name\": \"WithExpiry\"\n }\n ]\n }\n },\n {\n \"name\": \"RewardInfo\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"token\",\n \"type\": {\n \"defined\": {\n \"name\": \"TokenInfo\"\n }\n }\n },\n {\n \"name\": \"rewards_vault\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"rewards_available\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_schedule_curve\",\n \"type\": {\n \"defined\": {\n \"name\": \"RewardScheduleCurve\"\n }\n }\n },\n {\n \"name\": \"min_claim_duration_seconds\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"last_issuance_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"rewards_issued_unclaimed\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"rewards_issued_cumulative\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_per_share_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"placeholder0\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_type\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"rewards_per_second_decimals\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": {\n \"array\": [\"u8\", 6]\n }\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\"u64\", 20]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardPerTimeUnitPoint\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"ts_start\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reward_per_time_unit\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"RewardScheduleCurve\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"points\",\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"RewardPerTimeUnitPoint\"\n }\n },\n 20\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"RewardType\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Proportional\"\n },\n {\n \"name\": \"Constant\"\n }\n ]\n }\n },\n {\n \"name\": \"TimeUnit\",\n \"type\": {\n \"kind\": \"enum\",\n \"variants\": [\n {\n \"name\": \"Seconds\"\n },\n {\n \"name\": \"Slots\"\n }\n ]\n }\n },\n {\n \"name\": \"TokenInfo\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"mint\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"decimals\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"token_program\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\"u64\", 6]\n }\n }\n ]\n }\n },\n {\n \"name\": \"DatedPrice\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"price\",\n \"type\": {\n \"defined\": {\n \"name\": \"Price\"\n }\n }\n },\n {\n \"name\": \"last_updated_slot\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"unix_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"reserved\",\n \"type\": {\n \"array\": [\"u64\", 2]\n }\n },\n {\n \"name\": \"reserved2\",\n \"type\": {\n \"array\": [\"u16\", 3]\n }\n },\n {\n \"name\": \"index\",\n \"type\": \"u16\"\n }\n ]\n }\n },\n {\n \"name\": \"Price\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"value\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"exp\",\n \"type\": \"u64\"\n }\n ]\n }\n },\n {\n \"name\": \"FarmState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"farm_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"global_config\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"token\",\n \"type\": {\n \"defined\": {\n \"name\": \"TokenInfo\"\n }\n }\n },\n {\n \"name\": \"reward_infos\",\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"RewardInfo\"\n }\n },\n 10\n ]\n }\n },\n {\n \"name\": \"num_reward_tokens\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"num_users\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"total_staked_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"farm_vault\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"farm_vaults_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"farm_vaults_authority_bump\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegate_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"time_unit\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"is_farm_frozen\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"is_farm_delegated\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": {\n \"array\": [\"u8\", 5]\n }\n },\n {\n \"name\": \"withdraw_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"deposit_warmup_period\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"withdrawal_cooldown_period\",\n \"type\": \"u32\"\n },\n {\n \"name\": \"total_active_stake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_pending_stake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"total_pending_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed_amount_current\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed_amount_cumulative\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"slashed_amount_spill_address\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"locking_mode\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"locking_start_timestamp\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"locking_duration\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"locking_early_withdrawal_penalty_bps\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"deposit_cap_amount\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"scope_prices\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"scope_oracle_price_id\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"scope_oracle_max_age\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"pending_farm_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"strategy_id\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"delegated_rps_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"vault_id\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"second_delegated_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding\",\n \"type\": {\n \"array\": [\"u64\", 74]\n }\n }\n ]\n }\n },\n {\n \"name\": \"GlobalConfig\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"global_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"treasury_fee_bps\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"treasury_vaults_authority\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"treasury_vaults_authority_bump\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"pending_global_admin\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\"u128\", 126]\n }\n }\n ]\n }\n },\n {\n \"name\": \"UserState\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"user_id\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"farm_state\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"owner\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"is_farm_delegated\",\n \"type\": \"u8\"\n },\n {\n \"name\": \"padding0\",\n \"type\": {\n \"array\": [\"u8\", 7]\n }\n },\n {\n \"name\": \"rewards_tally_scaled\",\n \"type\": {\n \"array\": [\"u128\", 10]\n }\n },\n {\n \"name\": \"rewards_issued_unclaimed\",\n \"type\": {\n \"array\": [\"u64\", 10]\n }\n },\n {\n \"name\": \"last_claim_ts\",\n \"type\": {\n \"array\": [\"u64\", 10]\n }\n },\n {\n \"name\": \"active_stake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_deposit_stake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_deposit_stake_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"pending_withdrawal_unstake_scaled\",\n \"type\": \"u128\"\n },\n {\n \"name\": \"pending_withdrawal_unstake_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"bump\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"delegatee\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"last_stake_ts\",\n \"type\": \"u64\"\n },\n {\n \"name\": \"padding1\",\n \"type\": {\n \"array\": [\"u64\", 50]\n }\n }\n ]\n }\n },\n {\n \"name\": \"OraclePrices\",\n \"type\": {\n \"kind\": \"struct\",\n \"fields\": [\n {\n \"name\": \"oracle_mappings\",\n \"type\": \"pubkey\"\n },\n {\n \"name\": \"prices\",\n \"type\": {\n \"array\": [\n {\n \"defined\": {\n \"name\": \"DatedPrice\"\n }\n },\n 512\n ]\n }\n }\n ]\n }\n }\n ]\n}\n","import { KaminoLending } from \"./klend\";\nimport { Farms } from \"./kfarms\";\nimport KLEND_IDL_JSON from \"./klend.json\";\nimport KFARMS_IDL_JSON from \"./kfarms.json\";\n\nexport const KLEND_IDL = KLEND_IDL_JSON as KaminoLending;\nexport const KFARMS_IDL = KFARMS_IDL_JSON as Farms;\nexport type KlendIdlType = KaminoLending;\nexport type KfarmsIdlType = Farms;\n","import BN from \"bn.js\";\nimport {\n ObligationCollateralFields,\n ObligationCollateralJSON,\n ObligationJSON,\n ObligationLiquidityFields,\n ObligationLiquidityJSON,\n ObligationOrderFields,\n ObligationOrderJSON,\n ObligationRaw,\n ReserveConfigFields,\n ReserveConfigJSON,\n ReserveJSON,\n ReserveLiquidityFields,\n ReserveLiquidityJSON,\n ReserveRaw,\n TokenInfoFields,\n TokenInfoJSON,\n WithdrawalCapsFields,\n WithdrawalCapsJSON,\n} from \"../../types\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { BorshCoder, Idl } from \"@coral-xyz/anchor\";\nimport { KLEND_IDL } from \"../../idl\";\nimport * as borsh from \"@coral-xyz/borsh\";\n\nexport const KLEND_ACCOUNT_CODER = new BorshCoder(KLEND_IDL);\n\nconst reserveDiscriminator = Buffer.from([43, 242, 204, 202, 26, 247, 59, 127]);\n\nconst obligationDiscriminator = Buffer.from([\n 168, 206, 141, 106, 88, 76, 172, 167,\n]);\n\nconst obligationLayout = borsh.struct<ObligationRaw>([\n borsh.u64(\"tag\"),\n borsh.struct(\n [\n borsh.u64(\"slot\"),\n borsh.u8(\"stale\"),\n borsh.u8(\"priceStatus\"),\n borsh.array(borsh.u8(), 6, \"placeholder\"),\n ],\n \"lastUpdate\"\n ),\n borsh.publicKey(\"lendingMarket\"),\n borsh.publicKey(\"owner\"),\n borsh.array(\n borsh.struct([\n borsh.publicKey(\"depositReserve\"),\n borsh.u64(\"depositedAmount\"),\n borsh.u128(\"marketValueSf\"),\n borsh.u64(\"borrowedAmountAgainstThisCollateralInElevationGroup\"),\n borsh.array(borsh.u64(), 9, \"padding\"),\n ]),\n 8,\n \"deposits\"\n ),\n borsh.u64(\"lowestReserveDepositLiquidationLtv\"),\n borsh.u128(\"depositedValueSf\"),\n borsh.array(\n borsh.struct([\n borsh.publicKey(\"borrowReserve\"),\n borsh.struct(\n [\n borsh.array(borsh.u64(), 4, \"value\"),\n borsh.array(borsh.u64(), 2, \"padding\"),\n ],\n \"cumulativeBorrowRateBsf\"\n ),\n borsh.u64(\"padding\"),\n borsh.u128(\"borrowedAmountSf\"),\n borsh.u128(\"marketValueSf\"),\n borsh.u128(\"borrowFactorAdjustedMarketValueSf\"),\n borsh.u64(\"borrowedAmountOutsideElevationGroups\"),\n borsh.array(borsh.u64(), 7, \"padding2\"),\n ]),\n 5,\n \"borrows\"\n ),\n borsh.u128(\"borrowFactorAdjustedDebtValueSf\"),\n borsh.u128(\"borrowedAssetsMarketValueSf\"),\n borsh.u128(\"allowedBorrowValueSf\"),\n borsh.u128(\"unhealthyBorrowValueSf\"),\n borsh.array(borsh.u8(), 8, \"depositsAssetTiers\"),\n borsh.array(borsh.u8(), 5, \"borrowsAssetTiers\"),\n borsh.u8(\"elevationGroup\"),\n borsh.u8(\"numOfObsoleteDepositReserves\"),\n borsh.u8(\"hasDebt\"),\n borsh.publicKey(\"referrer\"),\n borsh.u8(\"borrowingDisabled\"),\n borsh.u8(\"autodeleverageTargetLtvPct\"),\n borsh.u8(\"lowestReserveDepositMaxLtvPct\"),\n borsh.u8(\"numOfObsoleteBorrowReserves\"),\n borsh.array(borsh.u8(), 4, \"reserved\"),\n borsh.u64(\"highestBorrowFactorPct\"),\n borsh.u64(\"autodeleverageMarginCallStartedTimestamp\"),\n borsh.array(\n borsh.struct([\n borsh.u128(\"conditionThresholdSf\"),\n borsh.u128(\"opportunityParameterSf\"),\n borsh.u16(\"minExecutionBonusBps\"),\n borsh.u16(\"maxExecutionBonusBps\"),\n borsh.u8(\"conditionType\"),\n borsh.u8(\"opportunityType\"),\n borsh.array(borsh.u8(), 10, \"padding1\"),\n borsh.array(borsh.u128(), 5, \"padding2\"),\n ]),\n 2,\n \"orders\"\n ),\n borsh.array(borsh.u64(), 93, \"padding3\"),\n]);\n\nconst reserveLayout = borsh.struct<ReserveRaw>([\n borsh.u64(\"version\"),\n borsh.struct(\n [\n borsh.u64(\"slot\"),\n borsh.u8(\"stale\"),\n borsh.u8(\"priceStatus\"),\n borsh.array(borsh.u8(), 6, \"placeholder\"),\n ],\n \"lastUpdate\"\n ),\n borsh.publicKey(\"lendingMarket\"),\n borsh.publicKey(\"farmCollateral\"),\n borsh.publicKey(\"farmDebt\"),\n borsh.struct(\n [\n borsh.publicKey(\"mintPubkey\"),\n borsh.publicKey(\"supplyVault\"),\n borsh.publicKey(\"feeVault\"),\n borsh.u64(\"availableAmount\"),\n borsh.u128(\"borrowedAmountSf\"),\n borsh.u128(\"marketPriceSf\"),\n borsh.u64(\"marketPriceLastUpdatedTs\"),\n borsh.u64(\"mintDecimals\"),\n borsh.u64(\"depositLimitCrossedTimestamp\"),\n borsh.u64(\"borrowLimitCrossedTimestamp\"),\n borsh.struct(\n [\n borsh.array(borsh.u64(), 4, \"value\"),\n borsh.array(borsh.u64(), 2, \"padding\"),\n ],\n \"cumulativeBorrowRateBsf\"\n ),\n borsh.u128(\"accumulatedProtocolFeesSf\"),\n borsh.u128(\"accumulatedReferrerFeesSf\"),\n borsh.u128(\"pendingReferrerFeesSf\"),\n borsh.u128(\"absoluteReferralRateSf\"),\n borsh.publicKey(\"tokenProgram\"),\n borsh.array(borsh.u64(), 51, \"padding2\"),\n borsh.array(borsh.u128(), 32, \"padding3\"),\n ],\n \"liquidity\"\n ),\n borsh.array(borsh.u64(), 150, \"reserveLiquidityPadding\"),\n borsh.struct(\n [\n borsh.publicKey(\"mintPubkey\"),\n borsh.u64(\"mintTotalSupply\"),\n borsh.publicKey(\"supplyVault\"),\n borsh.array(borsh.u128(), 32, \"padding1\"),\n borsh.array(borsh.u128(), 32, \"padding2\"),\n ],\n \"collateral\"\n ),\n borsh.array(borsh.u64(), 150, \"reserveCollateralPadding\"),\n borsh.struct(\n [\n borsh.u8(\"status\"),\n borsh.u8(\"assetTier\"),\n borsh.u16(\"hostFixedInterestRateBps\"),\n borsh.array(borsh.u8(), 9, \"reserved2\"),\n borsh.u8(\"protocolOrderExecutionFeePct\"),\n borsh.u8(\"protocolTakeRatePct\"),\n borsh.u8(\"protocolLiquidationFeePct\"),\n borsh.u8(\"loanToValuePct\"),\n borsh.u8(\"liquidationThresholdPct\"),\n borsh.u16(\"minLiquidationBonusBps\"),\n borsh.u16(\"maxLiquidationBonusBps\"),\n borsh.u16(\"badDebtLiquidationBonusBps\"),\n borsh.u64(\"deleveragingMarginCallPeriodSecs\"),\n borsh.u64(\"deleveragingThresholdDecreaseBpsPerDay\"),\n borsh.struct(\n [\n borsh.u64(\"borrowFeeSf\"),\n borsh.u64(\"flashLoanFeeSf\"),\n borsh.array(borsh.u8(), 8, \"padding\"),\n ],\n \"fees\"\n ),\n borsh.struct(\n [\n borsh.array(\n borsh.struct([\n borsh.u32(\"utilizationRateBps\"),\n borsh.u32(\"borrowRateBps\"),\n ]),\n 11,\n \"points\"\n ),\n ],\n \"borrowRateCurve\"\n ),\n borsh.u64(\"borrowFactorPct\"),\n borsh.u64(\"depositLimit\"),\n borsh.u64(\"borrowLimit\"),\n borsh.struct(\n [\n borsh.array(borsh.u8(), 32, \"name\"),\n borsh.struct(\n [borsh.u64(\"lower\"), borsh.u64(\"upper\"), borsh.u64(\"exp\")],\n \"heuristic\"\n ),\n borsh.u64(\"maxTwapDivergenceBps\"),\n borsh.u64(\"maxAgePriceSeconds\"),\n borsh.u64(\"maxAgeTwapSeconds\"),\n borsh.struct(\n [\n borsh.publicKey(\"priceFeed\"),\n borsh.array(borsh.u16(), 4, \"priceChain\"),\n borsh.array(borsh.u16(), 4, \"twapChain\"),\n ],\n \"scopeConfiguration\"\n ),\n borsh.struct(\n [\n borsh.publicKey(\"priceAggregator\"),\n borsh.publicKey(\"twapAggregator\"),\n ],\n \"switchboardConfiguration\"\n ),\n borsh.struct([borsh.publicKey(\"price\")], \"pythConfiguration\"),\n borsh.u8(\"blockPriceUsage\"),\n borsh.array(borsh.u8(), 7, \"reserved\"),\n borsh.array(borsh.u64(), 19, \"padding\"),\n ],\n \"tokenInfo\"\n ),\n borsh.struct(\n [\n borsh.i64(\"configCapacity\"),\n borsh.i64(\"currentTotal\"),\n borsh.u64(\"lastIntervalStartTimestamp\"),\n borsh.u64(\"configIntervalLengthSeconds\"),\n ],\n \"depositWithdrawalCap\"\n ),\n borsh.struct(\n [\n borsh.i64(\"configCapacity\"),\n borsh.i64(\"currentTotal\"),\n borsh.u64(\"lastIntervalStartTimestamp\"),\n borsh.u64(\"configIntervalLengthSeconds\"),\n ],\n \"debtWithdrawalCap\"\n ),\n borsh.array(borsh.u8(), 20, \"elevationGroups\"),\n borsh.u8(\"disableUsageAsCollOutsideEmode\"),\n borsh.u8(\"utilizationLimitBlockBorrowingAbovePct\"),\n borsh.u8(\"autodeleverageEnabled\"),\n borsh.array(borsh.u8(), 1, \"reserved1\"),\n borsh.u64(\"borrowLimitOutsideElevationGroup\"),\n borsh.array(\n borsh.u64(),\n 32,\n \"borrowLimitAgainstThisCollateralInElevationGroup\"\n ),\n borsh.u64(\"deleveragingBonusIncreaseBpsPerDay\"),\n ],\n \"config\"\n ),\n borsh.array(borsh.u64(), 116, \"configPadding\"),\n borsh.u64(\"borrowedAmountOutsideElevationGroup\"),\n borsh.array(\n borsh.u64(),\n 32,\n \"borrowedAmountsAgainstThisReserveInElevationGroups\"\n ),\n borsh.array(borsh.u64(), 207, \"padding\"),\n]);\n\nexport function decodeKlendReserveData(data: Buffer): ReserveRaw {\n if (!data.slice(0, 8).equals(reserveDiscriminator)) {\n throw new Error(\"invalid account discriminator\");\n }\n\n const dec = reserveLayout.decode(data.slice(8));\n return dec;\n}\n\nexport function decodeKlendObligationData(data: Buffer): ObligationRaw {\n if (!data.slice(0, 8).equals(obligationDiscriminator)) {\n throw new Error(\"invalid account discriminator\");\n }\n\n const dec = obligationLayout.decode(data.slice(8));\n return dec;\n}\n\nexport function dtoToObligationRaw(\n obligationDto: ObligationJSON\n): ObligationRaw {\n return {\n tag: new BN(obligationDto.tag),\n lastUpdate: {\n slot: new BN(obligationDto.lastUpdate.slot),\n stale: obligationDto.lastUpdate.stale,\n priceStatus: obligationDto.lastUpdate.priceStatus,\n placeholder: obligationDto.lastUpdate.placeholder,\n },\n lendingMarket: new PublicKey(obligationDto.lendingMarket),\n owner: new PublicKey(obligationDto.owner),\n deposits: obligationDto.deposits.map((item) =>\n dtoToObligationCollateralFields(item)\n ),\n lowestReserveDepositLiquidationLtv: new BN(\n obligationDto.lowestReserveDepositLiquidationLtv\n ),\n depositedValueSf: new BN(obligationDto.depositedValueSf),\n borrows: obligationDto.borrows.map((item) =>\n dtoToObligationLiquidityFields(item)\n ),\n borrowFactorAdjustedDebtValueSf: new BN(\n obligationDto.borrowFactorAdjustedDebtValueSf\n ),\n borrowedAssetsMarketValueSf: new BN(\n obligationDto.borrowedAssetsMarketValueSf\n ),\n allowedBorrowValueSf: new BN(obligationDto.allowedBorrowValueSf),\n unhealthyBorrowValueSf: new BN(obligationDto.unhealthyBorrowValueSf),\n depositsAssetTiers: obligationDto.depositsAssetTiers,\n borrowsAssetTiers: obligationDto.borrowsAssetTiers,\n elevationGroup: obligationDto.elevationGroup,\n numOfObsoleteDepositReserves: obligationDto.numOfObsoleteDepositReserves,\n hasDebt: obligationDto.hasDebt,\n referrer: new PublicKey(obligationDto.referrer),\n borrowingDisabled: obligationDto.borrowingDisabled,\n autodeleverageTargetLtvPct: obligationDto.autodeleverageTargetLtvPct,\n lowestReserveDepositMaxLtvPct: obligationDto.lowestReserveDepositMaxLtvPct,\n numOfObsoleteBorrowReserves: obligationDto.numOfObsoleteBorrowReserves,\n reserved: obligationDto.reserved,\n highestBorrowFactorPct: new BN(obligationDto.highestBorrowFactorPct),\n autodeleverageMarginCallStartedTimestamp: new BN(\n obligationDto.autodeleverageMarginCallStartedTimestamp\n ),\n orders: obligationDto.orders.map((item) =>\n dtoToObligationOrderFields(item)\n ),\n padding3: obligationDto.padding3.map((item) => new BN(item)),\n };\n}\n\nexport function dtoToReserveRaw(reserveDto: ReserveJSON): ReserveRaw {\n return {\n version: new BN(reserveDto.version),\n lastUpdate: {\n slot: new BN(reserveDto.lastUpdate.slot),\n stale: reserveDto.lastUpdate.stale,\n priceStatus: reserveDto.lastUpdate.priceStatus,\n placeholder: reserveDto.lastUpdate.placeholder,\n },\n lendingMarket: new PublicKey(reserveDto.lendingMarket),\n farmCollateral: new PublicKey(reserveDto.farmCollateral),\n farmDebt: new PublicKey(reserveDto.farmDebt),\n liquidity: dtoToReserveLiquidityFields(reserveDto.liquidity),\n reserveLiquidityPadding: reserveDto.reserveLiquidityPadding.map(\n (item) => new BN(item)\n ),\n collateral: {\n mintPubkey: new PublicKey(reserveDto.collateral.mintPubkey),\n mintTotalSupply: new BN(reserveDto.collateral.mintTotalSupply),\n supplyVault: new PublicKey(reserveDto.collateral.supplyVault),\n padding1: reserveDto.collateral.padding1.map((item) => new BN(item)),\n padding2: reserveDto.collateral.padding2.map((item) => new BN(item)),\n },\n reserveCollateralPadding: reserveDto.reserveCollateralPadding.map(\n (item) => new BN(item)\n ),\n config: dtoToReserveConfigFields(reserveDto.config),\n configPadding: reserveDto.configPadding.map((item) => new BN(item)),\n borrowedAmountOutsideElevationGroup: new BN(\n reserveDto.borrowedAmountOutsideElevationGroup\n ),\n borrowedAmountsAgainstThisReserveInElevationGroups:\n reserveDto.borrowedAmountsAgainstThisReserveInElevationGroups.map(\n (item) => new BN(item)\n ),\n padding: reserveDto.padding.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToReserveLiquidityFields(\n reserveDto: ReserveLiquidityJSON\n): ReserveLiquidityFields {\n return {\n mintPubkey: new PublicKey(reserveDto.mintPubkey),\n supplyVault: new PublicKey(reserveDto.supplyVault),\n feeVault: new PublicKey(reserveDto.feeVault),\n availableAmount: new BN(reserveDto.availableAmount),\n borrowedAmountSf: new BN(reserveDto.borrowedAmountSf),\n marketPriceSf: new BN(reserveDto.marketPriceSf),\n marketPriceLastUpdatedTs: new BN(reserveDto.marketPriceLastUpdatedTs),\n mintDecimals: new BN(reserveDto.mintDecimals),\n depositLimitCrossedTimestamp: new BN(\n reserveDto.depositLimitCrossedTimestamp\n ),\n borrowLimitCrossedTimestamp: new BN(reserveDto.borrowLimitCrossedTimestamp),\n cumulativeBorrowRateBsf: {\n value: reserveDto.cumulativeBorrowRateBsf.value.map(\n (item) => new BN(item)\n ),\n padding: reserveDto.cumulativeBorrowRateBsf.padding.map(\n (item) => new BN(item)\n ),\n },\n accumulatedProtocolFeesSf: new BN(reserveDto.accumulatedProtocolFeesSf),\n accumulatedReferrerFeesSf: new BN(reserveDto.accumulatedReferrerFeesSf),\n pendingReferrerFeesSf: new BN(reserveDto.pendingReferrerFeesSf),\n absoluteReferralRateSf: new BN(reserveDto.absoluteReferralRateSf),\n tokenProgram: new PublicKey(reserveDto.tokenProgram),\n padding2: reserveDto.padding2.map((item) => new BN(item)),\n padding3: reserveDto.padding3.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToReserveConfigFields(\n reserveDto: ReserveConfigJSON\n): ReserveConfigFields {\n return {\n status: reserveDto.status,\n assetTier: reserveDto.assetTier,\n hostFixedInterestRateBps: reserveDto.hostFixedInterestRateBps,\n reserved2: reserveDto.reserved2,\n protocolOrderExecutionFeePct: reserveDto.protocolOrderExecutionFeePct,\n protocolTakeRatePct: reserveDto.protocolTakeRatePct,\n protocolLiquidationFeePct: reserveDto.protocolLiquidationFeePct,\n loanToValuePct: reserveDto.loanToValuePct,\n liquidationThresholdPct: reserveDto.liquidationThresholdPct,\n minLiquidationBonusBps: reserveDto.minLiquidationBonusBps,\n maxLiquidationBonusBps: reserveDto.maxLiquidationBonusBps,\n badDebtLiquidationBonusBps: reserveDto.badDebtLiquidationBonusBps,\n deleveragingMarginCallPeriodSecs: new BN(\n reserveDto.deleveragingMarginCallPeriodSecs\n ),\n deleveragingThresholdDecreaseBpsPerDay: new BN(\n reserveDto.deleveragingThresholdDecreaseBpsPerDay\n ),\n fees: {\n borrowFeeSf: new BN(reserveDto.fees.borrowFeeSf),\n flashLoanFeeSf: new BN(reserveDto.fees.flashLoanFeeSf),\n padding: reserveDto.fees.padding,\n },\n borrowRateCurve: {\n points: reserveDto.borrowRateCurve.points.map((item) => ({\n utilizationRateBps: item.utilizationRateBps,\n borrowRateBps: item.borrowRateBps,\n })),\n },\n borrowFactorPct: new BN(reserveDto.borrowFactorPct),\n depositLimit: new BN(reserveDto.depositLimit),\n borrowLimit: new BN(reserveDto.borrowLimit),\n tokenInfo: dtoToTokenInfoFields(reserveDto.tokenInfo),\n depositWithdrawalCap: dtoToWithdrawalCapsFields(\n reserveDto.depositWithdrawalCap\n ),\n debtWithdrawalCap: dtoToWithdrawalCapsFields(reserveDto.debtWithdrawalCap),\n elevationGroups: reserveDto.elevationGroups,\n disableUsageAsCollOutsideEmode: reserveDto.disableUsageAsCollOutsideEmode,\n utilizationLimitBlockBorrowingAbovePct:\n reserveDto.utilizationLimitBlockBorrowingAbovePct,\n autodeleverageEnabled: reserveDto.autodeleverageEnabled,\n reserved1: reserveDto.reserved1,\n borrowLimitOutsideElevationGroup: new BN(\n reserveDto.borrowLimitOutsideElevationGroup\n ),\n borrowLimitAgainstThisCollateralInElevationGroup:\n reserveDto.borrowLimitAgainstThisCollateralInElevationGroup.map(\n (item) => new BN(item)\n ),\n deleveragingBonusIncreaseBpsPerDay: new BN(\n reserveDto.deleveragingBonusIncreaseBpsPerDay\n ),\n };\n}\n\nfunction dtoToTokenInfoFields(tokenInfoDto: TokenInfoJSON): TokenInfoFields {\n return {\n name: tokenInfoDto.name,\n heuristic: {\n lower: new BN(tokenInfoDto.heuristic.lower),\n upper: new BN(tokenInfoDto.heuristic.upper),\n exp: new BN(tokenInfoDto.heuristic.exp),\n },\n maxTwapDivergenceBps: new BN(tokenInfoDto.maxTwapDivergenceBps),\n maxAgePriceSeconds: new BN(tokenInfoDto.maxAgePriceSeconds),\n maxAgeTwapSeconds: new BN(tokenInfoDto.maxAgeTwapSeconds),\n scopeConfiguration: {\n priceFeed: new PublicKey(tokenInfoDto.scopeConfiguration.priceFeed),\n priceChain: tokenInfoDto.scopeConfiguration.priceChain,\n twapChain: tokenInfoDto.scopeConfiguration.twapChain,\n },\n switchboardConfiguration: {\n priceAggregator: new PublicKey(\n tokenInfoDto.switchboardConfiguration.priceAggregator\n ),\n twapAggregator: new PublicKey(\n tokenInfoDto.switchboardConfiguration.twapAggregator\n ),\n },\n pythConfiguration: {\n price: new PublicKey(tokenInfoDto.pythConfiguration.price),\n },\n blockPriceUsage: tokenInfoDto.blockPriceUsage,\n reserved: tokenInfoDto.reserved,\n padding: tokenInfoDto.padding.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToWithdrawalCapsFields(\n withdrawalCapsDto: WithdrawalCapsJSON\n): WithdrawalCapsFields {\n return {\n configCapacity: new BN(withdrawalCapsDto.configCapacity),\n currentTotal: new BN(withdrawalCapsDto.currentTotal),\n lastIntervalStartTimestamp: new BN(\n withdrawalCapsDto.lastIntervalStartTimestamp\n ),\n configIntervalLengthSeconds: new BN(\n withdrawalCapsDto.configIntervalLengthSeconds\n ),\n };\n}\n\nfunction dtoToObligationCollateralFields(\n obligationCollateralDto: ObligationCollateralJSON\n): ObligationCollateralFields {\n return {\n depositReserve: new PublicKey(obligationCollateralDto.depositReserve),\n depositedAmount: new BN(obligationCollateralDto.depositedAmount),\n marketValueSf: new BN(obligationCollateralDto.marketValueSf),\n borrowedAmountAgainstThisCollateralInElevationGroup: new BN(\n obligationCollateralDto.borrowedAmountAgainstThisCollateralInElevationGroup\n ),\n padding: obligationCollateralDto.padding.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToObligationLiquidityFields(\n obligationLiquidityDto: ObligationLiquidityJSON\n): ObligationLiquidityFields {\n return {\n borrowReserve: new PublicKey(obligationLiquidityDto.borrowReserve),\n cumulativeBorrowRateBsf: {\n value: obligationLiquidityDto.cumulativeBorrowRateBsf.value.map(\n (item) => new BN(item)\n ),\n padding: obligationLiquidityDto.cumulativeBorrowRateBsf.padding.map(\n (item) => new BN(item)\n ),\n },\n padding: new BN(obligationLiquidityDto.padding),\n borrowedAmountSf: new BN(obligationLiquidityDto.borrowedAmountSf),\n marketValueSf: new BN(obligationLiquidityDto.marketValueSf),\n borrowFactorAdjustedMarketValueSf: new BN(\n obligationLiquidityDto.borrowFactorAdjustedMarketValueSf\n ),\n borrowedAmountOutsideElevationGroups: new BN(\n obligationLiquidityDto.borrowedAmountOutsideElevationGroups\n ),\n padding2: obligationLiquidityDto.padding2.map((item) => new BN(item)),\n };\n}\n\nfunction dtoToObligationOrderFields(\n obligationOrderDto: ObligationOrderJSON\n): ObligationOrderFields {\n return {\n conditionThresholdSf: new BN(obligationOrderDto.conditionThresholdSf),\n opportunityParameterSf: new BN(obligationOrderDto.opportunityParameterSf),\n minExecutionBonusBps: obligationOrderDto.minExecutionBonusBps,\n maxExecutionBonusBps: obligationOrderDto.maxExecutionBonusBps,\n conditionType: obligationOrderDto.conditionType,\n opportunityType: obligationOrderDto.opportunityType,\n padding1: obligationOrderDto.padding1,\n padding2: obligationOrderDto.padding2.map((item) => new BN(item)),\n };\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport { KLEND_PROGRAM_ID } from \"../../constants\";\n\nexport const SEED_LENDING_MARKET_AUTH = \"lma\";\nexport const SEED_RESERVE_LIQ_SUPPLY = \"reserve_liq_supply\";\nexport const SEED_FEE_RECEIVER = \"fee_receiver\";\nexport const SEED_RESERVE_COLL_MINT = \"reserve_coll_mint\";\nexport const SEED_RESERVE_COLL_SUPPLY = \"reserve_coll_supply\";\nexport const SEED_BASE_REFERRER_TOKEN_STATE = \"referrer_acc\";\nexport const SEED_BASE_USER_METADATA = \"user_meta\";\nexport const SEED_BASE_REFERRER_STATE = \"ref_state\";\nexport const SEED_BASE_SHORT_URL = \"short_url\";\nexport const SEED_USER_STATE = \"user\";\n\nexport function getAllDerivedKaminoAccounts(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n) {\n return {\n lendingMarketAuthority: deriveLendingMarketAuthority(lendingMarket)[0],\n reserveLiquiditySupply: deriveReserveLiquiditySupply(\n lendingMarket,\n reserveLiquidityMint\n )[0],\n reserveCollateralMint: deriveReserveCollateralMint(\n lendingMarket,\n reserveLiquidityMint\n )[0],\n reserveDestinationDepositCollateral: deriveReserveCollateralSupply(\n lendingMarket,\n reserveLiquidityMint\n )[0],\n };\n}\n\nexport function deriveLendingMarketAuthority(\n lendingMarket: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_LENDING_MARKET_AUTH), lendingMarket.toBuffer()],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReserveLiquiditySupply(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEED_RESERVE_LIQ_SUPPLY),\n lendingMarket.toBuffer(),\n reserveLiquidityMint.toBuffer(),\n ],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveFeeReceiver(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEED_FEE_RECEIVER),\n lendingMarket.toBuffer(),\n reserveLiquidityMint.toBuffer(),\n ],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReserveCollateralMint(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEED_RESERVE_COLL_MINT),\n lendingMarket.toBuffer(),\n reserveLiquidityMint.toBuffer(),\n ],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReserveCollateralSupply(\n lendingMarket: PublicKey,\n reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from(SEED_RESERVE_COLL_SUPPLY),\n lendingMarket.toBuffer(),\n reserveLiquidityMint.toBuffer(),\n ],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReferrerTokenState(\n referrer: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_BASE_REFERRER_TOKEN_STATE), referrer.toBuffer()],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveUserMetadata(user: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_BASE_USER_METADATA), user.toBuffer()],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveReferrerState(user: PublicKey): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_BASE_REFERRER_STATE), user.toBuffer()],\n KLEND_PROGRAM_ID\n );\n}\n\nexport function deriveShortUrl(identifier: Buffer): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_BASE_SHORT_URL), identifier],\n KLEND_PROGRAM_ID\n );\n}\n\n/**\n * Typically the obligation for each bank will have tag and id = 0\n * @param ownerPublicKey\n * @param marketPublicKey\n * @param programId - Default KLEND_PROGRAM_ID\n * @param seed1AccountKey - Default PublicKey.default\n * @param seed2AccountKey - Default PublicKey.default\n * @param tag - Default 0\n * @param id - Default 0\n * @returns\n */\nexport const deriveBaseObligation = (\n ownerPublicKey: PublicKey,\n marketPublicKey: PublicKey,\n programId: PublicKey = KLEND_PROGRAM_ID,\n seed1AccountKey: PublicKey = PublicKey.default,\n seed2AccountKey: PublicKey = PublicKey.default,\n tag: number = 0,\n id: number = 0\n) => {\n return deriveObligation(\n programId,\n tag,\n id,\n ownerPublicKey,\n marketPublicKey,\n seed1AccountKey,\n seed2AccountKey\n );\n};\n\nexport const deriveObligation = (\n programId: PublicKey,\n tag: number,\n id: number,\n ownerPublicKey: PublicKey,\n marketPublicKey: PublicKey,\n seed1AccountKey: PublicKey,\n seed2AccountKey: PublicKey\n) => {\n return PublicKey.findProgramAddressSync(\n [\n Buffer.from([tag]),\n Buffer.from([id]),\n ownerPublicKey.toBuffer(),\n marketPublicKey.toBuffer(),\n seed1AccountKey.toBuffer(),\n seed2AccountKey.toBuffer(),\n ],\n programId\n );\n};\n\n/**\n * Somewhat contrary to the name, this is the rewards state of the farms program for an obligation\n * (like one owned by a bank), and has nothing to do with \"users\" in a margin context.\n * @param programId\n * @param farmState\n * @param obligation\n * @returns\n */\nexport function deriveUserState(\n programId: PublicKey,\n farmState: PublicKey,\n obligation: PublicKey\n): [PublicKey, number] {\n return PublicKey.findProgramAddressSync(\n [Buffer.from(SEED_USER_STATE), farmState.toBuffer(), obligation.toBuffer()],\n programId\n );\n}\n","import BN from \"bn.js\";\nimport Decimal from \"decimal.js\";\n/**\n * The higher-precision {@link Decimal} counterpart that *must* be used by all operations within {@link Fraction}.\n *\n * ## How to use it?\n * Simply do `new FractionDecimal(x)` instead of `new Decimal(x)`.\n *\n * ## Why is this needed?\n * The default {@link Decimal.precision} is 20.\n * Some fractions on which we operate (most notably: the {@link Fraction.MAX_F_BN}) have more than 20 significant\n * digits, and at the same time they must encode to exact representation (e.g. because the smart contract expects an\n * exact `0xffff...ff` which has a speciyaal meaning, like \"withdraw *all*\").\n *\n * ## Why was this *not* needed before?\n * Some vibe-coded libraries that we use (e.g. `@orca-so/whirlpool-sdk`) statically initialize the global\n * `Decimal.set({ precision: ... })` when loaded. A previous, fortunate import order allowed our {@link Fraction}'s\n * constants to be computed using a sufficiently-high precision. This of course was broken by a random, unrelated\n * refactor, and from that point on we decided to not rely on the thoughtful Orca developers.\n */\nconst FractionDecimal = Decimal.clone({ precision: 40 });\n\nexport class Fraction {\n static MAX_SIZE_F = 128;\n static MAX_SIZE_BF = 256;\n static FRACTIONS = 60;\n static MULTIPLIER = new FractionDecimal(2).pow(Fraction.FRACTIONS);\n\n static MAX_F_BN = new BN(2).pow(new BN(Fraction.MAX_SIZE_F)).sub(new BN(1));\n static MAX_BF_BN = new BN(2).pow(new BN(Fraction.MAX_SIZE_BF)).sub(new BN(1));\n static MIN_BN = new BN(0);\n\n valueSf: BN;\n\n constructor(valueSf: BN) {\n if (valueSf.lt(Fraction.MIN_BN) || valueSf.gt(Fraction.MAX_BF_BN)) {\n throw new Error(\"Number out of range\");\n }\n\n this.valueSf = valueSf;\n }\n\n toDecimal(): Decimal {\n return new FractionDecimal(this.valueSf.toString()).div(\n Fraction.MULTIPLIER\n );\n }\n\n static fromDecimal(n: Decimal | number): Fraction {\n const scaledDecimal = new FractionDecimal(n).mul(Fraction.MULTIPLIER);\n const roundedScaledDecimal = roundNearest(scaledDecimal);\n // Note: the `Decimal.toString()` can return exponential notation (e.g. \"1e9\") for large numbers. This notation is\n // not accepted by `BN` constructor (i.e. invalid character \"e\"). Hence, we use `Decimal.toFixed()` (which is\n // different than `number.toFixed()` - it will not do any rounding, just render a normal notation).\n const scaledValue = new BN(roundedScaledDecimal.toFixed());\n return new Fraction(scaledValue);\n }\n\n static fromBps(n: Decimal | number): Fraction {\n const decimal = new FractionDecimal(n).div(10000);\n return Fraction.fromDecimal(decimal);\n }\n\n static fromPercent(n: Decimal | number): Fraction {\n const decimal = new FractionDecimal(n).div(100);\n return Fraction.fromDecimal(decimal);\n }\n\n getValue(): BN {\n return this.valueSf;\n }\n\n gt(x: Fraction): boolean {\n return this.valueSf.gt(x.getValue());\n }\n\n lt(x: Fraction): boolean {\n return this.valueSf.lt(x.getValue());\n }\n\n gte(x: Fraction): boolean {\n return this.valueSf.gte(x.getValue());\n }\n\n lte(x: Fraction): boolean {\n return this.valueSf.lte(x.getValue());\n }\n\n eq(x: Fraction): boolean {\n return this.valueSf.eq(x.getValue());\n }\n}\n\nexport const ZERO_FRACTION = new Fraction(new BN(0));\n\nexport function bfToDecimal(x: BigFractionBytes): Decimal {\n const bsf = x.value;\n const accSf = bsf.reduce(\n (acc, curr, i) => acc.add(curr.shln(i * 64)),\n new BN(0)\n );\n return new Fraction(accSf).toDecimal();\n}\n\n/**\n * Returns an integer {@link Decimal} nearest to the given one.\n *\n * NOTE: the `Decimal.round()` should actually be called `.trunc()` (by default, it uses floor rounding). In most cases,\n * we prefer the traditional behavior (as `Math.round()`).\n */\nfunction roundNearest(decimal: Decimal): Decimal {\n return decimal.toDecimalPlaces(0, Decimal.ROUND_HALF_CEIL);\n}\n\ninterface BigFractionBytes {\n value: Array<BN>;\n padding: Array<BN>;\n}\n","/**\n * Kamino Lending Protocol - Interest Rate Utilities\n *\n * Provides utilities for calculating interest rates, reserve metrics, and curve generation\n * for the Kamino lending protocol.\n *\n * Extracted all needed functions & constants out of their SDK\n */\n\nimport {\n ONE_HUNDRED_PCT_IN_BPS,\n SLOTS_PER_YEAR,\n SLOTS_PER_SECOND,\n DEFAULT_RECENT_SLOT_DURATION_MS,\n} from \"../../constants\";\nimport { CurvePointFields, ReserveRaw } from \"../../types\";\nimport Decimal from \"decimal.js\";\nimport { Fraction } from \"../../classes\";\nimport * as vendor from \"../../..\";\n\n// =============================================================================\n// INTERFACES\n// =============================================================================\n\nexport interface InterestRateCurvePoint {\n utilization: number; // 0-100 percentage\n borrowAPY: number; // percentage\n supplyAPY: number; // percentage\n}\n\nexport interface KaminoReserveCurveData {\n reserveAddress: string;\n curvePoints: InterestRateCurvePoint[];\n}\n\n// =============================================================================\n// CORE MATH UTILITIES\n// =============================================================================\n\n/**\n * Linear interpolation between two points\n */\nexport const interpolateLinear = (\n x: number,\n x0: number,\n y0: number,\n x1: number,\n y1: number\n): number => {\n return y0 + ((x - x0) * (y1 - y0)) / (x1 - x0);\n};\n\n/**\n * Calculate borrow rate from utilization using interest rate curve\n * @param currentUtilization - Current utilization ratio (0-1)\n * @param curve - Array of [utilization, rate] points\n * @returns Borrow rate for the given utilization\n */\nexport const getBorrowRate = (\n currentUtilization: number,\n curve: [number, number][]\n): number => {\n let [x0, y0, x1, y1] = [0, 0, 0, 0];\n\n if (currentUtilization > 1) {\n currentUtilization = 1;\n }\n\n for (let i = 1; i < curve.length; i++) {\n const currentPoint = curve[i];\n const previousPoint = curve[i - 1];\n\n if (!currentPoint || !previousPoint) {\n continue;\n }\n\n const [pointUtilization, pointRate] = currentPoint;\n if (pointUtilization === currentUtilization) {\n return pointRate;\n }\n\n if (currentUtilization <= pointUtilization) {\n x0 = previousPoint[0];\n y0 = previousPoint[1];\n x1 = currentPoint[0];\n y1 = currentPoint[1];\n break;\n }\n }\n\n if (x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n const lastPoint = curve[curve.length - 1];\n return lastPoint ? lastPoint[1] : 0;\n }\n\n return interpolateLinear(currentUtilization, x0, y0, x1, y1);\n};\n\n// =============================================================================\n// APR/APY CONVERSIONS\n// =============================================================================\n\n/**\n * Convert APR to APY using compound interest formula\n * APY = (1 + APR/n)^n - 1, where n = SLOTS_PER_YEAR\n * @param apr - Annual Percentage Rate as decimal (e.g., 0.05 for 5%)\n * @returns Annual Percentage Yield as decimal\n */\nexport function calculateAPYFromAPR(apr: number): number {\n return Math.pow(1 + apr / SLOTS_PER_YEAR, SLOTS_PER_YEAR) - 1;\n}\n\n// =============================================================================\n// RESERVE SUPPLY & UTILIZATION\n// =============================================================================\n\n/**\n * Calculate total supply of a reserve\n * Formula: available liquidity + borrowed - protocol fees - referrer fees\n * @param reserve - The Kamino reserve\n * @returns Total supply in lamports\n */\nexport function getTotalSupply(reserve: ReserveRaw): Decimal {\n const liquidityAvailableAmount = new Decimal(\n reserve.liquidity.availableAmount.toString()\n );\n const borrowedAmount = new Fraction(\n reserve.liquidity.borrowedAmountSf\n ).toDecimal();\n const accumulatedProtocolFee = new Fraction(\n reserve.liquidity.accumulatedProtocolFeesSf\n ).toDecimal();\n const accumulatedReferrerFees = new Fraction(\n reserve.liquidity.accumulatedReferrerFeesSf\n ).toDecimal();\n const pendingReferrerFees = new Fraction(\n reserve.liquidity.pendingReferrerFeesSf\n ).toDecimal();\n\n return liquidityAvailableAmount\n .add(borrowedAmount)\n .sub(accumulatedProtocolFee)\n .sub(accumulatedReferrerFees)\n .sub(pendingReferrerFees);\n}\n\n/**\n * Calculate utilization ratio of a reserve\n * Formula: total borrowed / total supply\n * @param reserve - The Kamino reserve\n * @returns Utilization ratio (0-1, e.g., 0.75 = 75% utilized)\n */\nexport function calculateUtilizationRatio(reserve: ReserveRaw): number {\n const totalBorrows = new Fraction(\n reserve.liquidity.borrowedAmountSf\n ).toDecimal();\n const totalSupply = getTotalSupply(reserve);\n if (totalSupply.eq(0)) {\n return 0;\n }\n return totalBorrows.dividedBy(totalSupply).toNumber();\n}\n\n// =============================================================================\n// SLOT DURATION & ADJUSTMENT\n// =============================================================================\n\n/**\n * Calculate slot adjustment factor based on recent slot duration\n * Used to adjust rates based on actual blockchain performance\n * @param recentSlotDurationMs - Recent slot duration in milliseconds\n * @returns Slot adjustment factor\n */\nexport function slotAdjustmentFactor(\n recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n return 1000 / SLOTS_PER_SECOND / recentSlotDurationMs;\n}\n\n/**\n * Calculate slot adjustment factor (1:1 with KaminoReserve implementation)\n * Source: klend-sdk/src/classes/reserve.ts line 672\n */\nexport function calculateSlotAdjustmentFactor(\n reserve: ReserveRaw,\n recentSlotDurationMs: number\n): number {\n return 1000 / vendor.SLOTS_PER_SECOND / recentSlotDurationMs;\n}\n\n// =============================================================================\n// RATE CALCULATIONS\n// =============================================================================\n\n/**\n * Calculate estimated borrow rate for a reserve\n * @param reserve - The reserve\n * @param recentSlotDurationMs - Recent slot duration (optional)\n * @returns Borrow rate as decimal (e.g., 0.05 = 5%)\n */\nexport function calculateEstimatedBorrowRate(\n reserve: ReserveRaw,\n recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n const slotAdjFactor = slotAdjustmentFactor(recentSlotDurationMs);\n const currentUtilization = calculateUtilizationRatio(reserve);\n const curve = truncateBorrowCurve(reserve.config.borrowRateCurve.points);\n return getBorrowRate(currentUtilization, curve) * slotAdjFactor;\n}\n\n/**\n * Calculate estimated supply rate for a reserve\n * Formula: borrow rate × utilization × (1 - protocol take rate)\n * @param reserve - The reserve\n * @param recentSlotDurationMs - Recent slot duration (optional)\n * @returns Supply rate as decimal (e.g., 0.03 = 3%)\n */\nexport function calculateEstimatedSupplyRate(\n reserve: ReserveRaw,\n recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n const borrowRate = calculateEstimatedBorrowRate(\n reserve,\n recentSlotDurationMs\n );\n const currentUtilization = calculateUtilizationRatio(reserve);\n const protocolTakeRatePct = 1 - reserve.config.protocolTakeRatePct / 100;\n\n return borrowRate * currentUtilization * protocolTakeRatePct;\n}\n\n/**\n * Calculate supply APY for a reserve\n * APY includes compounding, making it higher than APR\n * Matches Kamino SDK's reserve.totalSupplyAPY()\n * @param reserve - The Kamino reserve\n * @param recentSlotDurationMs - Recent slot duration (defaults to 450ms)\n * @returns Supply APY as decimal (e.g., 0.0512 = 5.12% APY)\n */\nexport function calculateSupplyAPY(\n reserve: ReserveRaw,\n recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n const currentUtilization = calculateUtilizationRatio(reserve);\n const borrowRate = calculateEstimatedBorrowRate(\n reserve,\n recentSlotDurationMs\n );\n const protocolTakeRatePct = 1 - reserve.config.protocolTakeRatePct / 100;\n return calculateAPYFromAPR(\n currentUtilization * borrowRate * protocolTakeRatePct\n );\n}\n\nexport function scaledSupplies(state: ReserveRaw): [Decimal, Decimal] {\n const liqMintDecimals = new Decimal(state.liquidity.mintDecimals.toString());\n const totalSupplyLamports = getTotalSupply(state);\n const mintTotalSupplyLam = new Decimal(\n state.collateral.mintTotalSupply.toString()\n );\n\n const liqScale = new Decimal(10).pow(liqMintDecimals);\n const collScale = new Decimal(10).pow(liqMintDecimals);\n\n const totalSupply = totalSupplyLamports.div(liqScale);\n const totalCollateral = mintTotalSupplyLam.div(collScale);\n\n return [totalSupply, totalCollateral];\n}\n\n// =============================================================================\n// CURVE PROCESSING\n// =============================================================================\n\n/**\n * Convert raw curve points to normalized [utilization, rate] pairs\n * Truncates curve at 100% utilization\n */\nexport const truncateBorrowCurve = (\n points: CurvePointFields[]\n): [number, number][] => {\n const curve: [number, number][] = [];\n for (const { utilizationRateBps, borrowRateBps } of points) {\n curve.push([\n utilizationRateBps / ONE_HUNDRED_PCT_IN_BPS,\n borrowRateBps / ONE_HUNDRED_PCT_IN_BPS,\n ]);\n\n if (utilizationRateBps === ONE_HUNDRED_PCT_IN_BPS) {\n break;\n }\n }\n return curve;\n};\n\n/**\n * Get fixed host interest rate from reserve config (1:1 with Kamino SDK)\n * Source: klend-sdk/src/classes/reserve.ts line 209\n */\nexport function getFixedHostInterestRate(reserve: ReserveRaw): number {\n return reserve.config.hostFixedInterestRateBps / 10_000;\n}\n\n/**\n * Get protocol take rate percentage from reserve config\n */\nexport function getProtocolTakeRatePct(reserve: ReserveRaw): number {\n return 1 - reserve.config.protocolTakeRatePct / 100;\n}\n\n// =============================================================================\n// CURVE GENERATION\n// =============================================================================\n\n/**\n * Generate complete interest rate curve for a reserve\n * Creates 101 data points from 0% to 100% utilization\n * @param curvePoints - Raw curve configuration from reserve\n * @param slotAdjustmentFactor - Adjustment factor for current slot duration\n * @param fixedHostInterestRate - Fixed rate added to all borrow rates\n * @param protocolTakeRatePct - Percentage kept by depositors (1 - protocol fee)\n * @returns Array of curve points with utilization, borrow APY, and supply APY\n */\nexport function generateKaminoReserveCurve(\n curvePoints: CurvePointFields[],\n slotAdjustmentFactor: number,\n fixedHostInterestRate: number,\n protocolTakeRatePct: number\n): InterestRateCurvePoint[] {\n if (curvePoints.length === 0) {\n return [];\n }\n\n const curve = truncateBorrowCurve(curvePoints);\n\n return Array.from({ length: 101 }, (_, i) => {\n const utilization = i / 100;\n\n // Calculate base borrow rate and add fixed host interest\n const baseBorrowRate =\n getBorrowRate(utilization, curve) * slotAdjustmentFactor;\n const borrowAPR = baseBorrowRate + fixedHostInterestRate;\n\n // Calculate supply APR (utilization × borrowAPR × protocolTakeRate)\n const supplyAPR = utilization * borrowAPR * protocolTakeRatePct;\n\n // Convert to APY with compounding\n const borrowAPY = calculateAPYFromAPR(borrowAPR);\n const supplyAPY = calculateAPYFromAPR(supplyAPR);\n\n return {\n utilization: utilization * 100,\n borrowAPY: borrowAPY * 100,\n supplyAPY: supplyAPY * 100,\n };\n });\n}\n","import Decimal from \"decimal.js\";\nimport { FarmStateRaw, ReserveRaw, RewardInfoFields } from \"../../types\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { getTotalSupply } from \"../klend/interest-rate.utils\";\n\nexport function getRewardPerTimeUnitSecond(reward: RewardInfoFields) {\n const now = new Decimal(new Date().getTime()).div(1000);\n let rewardPerTimeUnitSecond = new Decimal(0);\n for (let i = 0; i < reward.rewardScheduleCurve.points.length - 1; i++) {\n const currentPoint = reward.rewardScheduleCurve.points[i];\n const nextPoint = reward.rewardScheduleCurve.points[i + 1];\n\n if (!currentPoint || !nextPoint) {\n continue;\n }\n\n const { tsStart: tsStartThisPoint, rewardPerTimeUnit } = currentPoint;\n const { tsStart: tsStartNextPoint } = nextPoint;\n\n const thisPeriodStart = new Decimal(tsStartThisPoint.toString());\n const thisPeriodEnd = new Decimal(tsStartNextPoint.toString());\n const rps = new Decimal(rewardPerTimeUnit.toString());\n if (thisPeriodStart <= now && thisPeriodEnd >= now) {\n rewardPerTimeUnitSecond = rps;\n break;\n } else if (thisPeriodStart > now && thisPeriodEnd > now) {\n rewardPerTimeUnitSecond = rps;\n break;\n }\n }\n\n const rewardTokenDecimals = reward.token.decimals.toNumber();\n const rewardAmountPerUnitDecimals = new Decimal(10).pow(\n reward.rewardsPerSecondDecimals.toString()\n );\n const rewardAmountPerUnitLamports = new Decimal(10).pow(\n rewardTokenDecimals.toString()\n );\n\n const rpsAdjusted = new Decimal(rewardPerTimeUnitSecond.toString())\n .div(rewardAmountPerUnitDecimals)\n .div(rewardAmountPerUnitLamports);\n\n return rewardPerTimeUnitSecond ? rpsAdjusted : new Decimal(0);\n}\n\nexport async function getReserveRewardsApy(\n priceByMint: Record<string, number>,\n farmState: FarmStateRaw,\n reserveState: ReserveRaw\n) {\n const rewardApys: {\n rewardApy: Decimal;\n rewardInfo: RewardInfoFields;\n rewardApr: Decimal;\n }[] = [];\n\n for (const rewardInfo of farmState!.rewardInfos.filter(\n (x) => x.token.mint !== new PublicKey(\"11111111111111111111111111111111\")\n )) {\n // Skip if we don't have prices for reserve or reward token\n const reserveMint = reserveState.liquidity.mintPubkey.toString();\n const rewardMint = rewardInfo.token.mint.toString();\n\n const reservePrice = priceByMint[reserveMint];\n const rewardPrice = priceByMint[rewardMint];\n\n // Check for undefined or null (but allow 0 as a valid price)\n if (\n reservePrice === undefined ||\n reservePrice === null ||\n rewardPrice === undefined ||\n rewardPrice === null\n ) {\n continue;\n }\n\n const { apy, apr } = calculateRewardApy(\n priceByMint,\n reserveState,\n rewardInfo\n );\n rewardApys.push({ rewardApy: apy, rewardInfo, rewardApr: apr });\n }\n\n return rewardApys;\n}\n\nexport function calculateRewardApy(\n priceByMint: Record<string, number>,\n reserve: ReserveRaw,\n rewardInfo: RewardInfoFields\n) {\n const decimals = reserve.liquidity.mintDecimals.toNumber();\n const totalSupply = getTotalSupply(reserve);\n const mintAddress = reserve.liquidity.mintPubkey;\n const totalAmount = lamportsToNumberDecimal(totalSupply, decimals);\n const mintPrice = priceByMint[mintAddress.toString()] ?? 0;\n const totalValue = totalAmount.mul(mintPrice);\n const rewardPerTimeUnitSecond = getRewardPerTimeUnitSecond(rewardInfo);\n const rewardsInYear = rewardPerTimeUnitSecond.mul(60 * 60 * 24 * 365);\n const rewardTokenPrice = priceByMint[rewardInfo.token.mint.toString()] ?? 0;\n const rewardsInYearValue = rewardsInYear.mul(rewardTokenPrice);\n const apr = rewardsInYearValue.div(totalValue);\n return { apr, apy: aprToApy(apr, 1) };\n}\n\nfunction aprToApy(apr: Decimal, compoundPeriods: number) {\n // if periods = 365 => daily compound\n // periods = 1 => yearly compound\n // (1 + apr / periods) ** periods - 1;\n return new Decimal(1)\n .add(apr.div(compoundPeriods))\n .pow(compoundPeriods)\n .sub(1);\n}\n\nfunction lamportsToNumberDecimal(\n amount: Decimal.Value,\n decimals: number\n): Decimal {\n const factor = 10 ** decimals;\n return new Decimal(amount).div(factor);\n}\n","import { FarmStateJSON, FarmStateRaw } from \"../../types\";\n\nexport function farmRawToDto(farmRaw: FarmStateRaw): FarmStateJSON {\n return {\n farmAdmin: farmRaw.farmAdmin.toBase58(),\n globalConfig: farmRaw.globalConfig.toBase58(),\n token: {\n mint: farmRaw.token.mint.toBase58(),\n decimals: farmRaw.token.decimals.toString(),\n tokenProgram: farmRaw.token.tokenProgram.toBase58(),\n padding: farmRaw.token.padding.map((p) => p.toString()),\n },\n rewardInfos: farmRaw.rewardInfos.map((item) => ({\n token: {\n mint: item.token.mint.toBase58(),\n decimals: item.token.decimals.toString(),\n tokenProgram: item.token.tokenProgram.toBase58(),\n padding: item.token.padding.map((p) => p.toString()),\n },\n rewardsVault: item.rewardsVault.toBase58(),\n rewardsAvailable: item.rewardsAvailable.toString(),\n rewardScheduleCurve: {\n points: item.rewardScheduleCurve.points.map((p) => ({\n tsStart: p.tsStart.toString(),\n rewardPerTimeUnit: p.rewardPerTimeUnit.toString(),\n })),\n },\n minClaimDurationSeconds: item.minClaimDurationSeconds.toString(),\n lastIssuanceTs: item.lastIssuanceTs.toString(),\n rewardsIssuedUnclaimed: item.rewardsIssuedUnclaimed.toString(),\n rewardsIssuedCumulative: item.rewardsIssuedCumulative.toString(),\n rewardPerShareScaled: item.rewardPerShareScaled.toString(),\n placeholder0: item.placeholder0.toString(),\n rewardType: item.rewardType,\n rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,\n padding0: item.padding0,\n padding1: item.padding1.map((p) => p.toString()),\n })),\n numRewardTokens: farmRaw.numRewardTokens.toString(),\n numUsers: farmRaw.numUsers.toString(),\n totalStakedAmount: farmRaw.totalStakedAmount.toString(),\n farmVault: farmRaw.farmVault.toBase58(),\n farmVaultsAuthority: farmRaw.farmVaultsAuthority.toBase58(),\n farmVaultsAuthorityBump: farmRaw.farmVaultsAuthorityBump.toString(),\n delegateAuthority: farmRaw.delegateAuthority.toBase58(),\n timeUnit: farmRaw.timeUnit,\n isFarmFrozen: farmRaw.isFarmFrozen,\n isFarmDelegated: farmRaw.isFarmDelegated,\n padding0: farmRaw.padding0,\n withdrawAuthority: farmRaw.withdrawAuthority.toBase58(),\n depositWarmupPeriod: farmRaw.depositWarmupPeriod,\n withdrawalCooldownPeriod: farmRaw.withdrawalCooldownPeriod,\n totalActiveStakeScaled: farmRaw.totalActiveStakeScaled.toString(),\n totalPendingStakeScaled: farmRaw.totalPendingStakeScaled.toString(),\n totalPendingAmount: farmRaw.totalPendingAmount.toString(),\n slashedAmountCurrent: farmRaw.slashedAmountCurrent.toString(),\n slashedAmountCumulative: farmRaw.slashedAmountCumulative.toString(),\n slashedAmountSpillAddress: farmRaw.slashedAmountSpillAddress.toBase58(),\n lockingMode: farmRaw.lockingMode.toString(),\n lockingStartTimestamp: farmRaw.lockingStartTimestamp.toString(),\n lockingDuration: farmRaw.lockingDuration.toString(),\n lockingEarlyWithdrawalPenaltyBps:\n farmRaw.lockingEarlyWithdrawalPenaltyBps.toString(),\n depositCapAmount: farmRaw.depositCapAmount.toString(),\n scopePrices: farmRaw.scopePrices.toBase58(),\n scopeOraclePriceId: farmRaw.scopeOraclePriceId.toString(),\n scopeOracleMaxAge: farmRaw.scopeOracleMaxAge.toString(),\n pendingFarmAdmin: farmRaw.pendingFarmAdmin.toBase58(),\n strategyId: farmRaw.strategyId.toBase58(),\n delegatedRpsAdmin: farmRaw.delegatedRpsAdmin.toBase58(),\n vaultId: farmRaw.vaultId.toBase58(),\n secondDelegatedAuthority: farmRaw.secondDelegatedAuthority.toBase58(),\n padding: farmRaw.padding.map((item) => item.toString()),\n };\n}\n","import { struct, publicKey, u64, array, u8, u128, u32 } from \"@coral-xyz/borsh\";\n\nimport { FarmStateRaw } from \"../../types/farm/raw-farm.types\";\nimport { FarmStateJSON } from \"../../types/farm/dto-farm.types\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nconst farmDiscriminator = Buffer.from([198, 102, 216, 74, 63, 66, 163, 190]);\n\nconst farmLayout = struct<FarmStateRaw>([\n publicKey(\"farmAdmin\"),\n publicKey(\"globalConfig\"),\n struct(\n [\n publicKey(\"mint\"),\n u64(\"decimals\"),\n publicKey(\"tokenProgram\"),\n array(u64(), 6, \"padding\"),\n ],\n \"token\"\n ),\n array(\n struct([\n struct(\n [\n publicKey(\"mint\"),\n u64(\"decimals\"),\n publicKey(\"tokenProgram\"),\n array(u64(), 6, \"padding\"),\n ],\n \"token\"\n ),\n publicKey(\"rewardsVault\"),\n u64(\"rewardsAvailable\"),\n struct(\n [\n array(\n struct([u64(\"tsStart\"), u64(\"rewardPerTimeUnit\")]),\n 20,\n \"points\"\n ),\n ],\n \"rewardScheduleCurve\"\n ),\n u64(\"minClaimDurationSeconds\"),\n u64(\"lastIssuanceTs\"),\n u64(\"rewardsIssuedUnclaimed\"),\n u64(\"rewardsIssuedCumulative\"),\n u128(\"rewardPerShareScaled\"),\n u64(\"placeholder0\"),\n u8(\"rewardType\"),\n u8(\"rewardsPerSecondDecimals\"),\n array(u8(), 6, \"padding0\"),\n array(u64(), 20, \"padding1\"),\n ]),\n 10,\n \"rewardInfos\"\n ),\n u64(\"numRewardTokens\"),\n u64(\"numUsers\"),\n u64(\"totalStakedAmount\"),\n publicKey(\"farmVault\"),\n publicKey(\"farmVaultsAuthority\"),\n u64(\"farmVaultsAuthorityBump\"),\n publicKey(\"delegateAuthority\"),\n u8(\"timeUnit\"),\n u8(\"isFarmFrozen\"),\n u8(\"isFarmDelegated\"),\n array(u8(), 5, \"padding0\"),\n publicKey(\"withdrawAuthority\"),\n u32(\"depositWarmupPeriod\"),\n u32(\"withdrawalCooldownPeriod\"),\n u128(\"totalActiveStakeScaled\"),\n u128(\"totalPendingStakeScaled\"),\n u64(\"totalPendingAmount\"),\n u64(\"slashedAmountCurrent\"),\n u64(\"slashedAmountCumulative\"),\n publicKey(\"slashedAmountSpillAddress\"),\n u64(\"lockingMode\"),\n u64(\"lockingStartTimestamp\"),\n u64(\"lockingDuration\"),\n u64(\"lockingEarlyWithdrawalPenaltyBps\"),\n u64(\"depositCapAmount\"),\n publicKey(\"scopePrices\"),\n u64(\"scopeOraclePriceId\"),\n u64(\"scopeOracleMaxAge\"),\n publicKey(\"pendingFarmAdmin\"),\n publicKey(\"strategyId\"),\n publicKey(\"delegatedRpsAdmin\"),\n publicKey(\"vaultId\"),\n publicKey(\"secondDelegatedAuthority\"),\n array(u64(), 74, \"padding\"),\n]);\n\nexport function decodeFarmDataRaw(data: Buffer): FarmStateRaw {\n if (!data.slice(0, 8).equals(farmDiscriminator)) {\n throw new Error(\"invalid account discriminator\");\n }\n\n const dec = farmLayout.decode(data.slice(8));\n return dec;\n}\n\nexport function dtoToFarmRaw(dto: FarmStateJSON): FarmStateRaw {\n return {\n farmAdmin: new PublicKey(dto.farmAdmin),\n globalConfig: new PublicKey(dto.globalConfig),\n token: {\n mint: new PublicKey(dto.token.mint),\n decimals: new BN(dto.token.decimals),\n tokenProgram: new PublicKey(dto.token.tokenProgram),\n padding: dto.token.padding.map((item) => new BN(item)),\n },\n rewardInfos: dto.rewardInfos.map((item) => ({\n token: {\n mint: new PublicKey(item.token.mint),\n decimals: new BN(item.token.decimals),\n tokenProgram: new PublicKey(item.token.tokenProgram),\n padding: item.token.padding.map((p) => new BN(p)),\n },\n rewardsVault: new PublicKey(item.rewardsVault),\n rewardsAvailable: new BN(item.rewardsAvailable),\n rewardScheduleCurve: {\n points: item.rewardScheduleCurve.points.map((p) => ({\n tsStart: new BN(p.tsStart),\n rewardPerTimeUnit: new BN(p.rewardPerTimeUnit),\n })),\n },\n minClaimDurationSeconds: new BN(item.minClaimDurationSeconds),\n lastIssuanceTs: new BN(item.lastIssuanceTs),\n rewardsIssuedUnclaimed: new BN(item.rewardsIssuedUnclaimed),\n rewardsIssuedCumulative: new BN(item.rewardsIssuedCumulative),\n rewardPerShareScaled: new BN(item.rewardPerShareScaled),\n placeholder0: new BN(item.placeholder0),\n rewardType: item.rewardType,\n rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,\n padding0: item.padding0,\n padding1: item.padding1.map((p) => new BN(p)),\n })),\n numRewardTokens: new BN(dto.numRewardTokens),\n numUsers: new BN(dto.numUsers),\n totalStakedAmount: new BN(dto.totalStakedAmount),\n farmVault: new PublicKey(dto.farmVault),\n farmVaultsAuthority: new PublicKey(dto.farmVaultsAuthority),\n farmVaultsAuthorityBump: new BN(dto.farmVaultsAuthorityBump),\n delegateAuthority: new PublicKey(dto.delegateAuthority),\n timeUnit: dto.timeUnit,\n isFarmFrozen: dto.isFarmFrozen,\n isFarmDelegated: dto.isFarmDelegated,\n padding0: dto.padding0,\n withdrawAuthority: new PublicKey(dto.withdrawAuthority),\n depositWarmupPeriod: dto.depositWarmupPeriod,\n withdrawalCooldownPeriod: dto.withdrawalCooldownPeriod,\n totalActiveStakeScaled: new BN(dto.totalActiveStakeScaled),\n totalPendingStakeScaled: new BN(dto.totalPendingStakeScaled),\n totalPendingAmount: new BN(dto.totalPendingAmount),\n slashedAmountCurrent: new BN(dto.slashedAmountCurrent),\n slashedAmountCumulative: new BN(dto.slashedAmountCumulative),\n slashedAmountSpillAddress: new PublicKey(dto.slashedAmountSpillAddress),\n lockingMode: new BN(dto.lockingMode),\n lockingStartTimestamp: new BN(dto.lockingStartTimestamp),\n lockingDuration: new BN(dto.lockingDuration),\n lockingEarlyWithdrawalPenaltyBps: new BN(\n dto.lockingEarlyWithdrawalPenaltyBps\n ),\n depositCapAmount: new BN(dto.depositCapAmount),\n scopePrices: new PublicKey(dto.scopePrices),\n scopeOraclePriceId: new BN(dto.scopeOraclePriceId),\n scopeOracleMaxAge: new BN(dto.scopeOracleMaxAge),\n pendingFarmAdmin: new PublicKey(dto.pendingFarmAdmin),\n strategyId: new PublicKey(dto.strategyId),\n delegatedRpsAdmin: new PublicKey(dto.delegatedRpsAdmin),\n vaultId: new PublicKey(dto.vaultId),\n secondDelegatedAuthority: new PublicKey(dto.secondDelegatedAuthority),\n padding: dto.padding.map((item) => new BN(item)),\n };\n}\n"]}