@shipload/sdk 2.0.0-rc6 → 2.0.0-rc7

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.
package/lib/shipload.js CHANGED
@@ -213,10 +213,31 @@ var platform = /*#__PURE__*/Object.freeze({
213
213
  Contract: Contract$1
214
214
  });
215
215
 
216
- const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhSB2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgZjYW5jZWwAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAVjb3VudAZ1aW50NjQOY2FuY2VsX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUPY2FuY2VsbGVkX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KY2FyZ29faXRlbQADB2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgRzZWVkB3VpbnQ2ND8JY2FyZ29fcm93AAUCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQLZW50aXR5X25hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAEA1zaGlwX2h1bGxtYXNzBnVpbnQzMg1zaGlwX2NhcGFjaXR5BnVpbnQzMgtzaGlwX2VuZXJneQZ1aW50MTYGc2hpcF96BnVpbnQxNgxzaGlwX2VuZ2luZXMObW92ZW1lbnRfc3RhdHMOc2hpcF9nZW5lcmF0b3IMZW5lcmd5X3N0YXRzDHNoaXBfbG9hZGVycwxsb2FkZXJfc3RhdHMOc2hpcF9leHRyYWN0b3IPZXh0cmFjdG9yX3N0YXRzCXNoaXBfd2FycAp3YXJwX3N0YXRzDHNoaXBfY3JhZnRlcg1jcmFmdGVyX3N0YXRzEndhcmVob3VzZV9jYXBhY2l0eQZ1aW50MzILd2FyZWhvdXNlX3oGdWludDE2EXdhcmVob3VzZV9sb2FkZXJzDGxvYWRlcl9zdGF0cxJjb250YWluZXJfaHVsbG1hc3MGdWludDMyEmNvbnRhaW5lcl9jYXBhY2l0eQZ1aW50MzILY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABcEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GZW5lcmd5B3VpbnQxNj8IaHVsbG1hc3MHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhjYXBhY2l0eQd1aW50MzI/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPwplbnRpdHlfcmVmAAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10HZXh0cmFjdAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMg9leHRyYWN0b3Jfc3RhdHMABQRyYXRlBnVpbnQxNgVkcmFpbgZ1aW50MTYKZWZmaWNpZW5jeQZ1aW50MTYFZGVwdGgGdWludDE2BWRyaWxsBnVpbnQxNgtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdCWdldGNvbmZpZwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIZ2V0aXRlbXMAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0CWdldG5lYXJieQADC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCWdldHBsYXllcgABB2FjY291bnQEbmFtZQpnZXRzdGFydGVyAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAADDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMLZXBvY2hfcHJvcHMObG9jYXRpb25fZXBvY2gEc2l6ZQZ1aW50MTYObG9jYXRpb25fZXBvY2gAAwZhY3RpdmUEYm9vbAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OA1sb2NhdGlvbl9pbmZvAAIGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50C3BsYXllcl9pbmZvAAYFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnNoaXBfY291bnQGdWludDY0D3dhcmVob3VzZV9jb3VudAZ1aW50NjQPY29udGFpbmVyX2NvdW50BnVpbnQ2NApwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0C3Jlc2VydmVfcm93AAICaWQGdWludDY0CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cADwJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwZ1aW50MzIIY2FwYWNpdHkGdWludDMyBmVuZXJneQZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzDm1vdmVtZW50X3N0YXRzCWdlbmVyYXRvcgxlbmVyZ3lfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMJZXh0cmFjdG9yEGV4dHJhY3Rvcl9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwdjcmFmdGVyDmNyYWZ0ZXJfc3RhdHM/CHNjaGVkdWxlCXNjaGVkdWxlPwpzcGF3bmNhcmdvAAMJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc3RhcnRlcl9pbmZvAAEEc2hpcAtlbnRpdHlfaW5mbwlzdGF0ZV9yb3cABgdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNhbHQGdWludDY0BXNoaXBzBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABAdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzIEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MTY/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDE2Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10IdHJhbnNmZXIABgtzb3VyY2VfdHlwZQRuYW1lCXNvdXJjZV9pZAZ1aW50NjQJZGVzdF90eXBlBG5hbWUHZGVzdF9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBnRyYXZlbAAFC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAEAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EXN0YXJ0ZXJfaW5mb190eXBlDHN0YXJ0ZXJfaW5mbxBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnDXdhcmVob3VzZV9yb3cACAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMgdsb2FkZXJzDGxvYWRlcl9zdGF0cwhzY2hlZHVsZQlzY2hlZHVsZT8Ed2FycAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAAx3aXBlc2VxdWVuY2UAACUAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAESFpkEGY2FuY2VsxwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuCgotLS0AAKgb32lURAljbGVhbnJzdnAAAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAYDQytyZFCWNvbmZpZ2xvZwAAAAAAgLzMRQVjcmFmdADgs8tTqWzURQxjcmVhdGVlbnRpdHkAAAAAAHgaq0oGZGVwbG95AAAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAACAjc3NXB2V4dHJhY3ShAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBleHRyYWN0CnN1bW1hcnk6ICdFeHRyYWN0IHJlc291cmNlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXh0cmFjdCByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGV4dHJhY3RhYmxlIGxvY2F0aW9uIHR5cGVzLiBTY2hlZHVsZXMgYW4gZXh0cmFjdGlvbiB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBleHRyYWN0b3Igc3RhdHMgYW5kIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIGNvbXBvc2l0aW9uLgAAYG5NirJiCWdldGNvbmZpZwAAsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4AAABYquyyYghnZXRpdGVtc5oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1zCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGl0ZW1zIGluIHRoZSBnYW1lIGluY2x1ZGluZyB0aGVpciBpZCwgYmFzZSBwcmljZSwgYW5kIG1hc3MuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AALjKm1izYglnZXRwbGF5ZXL9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwbGF5ZXIKc3VtbWFyeTogJ0dldCBwbGF5ZXIgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGF5ZXIgaW5jbHVkaW5nIGJhbGFuY2UsIGRlYnQsIG5ldHdvcnRoLCBlbnRpdHkgY291bnRzLCBhbmQgcHJpY2luZyBmb3IgbmV4dCBwdXJjaGFzZXMuIFJldHVybnMgaXNfcGxheWVyPWZhbHNlIGlmIHRoZSBhY2NvdW50IGhhcyBub3Qgam9pbmVkIHRoZSBnYW1lLgDAVfmajLNiCmdldHN0YXJ0ZXKFAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdGFydGVyCnN1bW1hcnk6ICdHZXQgc3RhcnRlciBzaGlwIGFuZCBiYWxhbmNlIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBzdGFydGVyIHNoaXAgc3RhdHMgYW5kIGluaXRpYWwgYmFsYW5jZSBhIG5ldyBwbGF5ZXIgd291bGQgcmVjZWl2ZSB1cG9uIGpvaW5pbmcuIFVzZWQgZm9yIG9uYm9hcmRpbmcgVUkgdG8gZGlzcGxheSB3aGF0IHBsYXllcnMgd2lsbCBnZXQgYmVmb3JlIHRoZXkgcmVnaXN0ZXIuAIDU2dyMs2IKZ2V0c3RyYXR1bQCAlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4KCi0tLQAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7JAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQKCi0tLQAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdl0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4KCi0tLQAAAEDtSLG6B3Jlc29sdmXVAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuCgotLS0AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAZdegyU3FCnNwYXduY2FyZ28AAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbMsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBpdGVtcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAUK/hBHdhcnAAAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0LAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAC4ajqTJ0UDaTY0AAANY29udGFpbmVyX3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAABA7auwugNpNjQAAAtyZXNlcnZlX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAXAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAAGBuTYqyYgtnYW1lX2NvbmZpZwCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwAAAFiq7LJiCml0ZW1zX2luZm8AJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAA8OcaNbNiC25lYXJieV9pbmZvAAC4yptYs2ILcGxheWVyX2luZm8AwFX5moyzYgxzdGFydGVyX2luZm8AgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAFctPM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
216
+ const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhWCWFkZG1vZHVsZQAFC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgPbW9kdWxlX2NhcmdvX2lkBnVpbnQ2NA90YXJnZXRfY2FyZ29faWQGdWludDY0B2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgVibGVuZAADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BmlucHV0cwxjYXJnb19pdGVtW10GY2FuY2VsAAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIEc2VlZAd1aW50NjQ/B21vZHVsZXMObW9kdWxlX2VudHJ5W10JY2FyZ29fcm93AAYCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10KY2FyZ29fc2VlZAACB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQLZW50aXR5X25hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMABhJ3YXJlaG91c2VfY2FwYWNpdHkGdWludDMyC3dhcmVob3VzZV96BnVpbnQxNhF3YXJlaG91c2VfbG9hZGVycwxsb2FkZXJfc3RhdHMSY29udGFpbmVyX2h1bGxtYXNzBnVpbnQzMhJjb250YWluZXJfY2FwYWNpdHkGdWludDMyC2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAXBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb19pdGVtW10HbG9hZGVycw1sb2FkZXJfc3RhdHM/BmVuZXJneQd1aW50MTY/CGh1bGxtYXNzB3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8IY2FwYWNpdHkHdWludDMyPwlleHRyYWN0b3IQZXh0cmFjdG9yX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8HaXNfaWRsZQRib29sDGN1cnJlbnRfdGFzawV0YXNrPxRjdXJyZW50X3Rhc2tfZWxhcHNlZAZ1aW50MzIWY3VycmVudF90YXNrX3JlbWFpbmluZwZ1aW50MzINcGVuZGluZ190YXNrcwZ0YXNrW10HaWRsZV9hdAt0aW1lX3BvaW50PwhzY2hlZHVsZQlzY2hlZHVsZT8KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdB2V4dHJhY3QABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIPZXh0cmFjdG9yX3N0YXRzAAQEcmF0ZQZ1aW50MTYFZHJhaW4GdWludDE2BWRlcHRoBnVpbnQxNgVkcmlsbAZ1aW50MTYLZ2FtZV9jb25maWcAAwd2ZXJzaW9uBnVpbnQzMghkZWZhdWx0cw9lbnRpdHlfZGVmYXVsdHMFaXRlbXMKaXRlbV9kZWZbXQlnZXRjb25maWcAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CGdldGl0ZW1zAAALZ2V0bG9jYXRpb24AAgF4BWludDY0AXkFaW50NjQKZ2V0bG9jZGF0YQACAXgFaW50NjQBeQVpbnQ2NAlnZXRuZWFyYnkAAwtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAADDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMLZXBvY2hfcHJvcHMObG9jYXRpb25fZXBvY2gEc2l6ZQZ1aW50MTYObG9jYXRpb25fZXBvY2gAAwZhY3RpdmUEYm9vbAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OA1sb2NhdGlvbl9pbmZvAAIGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgMbW9kdWxlX2VudHJ5AAIEdHlwZQV1aW50OAlpbnN0YWxsZWQLY2FyZ29fc2VlZD8ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50C3BsYXllcl9pbmZvAAYFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnNoaXBfY291bnQGdWludDY0D3dhcmVob3VzZV9jb3VudAZ1aW50NjQPY29udGFpbmVyX2NvdW50BnVpbnQ2NApwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0C3Jlc2VydmVfcm93AAICaWQGdWludDY0CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYIcm1tb2R1bGUABAtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4D3RhcmdldF9jYXJnb19pZAZ1aW50NjQEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cAEAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8GZW5lcmd5B3VpbnQxNj8JY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8JZXh0cmFjdG9yEGV4dHJhY3Rvcl9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwdjcmFmdGVyDmNyYWZ0ZXJfc3RhdHM/B21vZHVsZXMObW9kdWxlX2VudHJ5W10Ic2NoZWR1bGUJc2NoZWR1bGU/CnNwYXduY2FyZ28AAwllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAtzcGF3bnNlZWRlZAAECWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAEB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgR0YXNrAAgEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdDGVudGl0eXRhcmdldAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQxNj8KdGFza19ldmVudAAJCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAV1aW50OAR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MTY/DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXQh0cmFuc2ZlcgAGC3NvdXJjZV90eXBlBG5hbWUJc291cmNlX2lkBnVpbnQ2NAlkZXN0X3R5cGUEbmFtZQdkZXN0X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGdHJhdmVsAAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wJdHlwZXNfcm93AAMCaWQGdWludDY0E2VudGl0eV9zdW1tYXJ5X3R5cGUOZW50aXR5X3N1bW1hcnkQZ2FtZV9jb25maWdfdHlwZQtnYW1lX2NvbmZpZw13YXJlaG91c2Vfcm93AAgCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIY2FwYWNpdHkGdWludDMyCWNhcmdvbWFzcwZ1aW50MzIHbG9hZGVycwxsb2FkZXJfc3RhdHMIc2NoZWR1bGUJc2NoZWR1bGU/BHdhcnAABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAAMd2lwZXNlcXVlbmNlAAAoAABQUScqUzIJYWRkbW9kdWxlAAAAAEChaXYyB2FkdmFuY2XTAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZHZhbmNlCnN1bW1hcnk6ICdBZHZhbmNlIHR1cm4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkdmFuY2UgdGhlIGdhbWUgdG8gdGhlIG5leHQgdHVybi4AAAAAgDRVPAVibGVuZAAAAAAARIWmQQZjYW5jZWzHAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC4KCi0tLQAAqBvfaVRECWNsZWFucnN2cAAAgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl08QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgoKLS0tAABgNDK3JkUJY29uZmlnbG9nAAAAAACAvMxFBWNyYWZ0AOCzy1OpbNRFDGNyZWF0ZWVudGl0eQAAAAAAeBqrSgZkZXBsb3kAAAAAAKh4zFQGZW5hYmxl4gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLgoKLS0tAAAAICNzc1cHZXh0cmFjdKEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGV4dHJhY3QKc3VtbWFyeTogJ0V4dHJhY3QgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFeHRyYWN0IHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZXh0cmFjdGFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhbiBleHRyYWN0aW9uIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGV4dHJhY3RvciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnAACwctnlqbJiC2dldGVudGl0aWVzpAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXRpZXMKc3VtbWFyeTogJ0dldCBhbGwgZW50aXRpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGZ1bGwgZW50aXR5IGluZm8gZm9yIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllci4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAADw2eWpsmIJZ2V0ZW50aXR5ogItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXR5CnN1bW1hcnk6ICdHZXQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIGVudGl0eSBpbmNsdWRpbmcgaWRlbnRpdHksIGNhcmdvLCBzY2hlZHVsZSBzdGF0ZSwgYW5kIHR5cGUtc3BlY2lmaWMgZmllbGRzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AJnXZIBqzYgtnZXRsb2NhdGlvbuICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGxvY2F0aW9uCnN1bW1hcnk6ICdHZXQgbG9jYXRpb24gaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBsb2NhdGlvbiBpbmNsdWRpbmcgd2hldGhlciBhIHN5c3RlbSBleGlzdHMsIGFuZCBmb3IgZWFjaCBpdGVtOiBwcmljZSwgc3VwcGx5LCByYXJpdHkgbXVsdGlwbGllciwgYW5kIGxvY2F0aW9uIG11bHRpcGxpZXIuAIDJJiEas2IKZ2V0bG9jZGF0Yf4CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGxvY2RhdGEKc3VtbWFyeTogJ0dldCBkZXJpdmVkIGxvY2F0aW9uIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgZGVyaXZlZCBsb2NhdGlvbiBkYXRhIGluY2x1ZGluZyBzdGF0aWMgcHJvcGVydGllcyAodHlwZSwgZGlmZmljdWx0eSwgc2VlZHMpIGZyb20gdGhlIGdhbWUgc2VlZCBhbmQgZXBvY2gtc3BlY2lmaWMgcHJvcGVydGllcyAoYWN0aXZlLCBzZWVkcykgZnJvbSB0aGUgY3VycmVudCBlcG9jaCBzZWVkLgAA8OcaNbNiCWdldG5lYXJied4DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5lYXJieQpzdW1tYXJ5OiAnR2V0IG5lYXJieSByZWFjaGFibGUgc3lzdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBuZWFyYnkgc3lzdGVtcyByZWFjaGFibGUgYnkgYW4gZW50aXR5IGZyb20gaXRzIHByb2plY3RlZCBsb2NhdGlvbi4gUmV0dXJucyBjdXJyZW50IHN0YXRlICh3aXRoIGNvbXBsZXRlZCB0YXNrcyByZXNvbHZlZCksIHByb2plY3RlZCBzdGF0ZSAoYWZ0ZXIgYWxsIHNjaGVkdWxlZCB0YXNrcyksIGFuZCBhIGxpc3Qgb2YgcmVhY2hhYmxlIHN5c3RlbXMgd2l0aCBkaXN0YW5jZSwgZW5lcmd5IGNvc3QsIGZsaWdodCB0aW1lLCBhbmQgbWFya2V0IGluZm9ybWF0aW9uLgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuAIDU2dyMs2IKZ2V0c3RyYXR1bQCAlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4KCi0tLQAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7JAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQKCi0tLQAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdl0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4KCi0tLQAAAEDtSLG6B3Jlc29sdmXVAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuCgotLS0AAAAq6kSlvAhybW1vZHVsZQAAAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAZdegyU3FCnNwYXduY2FyZ28AAJJKSuHJTcULc3Bhd25zZWVkZWQAAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbMsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBpdGVtcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAUK/hBHdhcnAAAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0LAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAC4ajqTJ0UDaTY0AAANY29udGFpbmVyX3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAABA7auwugNpNjQAAAtyZXNlcnZlX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAWAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAAGBuTYqyYgtnYW1lX2NvbmZpZwCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwAAAFiq7LJiCml0ZW1zX2luZm8AJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAA8OcaNbNiC25lYXJieV9pbmZvAAC4yptYs2ILcGxheWVyX2luZm8AgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAFctPM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
217
217
  const abi = antelope.ABI.from(abiBlob);
218
218
  var Types;
219
219
  (function (Types) {
220
+ let addmodule = class addmodule extends antelope.Struct {
221
+ };
222
+ tslib.__decorate([
223
+ antelope.Struct.field(antelope.Name)
224
+ ], addmodule.prototype, "entity_type", void 0);
225
+ tslib.__decorate([
226
+ antelope.Struct.field(antelope.UInt64)
227
+ ], addmodule.prototype, "entity_id", void 0);
228
+ tslib.__decorate([
229
+ antelope.Struct.field(antelope.UInt8)
230
+ ], addmodule.prototype, "module_index", void 0);
231
+ tslib.__decorate([
232
+ antelope.Struct.field(antelope.UInt64)
233
+ ], addmodule.prototype, "module_cargo_id", void 0);
234
+ tslib.__decorate([
235
+ antelope.Struct.field(antelope.UInt64)
236
+ ], addmodule.prototype, "target_cargo_id", void 0);
237
+ addmodule = tslib.__decorate([
238
+ antelope.Struct.type('addmodule')
239
+ ], addmodule);
240
+ Types.addmodule = addmodule;
220
241
  let advance = class advance extends antelope.Struct {
221
242
  };
222
243
  tslib.__decorate([
@@ -229,6 +250,63 @@ var Types;
229
250
  antelope.Struct.type('advance')
230
251
  ], advance);
231
252
  Types.advance = advance;
253
+ let cargo_seed = class cargo_seed extends antelope.Struct {
254
+ };
255
+ tslib.__decorate([
256
+ antelope.Struct.field(antelope.UInt16)
257
+ ], cargo_seed.prototype, "item_id", void 0);
258
+ tslib.__decorate([
259
+ antelope.Struct.field(antelope.UInt64)
260
+ ], cargo_seed.prototype, "seed", void 0);
261
+ cargo_seed = tslib.__decorate([
262
+ antelope.Struct.type('cargo_seed')
263
+ ], cargo_seed);
264
+ Types.cargo_seed = cargo_seed;
265
+ let module_entry = class module_entry extends antelope.Struct {
266
+ };
267
+ tslib.__decorate([
268
+ antelope.Struct.field(antelope.UInt8)
269
+ ], module_entry.prototype, "type", void 0);
270
+ tslib.__decorate([
271
+ antelope.Struct.field(cargo_seed, { optional: true })
272
+ ], module_entry.prototype, "installed", void 0);
273
+ module_entry = tslib.__decorate([
274
+ antelope.Struct.type('module_entry')
275
+ ], module_entry);
276
+ Types.module_entry = module_entry;
277
+ let cargo_item = class cargo_item extends antelope.Struct {
278
+ };
279
+ tslib.__decorate([
280
+ antelope.Struct.field(antelope.UInt16)
281
+ ], cargo_item.prototype, "item_id", void 0);
282
+ tslib.__decorate([
283
+ antelope.Struct.field(antelope.UInt32)
284
+ ], cargo_item.prototype, "quantity", void 0);
285
+ tslib.__decorate([
286
+ antelope.Struct.field(antelope.UInt64, { optional: true })
287
+ ], cargo_item.prototype, "seed", void 0);
288
+ tslib.__decorate([
289
+ antelope.Struct.field(module_entry, { array: true })
290
+ ], cargo_item.prototype, "modules", void 0);
291
+ cargo_item = tslib.__decorate([
292
+ antelope.Struct.type('cargo_item')
293
+ ], cargo_item);
294
+ Types.cargo_item = cargo_item;
295
+ let blend = class blend extends antelope.Struct {
296
+ };
297
+ tslib.__decorate([
298
+ antelope.Struct.field(antelope.Name)
299
+ ], blend.prototype, "entity_type", void 0);
300
+ tslib.__decorate([
301
+ antelope.Struct.field(antelope.UInt64)
302
+ ], blend.prototype, "id", void 0);
303
+ tslib.__decorate([
304
+ antelope.Struct.field(cargo_item, { array: true })
305
+ ], blend.prototype, "inputs", void 0);
306
+ blend = tslib.__decorate([
307
+ antelope.Struct.type('blend')
308
+ ], blend);
309
+ Types.blend = blend;
232
310
  let cancel = class cancel extends antelope.Struct {
233
311
  };
234
312
  tslib.__decorate([
@@ -280,21 +358,6 @@ var Types;
280
358
  antelope.Struct.type('cancel_results')
281
359
  ], cancel_results);
282
360
  Types.cancel_results = cancel_results;
283
- let cargo_item = class cargo_item extends antelope.Struct {
284
- };
285
- tslib.__decorate([
286
- antelope.Struct.field(antelope.UInt16)
287
- ], cargo_item.prototype, "item_id", void 0);
288
- tslib.__decorate([
289
- antelope.Struct.field(antelope.UInt32)
290
- ], cargo_item.prototype, "quantity", void 0);
291
- tslib.__decorate([
292
- antelope.Struct.field(antelope.UInt64, { optional: true })
293
- ], cargo_item.prototype, "seed", void 0);
294
- cargo_item = tslib.__decorate([
295
- antelope.Struct.type('cargo_item')
296
- ], cargo_item);
297
- Types.cargo_item = cargo_item;
298
361
  let cargo_row = class cargo_row extends antelope.Struct {
299
362
  };
300
363
  tslib.__decorate([
@@ -312,6 +375,9 @@ var Types;
312
375
  tslib.__decorate([
313
376
  antelope.Struct.field(antelope.UInt64)
314
377
  ], cargo_row.prototype, "seed", void 0);
378
+ tslib.__decorate([
379
+ antelope.Struct.field(module_entry, { array: true })
380
+ ], cargo_row.prototype, "modules", void 0);
315
381
  cargo_row = tslib.__decorate([
316
382
  antelope.Struct.type('cargo_row')
317
383
  ], cargo_row);
@@ -352,30 +418,6 @@ var Types;
352
418
  antelope.Struct.type('commit')
353
419
  ], commit);
354
420
  Types.commit = commit;
355
- let movement_stats = class movement_stats extends antelope.Struct {
356
- };
357
- tslib.__decorate([
358
- antelope.Struct.field(antelope.UInt32)
359
- ], movement_stats.prototype, "thrust", void 0);
360
- tslib.__decorate([
361
- antelope.Struct.field(antelope.UInt16)
362
- ], movement_stats.prototype, "drain", void 0);
363
- movement_stats = tslib.__decorate([
364
- antelope.Struct.type('movement_stats')
365
- ], movement_stats);
366
- Types.movement_stats = movement_stats;
367
- let energy_stats = class energy_stats extends antelope.Struct {
368
- };
369
- tslib.__decorate([
370
- antelope.Struct.field(antelope.UInt16)
371
- ], energy_stats.prototype, "capacity", void 0);
372
- tslib.__decorate([
373
- antelope.Struct.field(antelope.UInt16)
374
- ], energy_stats.prototype, "recharge", void 0);
375
- energy_stats = tslib.__decorate([
376
- antelope.Struct.type('energy_stats')
377
- ], energy_stats);
378
- Types.energy_stats = energy_stats;
379
421
  let loader_stats = class loader_stats extends antelope.Struct {
380
422
  };
381
423
  tslib.__decorate([
@@ -391,80 +433,8 @@ var Types;
391
433
  antelope.Struct.type('loader_stats')
392
434
  ], loader_stats);
393
435
  Types.loader_stats = loader_stats;
394
- let extractor_stats = class extractor_stats extends antelope.Struct {
395
- };
396
- tslib.__decorate([
397
- antelope.Struct.field(antelope.UInt16)
398
- ], extractor_stats.prototype, "rate", void 0);
399
- tslib.__decorate([
400
- antelope.Struct.field(antelope.UInt16)
401
- ], extractor_stats.prototype, "drain", void 0);
402
- tslib.__decorate([
403
- antelope.Struct.field(antelope.UInt16)
404
- ], extractor_stats.prototype, "efficiency", void 0);
405
- tslib.__decorate([
406
- antelope.Struct.field(antelope.UInt16)
407
- ], extractor_stats.prototype, "depth", void 0);
408
- tslib.__decorate([
409
- antelope.Struct.field(antelope.UInt16)
410
- ], extractor_stats.prototype, "drill", void 0);
411
- extractor_stats = tslib.__decorate([
412
- antelope.Struct.type('extractor_stats')
413
- ], extractor_stats);
414
- Types.extractor_stats = extractor_stats;
415
- let warp_stats = class warp_stats extends antelope.Struct {
416
- };
417
- tslib.__decorate([
418
- antelope.Struct.field(antelope.UInt32)
419
- ], warp_stats.prototype, "range", void 0);
420
- warp_stats = tslib.__decorate([
421
- antelope.Struct.type('warp_stats')
422
- ], warp_stats);
423
- Types.warp_stats = warp_stats;
424
- let crafter_stats = class crafter_stats extends antelope.Struct {
425
- };
426
- tslib.__decorate([
427
- antelope.Struct.field(antelope.UInt16)
428
- ], crafter_stats.prototype, "speed", void 0);
429
- tslib.__decorate([
430
- antelope.Struct.field(antelope.UInt16)
431
- ], crafter_stats.prototype, "drain", void 0);
432
- crafter_stats = tslib.__decorate([
433
- antelope.Struct.type('crafter_stats')
434
- ], crafter_stats);
435
- Types.crafter_stats = crafter_stats;
436
436
  let entity_defaults = class entity_defaults extends antelope.Struct {
437
437
  };
438
- tslib.__decorate([
439
- antelope.Struct.field(antelope.UInt32)
440
- ], entity_defaults.prototype, "ship_hullmass", void 0);
441
- tslib.__decorate([
442
- antelope.Struct.field(antelope.UInt32)
443
- ], entity_defaults.prototype, "ship_capacity", void 0);
444
- tslib.__decorate([
445
- antelope.Struct.field(antelope.UInt16)
446
- ], entity_defaults.prototype, "ship_energy", void 0);
447
- tslib.__decorate([
448
- antelope.Struct.field(antelope.UInt16)
449
- ], entity_defaults.prototype, "ship_z", void 0);
450
- tslib.__decorate([
451
- antelope.Struct.field(movement_stats)
452
- ], entity_defaults.prototype, "ship_engines", void 0);
453
- tslib.__decorate([
454
- antelope.Struct.field(energy_stats)
455
- ], entity_defaults.prototype, "ship_generator", void 0);
456
- tslib.__decorate([
457
- antelope.Struct.field(loader_stats)
458
- ], entity_defaults.prototype, "ship_loaders", void 0);
459
- tslib.__decorate([
460
- antelope.Struct.field(extractor_stats)
461
- ], entity_defaults.prototype, "ship_extractor", void 0);
462
- tslib.__decorate([
463
- antelope.Struct.field(warp_stats)
464
- ], entity_defaults.prototype, "ship_warp", void 0);
465
- tslib.__decorate([
466
- antelope.Struct.field(crafter_stats)
467
- ], entity_defaults.prototype, "ship_crafter", void 0);
468
438
  tslib.__decorate([
469
439
  antelope.Struct.field(antelope.UInt32)
470
440
  ], entity_defaults.prototype, "warehouse_capacity", void 0);
@@ -631,6 +601,18 @@ var Types;
631
601
  antelope.Struct.type('craft')
632
602
  ], craft);
633
603
  Types.craft = craft;
604
+ let crafter_stats = class crafter_stats extends antelope.Struct {
605
+ };
606
+ tslib.__decorate([
607
+ antelope.Struct.field(antelope.UInt16)
608
+ ], crafter_stats.prototype, "speed", void 0);
609
+ tslib.__decorate([
610
+ antelope.Struct.field(antelope.UInt16)
611
+ ], crafter_stats.prototype, "drain", void 0);
612
+ crafter_stats = tslib.__decorate([
613
+ antelope.Struct.type('crafter_stats')
614
+ ], crafter_stats);
615
+ Types.crafter_stats = crafter_stats;
634
616
  let createentity = class createentity extends antelope.Struct {
635
617
  };
636
618
  tslib.__decorate([
@@ -682,6 +664,18 @@ var Types;
682
664
  antelope.Struct.type('enable')
683
665
  ], enable);
684
666
  Types.enable = enable;
667
+ let energy_stats = class energy_stats extends antelope.Struct {
668
+ };
669
+ tslib.__decorate([
670
+ antelope.Struct.field(antelope.UInt16)
671
+ ], energy_stats.prototype, "capacity", void 0);
672
+ tslib.__decorate([
673
+ antelope.Struct.field(antelope.UInt16)
674
+ ], energy_stats.prototype, "recharge", void 0);
675
+ energy_stats = tslib.__decorate([
676
+ antelope.Struct.type('energy_stats')
677
+ ], energy_stats);
678
+ Types.energy_stats = energy_stats;
685
679
  let entity_current_state = class entity_current_state extends antelope.Struct {
686
680
  };
687
681
  tslib.__decorate([
@@ -694,6 +688,45 @@ var Types;
694
688
  antelope.Struct.type('entity_current_state')
695
689
  ], entity_current_state);
696
690
  Types.entity_current_state = entity_current_state;
691
+ let movement_stats = class movement_stats extends antelope.Struct {
692
+ };
693
+ tslib.__decorate([
694
+ antelope.Struct.field(antelope.UInt32)
695
+ ], movement_stats.prototype, "thrust", void 0);
696
+ tslib.__decorate([
697
+ antelope.Struct.field(antelope.UInt16)
698
+ ], movement_stats.prototype, "drain", void 0);
699
+ movement_stats = tslib.__decorate([
700
+ antelope.Struct.type('movement_stats')
701
+ ], movement_stats);
702
+ Types.movement_stats = movement_stats;
703
+ let extractor_stats = class extractor_stats extends antelope.Struct {
704
+ };
705
+ tslib.__decorate([
706
+ antelope.Struct.field(antelope.UInt16)
707
+ ], extractor_stats.prototype, "rate", void 0);
708
+ tslib.__decorate([
709
+ antelope.Struct.field(antelope.UInt16)
710
+ ], extractor_stats.prototype, "drain", void 0);
711
+ tslib.__decorate([
712
+ antelope.Struct.field(antelope.UInt16)
713
+ ], extractor_stats.prototype, "depth", void 0);
714
+ tslib.__decorate([
715
+ antelope.Struct.field(antelope.UInt16)
716
+ ], extractor_stats.prototype, "drill", void 0);
717
+ extractor_stats = tslib.__decorate([
718
+ antelope.Struct.type('extractor_stats')
719
+ ], extractor_stats);
720
+ Types.extractor_stats = extractor_stats;
721
+ let warp_stats = class warp_stats extends antelope.Struct {
722
+ };
723
+ tslib.__decorate([
724
+ antelope.Struct.field(antelope.UInt32)
725
+ ], warp_stats.prototype, "range", void 0);
726
+ warp_stats = tslib.__decorate([
727
+ antelope.Struct.type('warp_stats')
728
+ ], warp_stats);
729
+ Types.warp_stats = warp_stats;
697
730
  let entity_info = class entity_info extends antelope.Struct {
698
731
  };
699
732
  tslib.__decorate([
@@ -931,12 +964,6 @@ var Types;
931
964
  antelope.Struct.type('getplayer')
932
965
  ], getplayer);
933
966
  Types.getplayer = getplayer;
934
- let getstarter = class getstarter extends antelope.Struct {
935
- };
936
- getstarter = tslib.__decorate([
937
- antelope.Struct.type('getstarter')
938
- ], getstarter);
939
- Types.getstarter = getstarter;
940
967
  let getstratum = class getstratum extends antelope.Struct {
941
968
  };
942
969
  tslib.__decorate([
@@ -1306,6 +1333,24 @@ var Types;
1306
1333
  antelope.Struct.type('resource_stats')
1307
1334
  ], resource_stats);
1308
1335
  Types.resource_stats = resource_stats;
1336
+ let rmmodule = class rmmodule extends antelope.Struct {
1337
+ };
1338
+ tslib.__decorate([
1339
+ antelope.Struct.field(antelope.Name)
1340
+ ], rmmodule.prototype, "entity_type", void 0);
1341
+ tslib.__decorate([
1342
+ antelope.Struct.field(antelope.UInt64)
1343
+ ], rmmodule.prototype, "entity_id", void 0);
1344
+ tslib.__decorate([
1345
+ antelope.Struct.field(antelope.UInt8)
1346
+ ], rmmodule.prototype, "module_index", void 0);
1347
+ tslib.__decorate([
1348
+ antelope.Struct.field(antelope.UInt64)
1349
+ ], rmmodule.prototype, "target_cargo_id", void 0);
1350
+ rmmodule = tslib.__decorate([
1351
+ antelope.Struct.type('rmmodule')
1352
+ ], rmmodule);
1353
+ Types.rmmodule = rmmodule;
1309
1354
  let salt = class salt extends antelope.Struct {
1310
1355
  };
1311
1356
  tslib.__decorate([
@@ -1342,25 +1387,25 @@ var Types;
1342
1387
  antelope.Struct.field(coordinates)
1343
1388
  ], ship_row.prototype, "coordinates", void 0);
1344
1389
  tslib.__decorate([
1345
- antelope.Struct.field(antelope.UInt32)
1390
+ antelope.Struct.field(antelope.UInt32, { optional: true })
1346
1391
  ], ship_row.prototype, "hullmass", void 0);
1347
1392
  tslib.__decorate([
1348
- antelope.Struct.field(antelope.UInt32)
1393
+ antelope.Struct.field(antelope.UInt32, { optional: true })
1349
1394
  ], ship_row.prototype, "capacity", void 0);
1350
1395
  tslib.__decorate([
1351
- antelope.Struct.field(antelope.UInt16)
1396
+ antelope.Struct.field(antelope.UInt16, { optional: true })
1352
1397
  ], ship_row.prototype, "energy", void 0);
1353
1398
  tslib.__decorate([
1354
1399
  antelope.Struct.field(antelope.UInt32)
1355
1400
  ], ship_row.prototype, "cargomass", void 0);
1356
1401
  tslib.__decorate([
1357
- antelope.Struct.field(movement_stats)
1402
+ antelope.Struct.field(movement_stats, { optional: true })
1358
1403
  ], ship_row.prototype, "engines", void 0);
1359
1404
  tslib.__decorate([
1360
- antelope.Struct.field(energy_stats)
1405
+ antelope.Struct.field(energy_stats, { optional: true })
1361
1406
  ], ship_row.prototype, "generator", void 0);
1362
1407
  tslib.__decorate([
1363
- antelope.Struct.field(loader_stats)
1408
+ antelope.Struct.field(loader_stats, { optional: true })
1364
1409
  ], ship_row.prototype, "loaders", void 0);
1365
1410
  tslib.__decorate([
1366
1411
  antelope.Struct.field(extractor_stats, { optional: true })
@@ -1371,6 +1416,9 @@ var Types;
1371
1416
  tslib.__decorate([
1372
1417
  antelope.Struct.field(crafter_stats, { optional: true })
1373
1418
  ], ship_row.prototype, "crafter", void 0);
1419
+ tslib.__decorate([
1420
+ antelope.Struct.field(module_entry, { array: true })
1421
+ ], ship_row.prototype, "modules", void 0);
1374
1422
  tslib.__decorate([
1375
1423
  antelope.Struct.field(schedule, { optional: true })
1376
1424
  ], ship_row.prototype, "schedule", void 0);
@@ -1393,15 +1441,24 @@ var Types;
1393
1441
  antelope.Struct.type('spawncargo')
1394
1442
  ], spawncargo);
1395
1443
  Types.spawncargo = spawncargo;
1396
- let starter_info = class starter_info extends antelope.Struct {
1444
+ let spawnseeded = class spawnseeded extends antelope.Struct {
1397
1445
  };
1398
1446
  tslib.__decorate([
1399
- antelope.Struct.field(entity_info)
1400
- ], starter_info.prototype, "ship", void 0);
1401
- starter_info = tslib.__decorate([
1402
- antelope.Struct.type('starter_info')
1403
- ], starter_info);
1404
- Types.starter_info = starter_info;
1447
+ antelope.Struct.field(antelope.UInt64)
1448
+ ], spawnseeded.prototype, "entity_id", void 0);
1449
+ tslib.__decorate([
1450
+ antelope.Struct.field(antelope.UInt64)
1451
+ ], spawnseeded.prototype, "item_id", void 0);
1452
+ tslib.__decorate([
1453
+ antelope.Struct.field(antelope.UInt64)
1454
+ ], spawnseeded.prototype, "quantity", void 0);
1455
+ tslib.__decorate([
1456
+ antelope.Struct.field(antelope.UInt64)
1457
+ ], spawnseeded.prototype, "seed", void 0);
1458
+ spawnseeded = tslib.__decorate([
1459
+ antelope.Struct.type('spawnseeded')
1460
+ ], spawnseeded);
1461
+ Types.spawnseeded = spawnseeded;
1405
1462
  let state_row = class state_row extends antelope.Struct {
1406
1463
  };
1407
1464
  tslib.__decorate([
@@ -1518,9 +1575,6 @@ var Types;
1518
1575
  tslib.__decorate([
1519
1576
  antelope.Struct.field(entity_summary)
1520
1577
  ], types_row.prototype, "entity_summary_type", void 0);
1521
- tslib.__decorate([
1522
- antelope.Struct.field(starter_info)
1523
- ], types_row.prototype, "starter_info_type", void 0);
1524
1578
  tslib.__decorate([
1525
1579
  antelope.Struct.field(game_config)
1526
1580
  ], types_row.prototype, "game_config_type", void 0);
@@ -1675,17 +1729,6 @@ const WAREHOUSE_ALREADY_AT_LOCATION = 'Warehouse already exists at this location
1675
1729
  const WAREHOUSE_CAPACITY_EXCEEDED = 'Warehouse capacity would be exceeded.';
1676
1730
 
1677
1731
  const PRECISION = 10000;
1678
- const INITIAL_SHIP_GENERATOR_CAPACITY = 350;
1679
- const INITIAL_SHIP_DRAIN = 25;
1680
- const INITIAL_SHIP_ENERGY = 350;
1681
- const INITIAL_SHIP_HULLMASS = 100000;
1682
- const INITIAL_SHIP_CAPACITY = 500000;
1683
- const INITIAL_SHIP_Z = 800;
1684
- const INITIAL_SHIP_RECHARGE = 10;
1685
- const INITIAL_SHIP_THRUST = 250;
1686
- const INITIAL_LOADER_MASS = 1000;
1687
- const INITIAL_LOADER_QUANTITY = 1;
1688
- const INITIAL_LOADER_THRUST = 1;
1689
1732
  const WAREHOUSE_Z = 500;
1690
1733
  const INITIAL_WAREHOUSE_CAPACITY = 10000000;
1691
1734
  const CONTAINER_Z = 300;
@@ -1694,10 +1737,7 @@ const INITIAL_CONTAINER_CAPACITY = 2000000;
1694
1737
  const TRAVEL_MAX_DURATION = 86400;
1695
1738
  const MIN_ORBITAL_ALTITUDE = 800;
1696
1739
  const MAX_ORBITAL_ALTITUDE = 3000;
1697
- const INITIAL_SHIP_MASS = 500000;
1698
- const INITIAL_EXTRACTOR_RATE = 700;
1699
- const INITIAL_EXTRACTOR_DRAIN = 2500;
1700
- const INITIAL_EXTRACTOR_EFFICIENCY = 5000;
1740
+ const BASE_ORBITAL_MASS = 100000;
1701
1741
  exports.TaskType = void 0;
1702
1742
  (function (TaskType) {
1703
1743
  TaskType[TaskType["IDLE"] = 0] = "IDLE";
@@ -4313,7 +4353,7 @@ var itemsData = [
4313
4353
  id: 26,
4314
4354
  name: "Iron",
4315
4355
  description: "A versatile metal used in hulls and structures.",
4316
- mass: 40000,
4356
+ mass: 30000,
4317
4357
  category: "metal",
4318
4358
  tier: "t1",
4319
4359
  color: "#B7410E"
@@ -4340,7 +4380,7 @@ var itemsData = [
4340
4380
  id: 29,
4341
4381
  name: "Copper",
4342
4382
  description: "A conductive metal for electronics and wiring.",
4343
- mass: 60000,
4383
+ mass: 40000,
4344
4384
  category: "precious",
4345
4385
  tier: "t1",
4346
4386
  color: "#B87333"
@@ -4394,7 +4434,7 @@ var itemsData = [
4394
4434
  id: 14,
4395
4435
  name: "Silicon",
4396
4436
  description: "A semiconductor used in sensors and computing.",
4397
- mass: 28000,
4437
+ mass: 22000,
4398
4438
  category: "mineral",
4399
4439
  tier: "t1",
4400
4440
  color: "#B8A9C9"
@@ -4421,7 +4461,7 @@ var itemsData = [
4421
4461
  id: 6,
4422
4462
  name: "Carbon",
4423
4463
  description: "A versatile element for life support and coatings.",
4424
- mass: 12000,
4464
+ mass: 15000,
4425
4465
  category: "organic",
4426
4466
  tier: "t1",
4427
4467
  color: "#4A4A4A"
@@ -4469,10 +4509,10 @@ function getItems() {
4469
4509
  }
4470
4510
 
4471
4511
  function calc_orbital_altitude(mass) {
4472
- if (mass <= INITIAL_SHIP_MASS) {
4512
+ if (mass <= BASE_ORBITAL_MASS) {
4473
4513
  return MIN_ORBITAL_ALTITUDE;
4474
4514
  }
4475
- const ratio = mass / INITIAL_SHIP_MASS;
4515
+ const ratio = mass / BASE_ORBITAL_MASS;
4476
4516
  const capRatio = 10.0;
4477
4517
  let scale = Math.log(ratio) / Math.log(capRatio);
4478
4518
  scale = Math.min(scale, 1.0);
@@ -5383,6 +5423,12 @@ class Ship extends Types.entity_info {
5383
5423
  isExtracting(now) {
5384
5424
  return isExtracting(this, now);
5385
5425
  }
5426
+ get hasEngines() {
5427
+ return this.engines !== undefined;
5428
+ }
5429
+ get hasGenerator() {
5430
+ return this.generator !== undefined;
5431
+ }
5386
5432
  get hasExtractor() {
5387
5433
  return this.extractor !== undefined;
5388
5434
  }
@@ -5785,11 +5831,7 @@ class ActionsManager extends BaseManager {
5785
5831
  });
5786
5832
  }
5787
5833
  craft(entityType, entityId, recipeId, quantity, inputs) {
5788
- const cargoInputs = inputs.map((i) => Types.cargo_item.from({
5789
- item_id: antelope.UInt16.from(i.itemId),
5790
- quantity: antelope.UInt32.from(i.quantity),
5791
- seed: i.seed !== undefined ? antelope.UInt64.from(i.seed) : null,
5792
- }));
5834
+ const cargoInputs = inputs.map((i) => Types.cargo_item.from(i));
5793
5835
  return this.server.action('craft', {
5794
5836
  entity_type: entityType,
5795
5837
  id: antelope.UInt64.from(entityId),
@@ -5798,6 +5840,14 @@ class ActionsManager extends BaseManager {
5798
5840
  inputs: cargoInputs,
5799
5841
  });
5800
5842
  }
5843
+ blend(entityType, entityId, inputs) {
5844
+ const cargoInputs = inputs.map((i) => Types.cargo_item.from(i));
5845
+ return this.server.action('blend', {
5846
+ entity_type: entityType,
5847
+ id: antelope.UInt64.from(entityId),
5848
+ inputs: cargoInputs,
5849
+ });
5850
+ }
5801
5851
  deploy(entityType, entityId, packedItemId, seed, entityName) {
5802
5852
  return this.server.action('deploy', {
5803
5853
  entity_type: entityType,
@@ -5807,6 +5857,23 @@ class ActionsManager extends BaseManager {
5807
5857
  entity_name: entityName,
5808
5858
  });
5809
5859
  }
5860
+ addmodule(entityType, entityId, moduleIndex, moduleCargoId, targetCargoId = antelope.UInt64.from(0)) {
5861
+ return this.server.action('addmodule', {
5862
+ entity_type: entityType,
5863
+ entity_id: antelope.UInt64.from(entityId),
5864
+ module_index: moduleIndex,
5865
+ module_cargo_id: antelope.UInt64.from(moduleCargoId),
5866
+ target_cargo_id: antelope.UInt64.from(targetCargoId),
5867
+ });
5868
+ }
5869
+ rmmodule(entityType, entityId, moduleIndex, targetCargoId = antelope.UInt64.from(0)) {
5870
+ return this.server.action('rmmodule', {
5871
+ entity_type: entityType,
5872
+ entity_id: antelope.UInt64.from(entityId),
5873
+ module_index: moduleIndex,
5874
+ target_cargo_id: antelope.UInt64.from(targetCargoId),
5875
+ });
5876
+ }
5810
5877
  joinGame(account, companyName) {
5811
5878
  return [this.foundCompany(account, companyName), this.join(account)];
5812
5879
  }
@@ -5947,26 +6014,34 @@ class Shipload {
5947
6014
  }
5948
6015
 
5949
6016
  function makeShip(state) {
5950
- const entityInfo = Types.entity_info.from({
6017
+ const info = {
5951
6018
  type: antelope.Name.from('ship'),
5952
6019
  id: antelope.UInt64.from(state.id),
5953
6020
  owner: antelope.Name.from(state.owner),
5954
6021
  entity_name: state.name,
5955
6022
  coordinates: Types.coordinates.from(state.coordinates),
5956
- hullmass: antelope.UInt32.from(state.hullmass),
5957
- capacity: antelope.UInt32.from(state.capacity),
5958
- energy: antelope.UInt16.from(state.energy),
5959
6023
  cargomass: antelope.UInt32.from(0),
5960
6024
  cargo: state.cargo || [],
5961
6025
  is_idle: !state.schedule,
5962
6026
  current_task_elapsed: antelope.UInt32.from(0),
5963
6027
  current_task_remaining: antelope.UInt32.from(0),
5964
6028
  pending_tasks: [],
5965
- engines: state.engines,
5966
- generator: state.generator,
5967
- loaders: state.loaders,
5968
- schedule: state.schedule,
5969
- });
6029
+ };
6030
+ if (state.hullmass !== undefined)
6031
+ info.hullmass = antelope.UInt32.from(state.hullmass);
6032
+ if (state.capacity !== undefined)
6033
+ info.capacity = antelope.UInt32.from(state.capacity);
6034
+ if (state.energy !== undefined)
6035
+ info.energy = antelope.UInt16.from(state.energy);
6036
+ if (state.engines)
6037
+ info.engines = state.engines;
6038
+ if (state.generator)
6039
+ info.generator = state.generator;
6040
+ if (state.loaders)
6041
+ info.loaders = state.loaders;
6042
+ if (state.schedule)
6043
+ info.schedule = state.schedule;
6044
+ const entityInfo = Types.entity_info.from(info);
5970
6045
  return new Ship(entityInfo);
5971
6046
  }
5972
6047
  function makeWarehouse(state) {
@@ -6205,9 +6280,53 @@ function resolveStats(category, stats) {
6205
6280
  };
6206
6281
  }
6207
6282
 
6283
+ const ITEM_ENGINE_T1 = 10006;
6284
+ const ITEM_GENERATOR_T1 = 10007;
6285
+ const ITEM_EXTRACTOR_T1 = 10014;
6286
+ const ITEM_LOADER_T1 = 10015;
6287
+ const ITEM_MANUFACTURING_T1 = 10016;
6288
+ const MODULE_ANY = 0;
6289
+ const MODULE_ENGINE = 1;
6290
+ const MODULE_GENERATOR = 2;
6291
+ const MODULE_EXTRACTOR = 3;
6292
+ const MODULE_LOADER = 4;
6293
+ const MODULE_WARP = 5;
6294
+ const MODULE_CRAFTER = 6;
6295
+ const MODULE_LAUNCHER = 7;
6296
+ function moduleAccepts(slotType, moduleType) {
6297
+ return slotType === MODULE_ANY || slotType === moduleType;
6298
+ }
6299
+ function getModuleCapabilityType(itemId) {
6300
+ switch (itemId) {
6301
+ case ITEM_ENGINE_T1:
6302
+ return MODULE_ENGINE;
6303
+ case ITEM_GENERATOR_T1:
6304
+ return MODULE_GENERATOR;
6305
+ case ITEM_EXTRACTOR_T1:
6306
+ return MODULE_EXTRACTOR;
6307
+ case ITEM_LOADER_T1:
6308
+ return MODULE_LOADER;
6309
+ case ITEM_MANUFACTURING_T1:
6310
+ return MODULE_CRAFTER;
6311
+ default:
6312
+ return 0xff;
6313
+ }
6314
+ }
6315
+ function isModuleItem(itemId) {
6316
+ return getModuleCapabilityType(itemId) !== 0xff;
6317
+ }
6318
+
6319
+ const ITEM_DRILL_SHAFT = 10009;
6320
+ const ITEM_EXTRACTION_PROBE = 10010;
6321
+ const ITEM_CARGO_ARM = 10011;
6322
+ const ITEM_TOOL_BIT = 10012;
6323
+ const ITEM_REACTION_CHAMBER = 10013;
6208
6324
  const ITEM_HULL_PLATES = 10001;
6209
6325
  const ITEM_CARGO_LINING = 10002;
6210
6326
  const ITEM_CONTAINER_PACKED = 10003;
6327
+ const ITEM_THRUSTER_CORE = 10004;
6328
+ const ITEM_POWER_CELL = 10005;
6329
+ const ITEM_SHIP_T1_PACKED = 10008;
6211
6330
  const components = [
6212
6331
  {
6213
6332
  id: ITEM_HULL_PLATES,
@@ -6219,8 +6338,8 @@ const components = [
6219
6338
  { key: 'strength', source: 'metal' },
6220
6339
  { key: 'density', source: 'metal' },
6221
6340
  ],
6222
- recipe: [{ category: 'metal', quantity: 40 }],
6223
- usedIn: [{ type: 'entity', name: 'Container' }],
6341
+ recipe: [{ category: 'metal', quantity: 15 }],
6342
+ usedIn: [{ type: 'entity', name: 'Container' }, { type: 'entity', name: 'Ship T1' }],
6224
6343
  },
6225
6344
  {
6226
6345
  id: ITEM_CARGO_LINING,
@@ -6233,10 +6352,101 @@ const components = [
6233
6352
  { key: 'purity', source: 'organic' },
6234
6353
  ],
6235
6354
  recipe: [
6236
- { category: 'precious', quantity: 10 },
6237
- { category: 'organic', quantity: 20 },
6355
+ { category: 'precious', quantity: 6 },
6356
+ { category: 'organic', quantity: 14 },
6238
6357
  ],
6239
- usedIn: [{ type: 'entity', name: 'Container' }],
6358
+ usedIn: [{ type: 'entity', name: 'Container' }, { type: 'entity', name: 'Ship T1' }],
6359
+ },
6360
+ {
6361
+ id: ITEM_THRUSTER_CORE,
6362
+ name: 'Thruster Core',
6363
+ description: 'High-energy propulsion component formed from volatile gases.',
6364
+ color: '#E86344',
6365
+ mass: 50000,
6366
+ stats: [
6367
+ { key: 'volatility', source: 'gas' },
6368
+ { key: 'thermal', source: 'gas' },
6369
+ ],
6370
+ recipe: [{ category: 'gas', quantity: 32 }],
6371
+ usedIn: [{ type: 'module', name: 'Engine Module T1' }],
6372
+ },
6373
+ {
6374
+ id: ITEM_POWER_CELL,
6375
+ name: 'Power Cell',
6376
+ description: 'Crystalline energy storage matrix formed from resonant minerals.',
6377
+ color: '#7B5AE8',
6378
+ mass: 30000,
6379
+ stats: [
6380
+ { key: 'resonance', source: 'mineral' },
6381
+ { key: 'clarity', source: 'mineral' },
6382
+ ],
6383
+ recipe: [{ category: 'mineral', quantity: 20 }],
6384
+ usedIn: [{ type: 'module', name: 'Generator Module T1' }],
6385
+ },
6386
+ {
6387
+ id: ITEM_DRILL_SHAFT,
6388
+ name: 'Drill Shaft',
6389
+ description: 'Heavy-duty metal shaft used in extraction equipment.',
6390
+ color: '#7B8D9E',
6391
+ mass: 50000,
6392
+ stats: [
6393
+ { key: 'strength', source: 'metal' },
6394
+ { key: 'tolerance', source: 'metal' },
6395
+ ],
6396
+ recipe: [{ category: 'metal', quantity: 15 }],
6397
+ usedIn: [{ type: 'module', name: 'Extractor Module T1' }],
6398
+ },
6399
+ {
6400
+ id: ITEM_EXTRACTION_PROBE,
6401
+ name: 'Extraction Probe',
6402
+ description: 'Precious metal sensor array for deep resource detection.',
6403
+ color: '#D4A843',
6404
+ mass: 30000,
6405
+ stats: [
6406
+ { key: 'conductivity', source: 'precious' },
6407
+ { key: 'reflectivity', source: 'precious' },
6408
+ ],
6409
+ recipe: [{ category: 'precious', quantity: 10 }],
6410
+ usedIn: [{ type: 'module', name: 'Extractor Module T1' }],
6411
+ },
6412
+ {
6413
+ id: ITEM_CARGO_ARM,
6414
+ name: 'Cargo Arm',
6415
+ description: 'Flexible organic composite arm for cargo handling.',
6416
+ color: '#6B8E5A',
6417
+ mass: 30000,
6418
+ stats: [
6419
+ { key: 'plasticity', source: 'organic' },
6420
+ { key: 'insulation', source: 'organic' },
6421
+ ],
6422
+ recipe: [{ category: 'organic', quantity: 32 }],
6423
+ usedIn: [{ type: 'module', name: 'Loader Module T1' }],
6424
+ },
6425
+ {
6426
+ id: ITEM_TOOL_BIT,
6427
+ name: 'Tool Bit',
6428
+ description: 'Dense mineral cutting head for manufacturing operations.',
6429
+ color: '#B8A9C9',
6430
+ mass: 30000,
6431
+ stats: [
6432
+ { key: 'hardness', source: 'mineral' },
6433
+ { key: 'clarity', source: 'mineral' },
6434
+ ],
6435
+ recipe: [{ category: 'mineral', quantity: 20 }],
6436
+ usedIn: [{ type: 'module', name: 'Manufacturing Module T1' }],
6437
+ },
6438
+ {
6439
+ id: ITEM_REACTION_CHAMBER,
6440
+ name: 'Reaction Chamber',
6441
+ description: 'Gas-pressurized vessel for controlled manufacturing reactions.',
6442
+ color: '#7EC8E3',
6443
+ mass: 50000,
6444
+ stats: [
6445
+ { key: 'reactivity', source: 'gas' },
6446
+ { key: 'thermal', source: 'gas' },
6447
+ ],
6448
+ recipe: [{ category: 'gas', quantity: 32 }],
6449
+ usedIn: [{ type: 'module', name: 'Manufacturing Module T1' }],
6240
6450
  },
6241
6451
  ];
6242
6452
  const entityRecipes = [
@@ -6257,7 +6467,109 @@ const entityRecipes = [
6257
6467
  { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
6258
6468
  ],
6259
6469
  },
6470
+ {
6471
+ id: 'ship-t1',
6472
+ name: 'Ship T1',
6473
+ description: 'General-purpose vessel with 5 module slots.',
6474
+ color: '#4AE898',
6475
+ packedItemId: ITEM_SHIP_T1_PACKED,
6476
+ recipe: [
6477
+ { itemId: ITEM_HULL_PLATES, quantity: 8 },
6478
+ { itemId: ITEM_CARGO_LINING, quantity: 4 },
6479
+ ],
6480
+ stats: [
6481
+ { key: 'strength', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'strength' },
6482
+ { key: 'density', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'density' },
6483
+ { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
6484
+ { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
6485
+ ],
6486
+ },
6487
+ ];
6488
+ const moduleRecipes = [
6489
+ {
6490
+ id: 'engine-t1',
6491
+ name: 'Engine Module T1',
6492
+ description: 'Basic propulsion system. Converts volatile gases into thrust.',
6493
+ color: '#E86344',
6494
+ itemId: ITEM_ENGINE_T1,
6495
+ moduleType: MODULE_ENGINE,
6496
+ recipe: [{ itemId: ITEM_THRUSTER_CORE, quantity: 6 }],
6497
+ stats: [
6498
+ { key: 'volatility', sourceComponentId: ITEM_THRUSTER_CORE, sourceStatKey: 'volatility' },
6499
+ { key: 'thermal', sourceComponentId: ITEM_THRUSTER_CORE, sourceStatKey: 'thermal' },
6500
+ ],
6501
+ },
6502
+ {
6503
+ id: 'generator-t1',
6504
+ name: 'Generator Module T1',
6505
+ description: 'Basic energy system. Stores and recharges energy from resonant minerals.',
6506
+ color: '#7B5AE8',
6507
+ itemId: ITEM_GENERATOR_T1,
6508
+ moduleType: MODULE_GENERATOR,
6509
+ recipe: [{ itemId: ITEM_POWER_CELL, quantity: 5 }],
6510
+ stats: [
6511
+ { key: 'resonance', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'resonance' },
6512
+ { key: 'clarity', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'clarity' },
6513
+ ],
6514
+ },
6515
+ {
6516
+ id: 'extractor-t1',
6517
+ name: 'Extractor Module T1',
6518
+ description: 'Basic extraction system. Drills and probes for raw resources.',
6519
+ color: '#7B8D9E',
6520
+ itemId: ITEM_EXTRACTOR_T1,
6521
+ moduleType: MODULE_EXTRACTOR,
6522
+ recipe: [
6523
+ { itemId: ITEM_DRILL_SHAFT, quantity: 4 },
6524
+ { itemId: ITEM_EXTRACTION_PROBE, quantity: 3 },
6525
+ ],
6526
+ stats: [
6527
+ { key: 'strength', sourceComponentId: ITEM_DRILL_SHAFT, sourceStatKey: 'strength' },
6528
+ { key: 'tolerance', sourceComponentId: ITEM_DRILL_SHAFT, sourceStatKey: 'tolerance' },
6529
+ { key: 'reflectivity', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'reflectivity' },
6530
+ { key: 'conductivity', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'conductivity' },
6531
+ { key: 'reflectivity_drill', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'reflectivity' },
6532
+ ],
6533
+ },
6534
+ {
6535
+ id: 'loader-t1',
6536
+ name: 'Loader Module T1',
6537
+ description: 'Basic cargo handling system. Loads and unloads cargo with articulated arms.',
6538
+ color: '#6B8E5A',
6539
+ itemId: ITEM_LOADER_T1,
6540
+ moduleType: MODULE_LOADER,
6541
+ recipe: [
6542
+ { itemId: ITEM_CARGO_LINING, quantity: 3 },
6543
+ { itemId: ITEM_CARGO_ARM, quantity: 3 },
6544
+ ],
6545
+ stats: [
6546
+ { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
6547
+ { key: 'plasticity', sourceComponentId: ITEM_CARGO_ARM, sourceStatKey: 'plasticity' },
6548
+ ],
6549
+ },
6550
+ {
6551
+ id: 'manufacturing-t1',
6552
+ name: 'Manufacturing Module T1',
6553
+ description: 'Basic crafting system. Processes materials using reaction chambers and cutting tools.',
6554
+ color: '#7EC8E3',
6555
+ itemId: ITEM_MANUFACTURING_T1,
6556
+ moduleType: MODULE_CRAFTER,
6557
+ recipe: [
6558
+ { itemId: ITEM_TOOL_BIT, quantity: 3 },
6559
+ { itemId: ITEM_REACTION_CHAMBER, quantity: 3 },
6560
+ ],
6561
+ stats: [
6562
+ { key: 'reactivity', sourceComponentId: ITEM_REACTION_CHAMBER, sourceStatKey: 'reactivity' },
6563
+ { key: 'clarity', sourceComponentId: ITEM_TOOL_BIT, sourceStatKey: 'clarity' },
6564
+ ],
6565
+ },
6260
6566
  ];
6567
+ function getModuleRecipe(id) {
6568
+ return moduleRecipes.find((r) => r.id === id);
6569
+ }
6570
+ function getModuleRecipeByItemId(itemId) {
6571
+ return moduleRecipes.find((r) => r.itemId === itemId);
6572
+ }
6261
6573
  function getComponentById(id) {
6262
6574
  return components.find((c) => c.id === id);
6263
6575
  }
@@ -6275,6 +6587,9 @@ function getAllCraftableItems() {
6275
6587
  for (const entity of entityRecipes) {
6276
6588
  items.push({ type: 'entity', id: entity.id, name: entity.name, description: entity.description, color: entity.color });
6277
6589
  }
6590
+ for (const mod of moduleRecipes) {
6591
+ items.push({ type: 'module', id: mod.id, name: mod.name, description: mod.description, color: mod.color });
6592
+ }
6278
6593
  return items;
6279
6594
  }
6280
6595
  function getComponentsForCategory(category) {
@@ -6298,25 +6613,24 @@ function decodeStats(seed, count) {
6298
6613
  }
6299
6614
  return stats;
6300
6615
  }
6616
+ function mapStatsToKeys(seed, statDefs) {
6617
+ const values = decodeStats(seed, statDefs.length);
6618
+ const result = {};
6619
+ for (let i = 0; i < statDefs.length; i++) {
6620
+ result[statDefs[i].key] = values[i];
6621
+ }
6622
+ return result;
6623
+ }
6301
6624
  function decodeCraftedItemStats(itemId, seed) {
6302
6625
  const comp = getComponentById(itemId);
6303
- if (comp) {
6304
- const values = decodeStats(seed, comp.stats.length);
6305
- const result = {};
6306
- for (let i = 0; i < comp.stats.length; i++) {
6307
- result[comp.stats[i].key] = values[i];
6308
- }
6309
- return result;
6310
- }
6626
+ if (comp)
6627
+ return mapStatsToKeys(seed, comp.stats);
6311
6628
  const entityRecipe = entityRecipes.find((r) => r.packedItemId === itemId);
6312
- if (entityRecipe) {
6313
- const values = decodeStats(seed, entityRecipe.stats.length);
6314
- const result = {};
6315
- for (let i = 0; i < entityRecipe.stats.length; i++) {
6316
- result[entityRecipe.stats[i].key] = values[i];
6317
- }
6318
- return result;
6319
- }
6629
+ if (entityRecipe)
6630
+ return mapStatsToKeys(seed, entityRecipe.stats);
6631
+ const moduleRecipe = moduleRecipes.find((r) => r.itemId === itemId);
6632
+ if (moduleRecipe)
6633
+ return mapStatsToKeys(seed, moduleRecipe.stats);
6320
6634
  return {};
6321
6635
  }
6322
6636
  function blendStacks(stacks, statKey) {
@@ -6329,7 +6643,7 @@ function blendStacks(stacks, statKey) {
6329
6643
  }
6330
6644
  if (totalQty === 0)
6331
6645
  return 0;
6332
- return Math.round(weightedSum / totalQty);
6646
+ return Math.floor(weightedSum / totalQty);
6333
6647
  }
6334
6648
  function computeComponentStats(componentId, categoryStacks) {
6335
6649
  const comp = getComponentById(componentId);
@@ -6356,7 +6670,7 @@ function blendComponentStacks(stacks) {
6356
6670
  return result;
6357
6671
  }
6358
6672
  function computeEntityStats(entityRecipeId, componentStacks) {
6359
- const recipe = getEntityRecipe(entityRecipeId);
6673
+ const recipe = getEntityRecipe(entityRecipeId) ?? getModuleRecipe(entityRecipeId);
6360
6674
  if (!recipe)
6361
6675
  return [];
6362
6676
  const blendedByComponent = {};
@@ -6369,6 +6683,22 @@ function computeEntityStats(entityRecipeId, componentStacks) {
6369
6683
  return { key: stat.key, value: Math.max(1, Math.min(999, value)) };
6370
6684
  });
6371
6685
  }
6686
+ function decodeStackStats(itemId, seed) {
6687
+ if (itemId >= 10000) {
6688
+ return decodeCraftedItemStats(itemId, BigInt(seed.toString()));
6689
+ }
6690
+ const raw = deriveResourceStats(BigInt(seed.toString()));
6691
+ return { stat1: raw.stat1, stat2: raw.stat2, stat3: raw.stat3 };
6692
+ }
6693
+ function blendCargoStacks(itemId, stacks) {
6694
+ const decoded = stacks.map((s) => ({
6695
+ quantity: s.quantity,
6696
+ stats: decodeStackStats(itemId, s.seed),
6697
+ }));
6698
+ const allKeys = Object.keys(decoded[0]?.stats ?? {});
6699
+ const blended = allKeys.map((key) => Math.max(1, Math.min(999, blendStacks(decoded, key))));
6700
+ return antelope.UInt64.from(encodeStats(blended));
6701
+ }
6372
6702
 
6373
6703
  function totalCargoMass(cargo) {
6374
6704
  return cargo.reduce((sum, c) => {
@@ -6459,16 +6789,21 @@ function calcLoadDuration(entity, cargoMass) {
6459
6789
  return antelope.UInt32.from(Math.ceil(Number(cargoMass) / totalThrust));
6460
6790
  }
6461
6791
 
6462
- function calc_extraction_duration(extractor, cargoMass, stratum, richness) {
6792
+ const EXTRACTION_TIME_SCALE = 100;
6793
+ const DEPTH_PENALTY_DIVISOR = 5000;
6794
+ const DRILL_TIME_SCALE = 300;
6795
+ function calc_extraction_duration(extractor, itemMass, quantity, stratum, richness) {
6463
6796
  const rate = extractor.rate.toNumber();
6464
- const efficiency = extractor.efficiency.toNumber();
6465
6797
  const drill = extractor.drill.toNumber();
6466
- const rateProduct = Math.floor((rate * richness * efficiency) / PRECISION);
6467
- if (rateProduct === 0)
6798
+ if (rate === 0 || drill === 0 || richness === 0)
6468
6799
  return antelope.UInt32.from(0);
6469
- const extractionTime = Math.floor((cargoMass * PRECISION) / rateProduct);
6470
- const drillTime = Math.floor(stratum / drill);
6471
- return antelope.UInt32.from(extractionTime + drillTime);
6800
+ const massFactor = Math.sqrt(itemMass);
6801
+ const depthPenalty = 1 + stratum / DEPTH_PENALTY_DIVISOR;
6802
+ const richnessMul = richness / 1000;
6803
+ const extractionTime = quantity * massFactor * EXTRACTION_TIME_SCALE * depthPenalty
6804
+ / (rate * richnessMul);
6805
+ const drillTime = DRILL_TIME_SCALE * Math.log(1 + stratum / drill);
6806
+ return antelope.UInt32.from(Math.floor(extractionTime + drillTime));
6472
6807
  }
6473
6808
  function calc_extraction_energy(extractor, duration) {
6474
6809
  const energy = Math.floor((duration * extractor.drain.toNumber()) / PRECISION);
@@ -6478,8 +6813,287 @@ function calc_extraction_energy(extractor, duration) {
6478
6813
  function capsHasCrafter(caps) {
6479
6814
  return caps.crafter !== undefined;
6480
6815
  }
6816
+ function calc_craft_duration(speed, totalInputMass, quantity) {
6817
+ const duration = Math.floor((totalInputMass * quantity) / speed);
6818
+ return antelope.UInt32.from(Math.max(duration, 1));
6819
+ }
6820
+ function calc_craft_energy(drain, duration) {
6821
+ return antelope.UInt16.from(Math.floor((duration * drain) / PRECISION));
6822
+ }
6823
+
6824
+ const categoryColors = {
6825
+ metal: '#7B8D9E',
6826
+ precious: '#D4A843',
6827
+ gas: '#7EC8E3',
6828
+ mineral: '#B8A9C9',
6829
+ organic: '#6B8E5A',
6830
+ };
6831
+ const tierColors = {
6832
+ t1: '#8b8b8b',
6833
+ t2: '#4ade80',
6834
+ t3: '#818cf8',
6835
+ t4: '#c084fc',
6836
+ t5: '#fbbf24',
6837
+ };
6838
+ const categoryIcons = {
6839
+ metal: '⬡',
6840
+ precious: '◈',
6841
+ gas: '◎',
6842
+ mineral: '◇',
6843
+ organic: '❋',
6844
+ };
6845
+ const componentIcon = '▣';
6846
+ const moduleIcon = '⬢';
6847
+
6848
+ function computeShipHullCapabilities(stats) {
6849
+ const density = stats.density ?? 500;
6850
+ const strength = stats.strength ?? 500;
6851
+ const ductility = stats.ductility ?? 500;
6852
+ const purity = stats.purity ?? 500;
6853
+ const hullmass = 25000 + 75 * density;
6854
+ const statSum = strength + ductility + purity;
6855
+ const exponent = statSum / 2997.0;
6856
+ const capacity = Math.floor(1000000 * Math.pow(10, exponent));
6857
+ return { hullmass, capacity };
6858
+ }
6859
+ function computeEngineCapabilities(stats) {
6860
+ const vol = stats.volatility ?? 500;
6861
+ const thm = stats.thermal ?? 500;
6862
+ return {
6863
+ thrust: 400 + Math.floor(vol * 3 / 4),
6864
+ drain: Math.max(16, 30 - Math.floor(thm / 70)),
6865
+ };
6866
+ }
6867
+ function computeGeneratorCapabilities(stats) {
6868
+ const res = stats.resonance ?? 500;
6869
+ const clr = stats.clarity ?? 500;
6870
+ return {
6871
+ capacity: 300 + Math.floor(res / 6),
6872
+ recharge: 5 + Math.floor(clr * 15 / 1000),
6873
+ };
6874
+ }
6875
+ function computeExtractorCapabilities(stats) {
6876
+ const str = stats.strength ?? 500;
6877
+ const con = stats.conductivity ?? 500;
6878
+ const ref = stats.reflectivity ?? 500;
6879
+ const tol = stats.tolerance ?? 500;
6880
+ return {
6881
+ rate: 200 + str,
6882
+ drain: Math.max(10, 50 - Math.floor(con / 20)),
6883
+ depth: 200 + Math.floor(tol * 3 / 2),
6884
+ drill: 100 + Math.floor(ref * 4 / 5),
6885
+ };
6886
+ }
6887
+ function computeLoaderCapabilities(stats) {
6888
+ const duc = stats.ductility ?? 500;
6889
+ const pla = stats.plasticity ?? 500;
6890
+ return {
6891
+ mass: Math.max(200, 2000 - Math.floor(duc * 2)),
6892
+ thrust: 1 + Math.floor(pla / 500),
6893
+ quantity: 1,
6894
+ };
6895
+ }
6896
+ function computeManufacturingCapabilities(stats) {
6897
+ const rea = stats.reactivity ?? 500;
6898
+ const clr = stats.clarity ?? 500;
6899
+ return {
6900
+ speed: 100 + Math.floor(rea * 4 / 5),
6901
+ drain: Math.max(5, 30 - Math.floor(clr / 33)),
6902
+ };
6903
+ }
6904
+
6905
+ function toNum(v) {
6906
+ return Number(antelope.UInt16.from(v).value.toString());
6907
+ }
6908
+ function toBigSeed(v) {
6909
+ return BigInt(antelope.UInt64.from(v).toString());
6910
+ }
6911
+ function resolveResource(id, seed) {
6912
+ const item = getItem(id);
6913
+ const cat = item.category;
6914
+ let stats;
6915
+ if (seed !== undefined) {
6916
+ const derived = deriveResourceStats(toBigSeed(seed));
6917
+ const defs = getStatDefinitions(cat);
6918
+ const values = [derived.stat1, derived.stat2, derived.stat3];
6919
+ stats = defs.map((d, i) => ({
6920
+ key: d.key,
6921
+ label: d.label,
6922
+ abbreviation: d.abbreviation,
6923
+ value: values[i] ?? 0,
6924
+ color: categoryColors[cat],
6925
+ category: cat,
6926
+ inverted: d.inverted,
6927
+ }));
6928
+ }
6929
+ return {
6930
+ itemId: id,
6931
+ name: String(item.name),
6932
+ icon: categoryIcons[cat] ?? '⬡',
6933
+ category: cat,
6934
+ tier: item.tier,
6935
+ mass: Number(item.mass.value.toString()),
6936
+ itemType: 'resource',
6937
+ stats,
6938
+ };
6939
+ }
6940
+ function resolveComponent(id, seed) {
6941
+ const comp = getComponentById(id);
6942
+ let stats;
6943
+ if (seed !== undefined) {
6944
+ const decoded = decodeCraftedItemStats(id, toBigSeed(seed));
6945
+ stats = Object.entries(decoded).map(([key, value]) => {
6946
+ const allDefs = getStatDefinitions('metal')
6947
+ .concat(getStatDefinitions('precious'))
6948
+ .concat(getStatDefinitions('gas'))
6949
+ .concat(getStatDefinitions('mineral'))
6950
+ .concat(getStatDefinitions('organic'));
6951
+ const def = allDefs.find((d) => d.key === key);
6952
+ const statDef = comp.stats.find((s) => s.key === key);
6953
+ const cat = (statDef?.source ?? 'metal');
6954
+ return {
6955
+ key,
6956
+ label: def?.label ?? key,
6957
+ abbreviation: def?.abbreviation ?? key.slice(0, 3).toUpperCase(),
6958
+ value,
6959
+ color: categoryColors[cat],
6960
+ category: cat,
6961
+ inverted: def?.inverted,
6962
+ };
6963
+ });
6964
+ }
6965
+ return {
6966
+ itemId: id,
6967
+ name: comp.name,
6968
+ icon: componentIcon,
6969
+ tier: 't1',
6970
+ mass: comp.mass,
6971
+ itemType: 'component',
6972
+ stats,
6973
+ };
6974
+ }
6975
+ function computeCapabilityGroup(moduleType, stats) {
6976
+ switch (moduleType) {
6977
+ case MODULE_ENGINE: {
6978
+ const caps = computeEngineCapabilities(stats);
6979
+ return { capability: 'Engine', attributes: [
6980
+ { label: 'Thrust', value: caps.thrust },
6981
+ { label: 'Drain', value: caps.drain },
6982
+ ] };
6983
+ }
6984
+ case MODULE_GENERATOR: {
6985
+ const caps = computeGeneratorCapabilities(stats);
6986
+ return { capability: 'Generator', attributes: [
6987
+ { label: 'Capacity', value: caps.capacity },
6988
+ { label: 'Recharge', value: caps.recharge },
6989
+ ] };
6990
+ }
6991
+ case MODULE_EXTRACTOR: {
6992
+ const caps = computeExtractorCapabilities(stats);
6993
+ return { capability: 'Extractor', attributes: [
6994
+ { label: 'Rate', value: caps.rate },
6995
+ { label: 'Drain', value: caps.drain },
6996
+ { label: 'Depth', value: caps.depth },
6997
+ { label: 'Drill', value: caps.drill },
6998
+ ] };
6999
+ }
7000
+ case MODULE_LOADER: {
7001
+ const caps = computeLoaderCapabilities(stats);
7002
+ return { capability: 'Loader', attributes: [
7003
+ { label: 'Mass', value: caps.mass },
7004
+ { label: 'Thrust', value: caps.thrust },
7005
+ { label: 'Quantity', value: caps.quantity },
7006
+ ] };
7007
+ }
7008
+ case MODULE_CRAFTER: {
7009
+ const caps = computeManufacturingCapabilities(stats);
7010
+ return { capability: 'Manufacturing', attributes: [
7011
+ { label: 'Speed', value: caps.speed },
7012
+ { label: 'Drain', value: caps.drain },
7013
+ ] };
7014
+ }
7015
+ default:
7016
+ return undefined;
7017
+ }
7018
+ }
7019
+ function resolveModule(id, seed) {
7020
+ const recipe = getModuleRecipeByItemId(id);
7021
+ let attributes;
7022
+ if (seed !== undefined) {
7023
+ const stats = decodeCraftedItemStats(id, toBigSeed(seed));
7024
+ const modType = getModuleCapabilityType(id);
7025
+ const group = computeCapabilityGroup(modType, stats);
7026
+ if (group)
7027
+ attributes = [group];
7028
+ }
7029
+ return {
7030
+ itemId: id,
7031
+ name: recipe.name,
7032
+ icon: moduleIcon,
7033
+ tier: 't1',
7034
+ mass: 0,
7035
+ itemType: 'module',
7036
+ attributes,
7037
+ };
7038
+ }
7039
+ function resolveEntity(id, seed, modules) {
7040
+ const recipe = getEntityRecipeByItemId(id);
7041
+ let attributes;
7042
+ if (seed !== undefined) {
7043
+ const stats = decodeCraftedItemStats(id, toBigSeed(seed));
7044
+ attributes = [];
7045
+ const isShip = recipe.id === 'ship-t1';
7046
+ if (isShip) {
7047
+ const hullCaps = computeShipHullCapabilities(stats);
7048
+ attributes.push({ capability: 'Hull', attributes: [
7049
+ { label: 'Mass', value: hullCaps.hullmass },
7050
+ { label: 'Capacity', value: hullCaps.capacity },
7051
+ ] });
7052
+ }
7053
+ else {
7054
+ const containerCaps = computeContainerCapabilities(stats);
7055
+ attributes.push({ capability: 'Hull', attributes: [
7056
+ { label: 'Mass', value: containerCaps.hullmass },
7057
+ { label: 'Capacity', value: containerCaps.capacity },
7058
+ ] });
7059
+ }
7060
+ if (modules) {
7061
+ for (const mod of modules) {
7062
+ if (!mod.installed)
7063
+ continue;
7064
+ const modItemId = Number(mod.installed.item_id.value.toString());
7065
+ const modSeed = BigInt(mod.installed.seed.toString());
7066
+ const modStats = decodeCraftedItemStats(modItemId, modSeed);
7067
+ const modType = getModuleCapabilityType(modItemId);
7068
+ const group = computeCapabilityGroup(modType, modStats);
7069
+ if (group)
7070
+ attributes.push(group);
7071
+ }
7072
+ }
7073
+ }
7074
+ return {
7075
+ itemId: id,
7076
+ name: recipe.name,
7077
+ icon: componentIcon,
7078
+ tier: 't1',
7079
+ mass: 0,
7080
+ itemType: 'entity',
7081
+ attributes,
7082
+ };
7083
+ }
7084
+ function resolveItem(itemId, seed, modules) {
7085
+ const id = toNum(itemId);
7086
+ if (isModuleItem(id))
7087
+ return resolveModule(id, seed);
7088
+ if (getComponentById(id))
7089
+ return resolveComponent(id, seed);
7090
+ if (getEntityRecipeByItemId(id))
7091
+ return resolveEntity(id, seed, modules);
7092
+ return resolveResource(id, seed);
7093
+ }
6481
7094
 
6482
7095
  exports.ActionsManager = ActionsManager;
7096
+ exports.BASE_ORBITAL_MASS = BASE_ORBITAL_MASS;
6483
7097
  exports.COMMIT_ALREADY_SET = COMMIT_ALREADY_SET;
6484
7098
  exports.COMMIT_CANNOT_MATCH = COMMIT_CANNOT_MATCH;
6485
7099
  exports.COMMIT_NOT_SET = COMMIT_NOT_SET;
@@ -6506,31 +7120,29 @@ exports.GAME_SEED_NOT_SET = GAME_SEED_NOT_SET;
6506
7120
  exports.GameState = GameState;
6507
7121
  exports.INITIAL_CONTAINER_CAPACITY = INITIAL_CONTAINER_CAPACITY;
6508
7122
  exports.INITIAL_CONTAINER_HULLMASS = INITIAL_CONTAINER_HULLMASS;
6509
- exports.INITIAL_EXTRACTOR_DRAIN = INITIAL_EXTRACTOR_DRAIN;
6510
- exports.INITIAL_EXTRACTOR_EFFICIENCY = INITIAL_EXTRACTOR_EFFICIENCY;
6511
- exports.INITIAL_EXTRACTOR_RATE = INITIAL_EXTRACTOR_RATE;
6512
- exports.INITIAL_LOADER_MASS = INITIAL_LOADER_MASS;
6513
- exports.INITIAL_LOADER_QUANTITY = INITIAL_LOADER_QUANTITY;
6514
- exports.INITIAL_LOADER_THRUST = INITIAL_LOADER_THRUST;
6515
- exports.INITIAL_SHIP_CAPACITY = INITIAL_SHIP_CAPACITY;
6516
- exports.INITIAL_SHIP_DRAIN = INITIAL_SHIP_DRAIN;
6517
- exports.INITIAL_SHIP_ENERGY = INITIAL_SHIP_ENERGY;
6518
- exports.INITIAL_SHIP_GENERATOR_CAPACITY = INITIAL_SHIP_GENERATOR_CAPACITY;
6519
- exports.INITIAL_SHIP_HULLMASS = INITIAL_SHIP_HULLMASS;
6520
- exports.INITIAL_SHIP_MASS = INITIAL_SHIP_MASS;
6521
- exports.INITIAL_SHIP_RECHARGE = INITIAL_SHIP_RECHARGE;
6522
- exports.INITIAL_SHIP_THRUST = INITIAL_SHIP_THRUST;
6523
- exports.INITIAL_SHIP_Z = INITIAL_SHIP_Z;
6524
7123
  exports.INITIAL_WAREHOUSE_CAPACITY = INITIAL_WAREHOUSE_CAPACITY;
6525
7124
  exports.INSUFFICIENT_BALANCE = INSUFFICIENT_BALANCE;
6526
7125
  exports.INSUFFICIENT_ITEM_QUANTITY = INSUFFICIENT_ITEM_QUANTITY;
6527
7126
  exports.INSUFFICIENT_ITEM_SUPPLY = INSUFFICIENT_ITEM_SUPPLY;
6528
7127
  exports.INVALID_AMOUNT = INVALID_AMOUNT;
7128
+ exports.ITEM_CARGO_ARM = ITEM_CARGO_ARM;
6529
7129
  exports.ITEM_CARGO_LINING = ITEM_CARGO_LINING;
6530
7130
  exports.ITEM_CONTAINER_PACKED = ITEM_CONTAINER_PACKED;
6531
7131
  exports.ITEM_DOES_NOT_EXIST = ITEM_DOES_NOT_EXIST;
7132
+ exports.ITEM_DRILL_SHAFT = ITEM_DRILL_SHAFT;
7133
+ exports.ITEM_ENGINE_T1 = ITEM_ENGINE_T1;
7134
+ exports.ITEM_EXTRACTION_PROBE = ITEM_EXTRACTION_PROBE;
7135
+ exports.ITEM_EXTRACTOR_T1 = ITEM_EXTRACTOR_T1;
7136
+ exports.ITEM_GENERATOR_T1 = ITEM_GENERATOR_T1;
6532
7137
  exports.ITEM_HULL_PLATES = ITEM_HULL_PLATES;
7138
+ exports.ITEM_LOADER_T1 = ITEM_LOADER_T1;
7139
+ exports.ITEM_MANUFACTURING_T1 = ITEM_MANUFACTURING_T1;
6533
7140
  exports.ITEM_NOT_AVAILABLE_AT_LOCATION = ITEM_NOT_AVAILABLE_AT_LOCATION;
7141
+ exports.ITEM_POWER_CELL = ITEM_POWER_CELL;
7142
+ exports.ITEM_REACTION_CHAMBER = ITEM_REACTION_CHAMBER;
7143
+ exports.ITEM_SHIP_T1_PACKED = ITEM_SHIP_T1_PACKED;
7144
+ exports.ITEM_THRUSTER_CORE = ITEM_THRUSTER_CORE;
7145
+ exports.ITEM_TOOL_BIT = ITEM_TOOL_BIT;
6534
7146
  exports.InventoryAccessor = InventoryAccessor;
6535
7147
  exports.LOCATION_MAX_DEPTH = LOCATION_MAX_DEPTH;
6536
7148
  exports.LOCATION_MIN_DEPTH = LOCATION_MIN_DEPTH;
@@ -6538,6 +7150,14 @@ exports.Location = Location;
6538
7150
  exports.LocationsManager = LocationsManager;
6539
7151
  exports.MAX_ORBITAL_ALTITUDE = MAX_ORBITAL_ALTITUDE;
6540
7152
  exports.MIN_ORBITAL_ALTITUDE = MIN_ORBITAL_ALTITUDE;
7153
+ exports.MODULE_ANY = MODULE_ANY;
7154
+ exports.MODULE_CRAFTER = MODULE_CRAFTER;
7155
+ exports.MODULE_ENGINE = MODULE_ENGINE;
7156
+ exports.MODULE_EXTRACTOR = MODULE_EXTRACTOR;
7157
+ exports.MODULE_GENERATOR = MODULE_GENERATOR;
7158
+ exports.MODULE_LAUNCHER = MODULE_LAUNCHER;
7159
+ exports.MODULE_LOADER = MODULE_LOADER;
7160
+ exports.MODULE_WARP = MODULE_WARP;
6541
7161
  exports.NO_SCHEDULE = NO_SCHEDULE;
6542
7162
  exports.PLANET_SUBTYPE_GAS_GIANT = PLANET_SUBTYPE_GAS_GIANT;
6543
7163
  exports.PLANET_SUBTYPE_ICY = PLANET_SUBTYPE_ICY;
@@ -6583,12 +7203,15 @@ exports.WAREHOUSE_Z = WAREHOUSE_Z;
6583
7203
  exports.Warehouse = Warehouse;
6584
7204
  exports.availableCapacity = availableCapacity$1;
6585
7205
  exports.availableCapacityFromMass = availableCapacityFromMass;
7206
+ exports.blendCargoStacks = blendCargoStacks;
6586
7207
  exports.blendComponentStacks = blendComponentStacks;
6587
7208
  exports.blendStacks = blendStacks;
6588
7209
  exports.calcCargoMass = calcCargoMass;
6589
7210
  exports.calcEnergyUsage = calcEnergyUsage;
6590
7211
  exports.calcLoadDuration = calcLoadDuration;
6591
7212
  exports.calc_acceleration = calc_acceleration;
7213
+ exports.calc_craft_duration = calc_craft_duration;
7214
+ exports.calc_craft_energy = calc_craft_energy;
6592
7215
  exports.calc_energyusage = calc_energyusage;
6593
7216
  exports.calc_extraction_duration = calc_extraction_duration;
6594
7217
  exports.calc_extraction_energy = calc_extraction_energy;
@@ -6614,10 +7237,19 @@ exports.capsHasMass = capsHasMass;
6614
7237
  exports.capsHasMovement = capsHasMovement;
6615
7238
  exports.capsHasStorage = capsHasStorage;
6616
7239
  exports.cargoUtils = cargoUtils;
7240
+ exports.categoryColors = categoryColors;
7241
+ exports.categoryIcons = categoryIcons;
7242
+ exports.componentIcon = componentIcon;
6617
7243
  exports.components = components;
6618
7244
  exports.computeComponentStats = computeComponentStats;
6619
7245
  exports.computeContainerCapabilities = computeContainerCapabilities;
7246
+ exports.computeEngineCapabilities = computeEngineCapabilities;
6620
7247
  exports.computeEntityStats = computeEntityStats;
7248
+ exports.computeExtractorCapabilities = computeExtractorCapabilities;
7249
+ exports.computeGeneratorCapabilities = computeGeneratorCapabilities;
7250
+ exports.computeLoaderCapabilities = computeLoaderCapabilities;
7251
+ exports.computeManufacturingCapabilities = computeManufacturingCapabilities;
7252
+ exports.computeShipHullCapabilities = computeShipHullCapabilities;
6621
7253
  exports.coordsToLocationId = coordsToLocationId;
6622
7254
  exports.createInventoryAccessor = createInventoryAccessor;
6623
7255
  exports.createProjectedEntity = createProjectedEntity;
@@ -6656,6 +7288,9 @@ exports.getItem = getItem;
6656
7288
  exports.getItems = getItems;
6657
7289
  exports.getLocationCandidates = getLocationCandidates;
6658
7290
  exports.getLocationType = getLocationType;
7291
+ exports.getModuleCapabilityType = getModuleCapabilityType;
7292
+ exports.getModuleRecipe = getModuleRecipe;
7293
+ exports.getModuleRecipeByItemId = getModuleRecipeByItemId;
6659
7294
  exports.getPositionAt = getPositionAt;
6660
7295
  exports.getResourceTier = getResourceTier;
6661
7296
  exports.getResourceWeight = getResourceWeight;
@@ -6677,17 +7312,23 @@ exports.hash512 = hash512;
6677
7312
  exports.isExtractableLocation = isExtractableLocation;
6678
7313
  exports.isFull = isFull$1;
6679
7314
  exports.isFullFromMass = isFullFromMass;
7315
+ exports.isModuleItem = isModuleItem;
6680
7316
  exports.itemIds = itemIds;
6681
7317
  exports.lerp = lerp;
6682
7318
  exports.makeContainer = makeContainer;
6683
7319
  exports.makeShip = makeShip;
6684
7320
  exports.makeWarehouse = makeWarehouse;
6685
7321
  exports.maxTravelDistance = maxTravelDistance;
7322
+ exports.moduleAccepts = moduleAccepts;
7323
+ exports.moduleIcon = moduleIcon;
7324
+ exports.moduleRecipes = moduleRecipes;
6686
7325
  exports.needsRecharge = needsRecharge;
6687
7326
  exports.projectEntity = projectEntity;
6688
7327
  exports.projectEntityAt = projectEntityAt;
7328
+ exports.resolveItem = resolveItem;
6689
7329
  exports.resolveStats = resolveStats;
6690
7330
  exports.rotation = rotation;
6691
7331
  exports.schedule = schedule;
7332
+ exports.tierColors = tierColors;
6692
7333
  exports.toLocation = toLocation;
6693
7334
  //# sourceMappingURL=shipload.js.map