diff --git a/lib/libesp32/berry_int64/src/be_int64_class.c b/lib/libesp32/berry_int64/src/be_int64_class.c index 5b3d3e3c2..4e06354ea 100644 --- a/lib/libesp32/berry_int64/src/be_int64_class.c +++ b/lib/libesp32/berry_int64/src/be_int64_class.c @@ -72,6 +72,13 @@ void int64_set(int64_t *i64, int32_t high, int32_t low) { } BE_FUNC_CTYPE_DECLARE(int64_set, "", ".ii") +int64_t* int64_fromu32(bvm *vm, uint32_t low) { + int64_t* r64 = (int64_t*)be_malloc(vm, sizeof(int64_t)); + *r64 = low; + return r64; +} +BE_FUNC_CTYPE_DECLARE(int64_fromu32, "int64", "@i") + int64_t* int64_add(bvm *vm, int64_t *i64, int64_t *j64) { int64_t* r64 = (int64_t*)be_malloc(vm, sizeof(int64_t)); // it's possible that arg j64 is nullptr, since class type does allow NULLPTR to come through. @@ -197,6 +204,7 @@ class be_class_int64 (scope: global, name: int64) { init, ctype_func(int64_init) deinit, ctype_func(int64_deinit) set, ctype_func(int64_set) + fromu32, static_ctype_func(int64_fromu32) tostring, ctype_func(int64_tostring) fromstring, static_ctype_func(int64_fromstring) diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be index 6e39b8ff0..96cf863d2 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be @@ -77,6 +77,8 @@ class Matter_Commisioning_Context return self.parse_Sigma1(msg) elif msg.opcode == 0x32 return self.parse_Sigma3(msg) + elif msg.opcode == 0x40 + return self.parse_StatusReport(msg) end return false @@ -373,6 +375,12 @@ class Matter_Commisioning_Context end if sigma1.resumptionID == nil || sigma1.initiatorResumeMIC == nil + + # tasmota.log("MTR: fabric="+matter.inspect(session._fabric), 4) + # tasmota.log("MTR: no_private_key="+session._fabric.no_private_key.tohex(), 4) + # tasmota.log("MTR: noc ="+session._fabric.noc.tohex(), 4) + # tasmota.log("MTR: root_ca_cert ="+session._fabric.root_ca_certificate.tohex(), 4) + # Compute Sigma2, p.162 session.resumption_id = crypto.random(16) self.ResponderEph_priv = crypto.random(32) @@ -400,6 +408,7 @@ class Matter_Commisioning_Context session.__Msg1 = sigma1.Msg1 tasmota.log("MTR: * MSG1 = " + session.__Msg1.tohex(), 4) var TranscriptHash = crypto.SHA256().update(session.__Msg1).out() + # tasmota.log("MTR: TranscriptHash =" + TranscriptHash.tohex(), 4) # Compute S2K, p.175 var s2k_info = bytes().fromstring(self.S2K_Info) @@ -560,6 +569,12 @@ class Matter_Commisioning_Context return true end + def parse_StatusReport(msg) + var session = msg.session + tasmota.log("MTR: StatusReport = "+msg.raw[msg.app_payload_idx..].tohex()) + return true + end + ############################################################# # placeholder, nothing to run for now def every_second() diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_Device.be index edc6e6320..b541c07d4 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Device.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Device.be @@ -86,7 +86,7 @@ class Matter_Device self.start_udp(self.UDP_PORT) tasmota.remove_rule("Wifi#Connected", "matter_device_udp") - end, self) + end, "matter_device_udp") end if tasmota.eth()['up'] @@ -95,7 +95,7 @@ class Matter_Device tasmota.add_rule("Eth#Connected", def () self.start_udp(self.UDP_PORT) tasmota.remove_rule("Eth#Connected", "matter_device_udp") - end, self) + end, "matter_device_udp") end self.init_basic_commissioning() @@ -118,7 +118,7 @@ class Matter_Device ############################################################# # Start Basic Commissioning Window def start_basic_commissioning() - self.commissioning_open = tasmota.millis() + 5 * 60 * 1000 + self.commissioning_open = tasmota.millis() + 10 * 60 * 1000 end def stop_basic_commissioning() @@ -537,8 +537,8 @@ class Matter_Device else tasmota.add_rule("Wifi#Connected", def () self._start_mdns_announce(false) - tasmota.remove_rule("Wifi#Connected", "matter_device_mdns") - end, self) + tasmota.remove_rule("Wifi#Connected", "matter_mdns_host") + end, "matter_mdns_host") end if tasmota.eth()['up'] @@ -546,8 +546,8 @@ class Matter_Device else tasmota.add_rule("Eth#Connected", def () self._start_mdns_announce(true) - tasmota.remove_rule("Eth#Connected", "matter_device_mdns") - end, self) + tasmota.remove_rule("Eth#Connected", "matter_mdns_host") + end, "matter_mdns_host") end end @@ -562,7 +562,7 @@ class Matter_Device mdns.start() var services = { - "VP":str(self.vendorid) + "+" + str(self.productid), + # "VP":str(self.vendorid) + "+" + str(self.productid), "D": self.discriminator, "CM":1, # requires passcode "T":0, # no support for TCP @@ -575,10 +575,14 @@ class Matter_Device var eth = tasmota.eth() self.hostname_eth = string.replace(eth.find("mac"), ':', '') if !self.ipv4only - mdns.add_hostname(self.hostname_eth, eth.find('ip6local',''), eth.find('ip',''), eth.find('ip6','')) + # mdns.add_hostname(self.hostname_eth, eth.find('ip6local',''), eth.find('ip',''), eth.find('ip6','')) + tasmota.log(string.format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_eth, eth.find('ip6local',''), eth.find('ip','')), 3) + mdns.add_hostname(self.hostname_eth, eth.find('ip6local',''), eth.find('ip','')) else + tasmota.log(string.format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_eth, eth.find('ip','')), 3) mdns.add_hostname(self.hostname_eth, eth.find('ip','')) end + tasmota.log(string.format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_eth, self.hostname_eth), 3) mdns.add_service("_matterc", "_udp", 5540, services, self.commissioning_instance_eth, self.hostname_eth) tasmota.log(string.format("MTR: starting mDNS on %s '%s' ptr to `%s.local`", is_eth ? "eth" : "wifi", @@ -603,9 +607,13 @@ class Matter_Device self.hostname_wifi = string.replace(wifi.find("mac"), ':', '') if !self.ipv4only mdns.add_hostname(self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip',''), wifi.find('ip6','')) + tasmota.log(string.format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip','')), 3) + mdns.add_hostname(self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip','')) else + tasmota.log(string.format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_eth, wifi.find('ip','')), 3) mdns.add_hostname(self.hostname_wifi, wifi.find('ip','')) end + tasmota.log(string.format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_wifi, self.hostname_wifi), 3) mdns.add_service("_matterc", "_udp", 5540, services, self.commissioning_instance_wifi, self.hostname_wifi) tasmota.log(string.format("MTR: starting mDNS on %s '%s' ptr to `%s.local`", is_eth ? "eth" : "wifi", @@ -619,9 +627,9 @@ class Matter_Device subtype = "_S" + str((self.discriminator & 0xF00) >> 8) tasmota.log("MTR: adding subtype: "+subtype, 3) mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype) - subtype = "_V" + str(self.vendorid) - tasmota.log("MTR: adding subtype: "+subtype, 3) - mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype) + # subtype = "_V" + str(self.vendorid) + # tasmota.log("MTR: adding subtype: "+subtype, 3) + # mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype) subtype = "_CM1" tasmota.log("MTR: adding subtype: "+subtype, 3) mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype) @@ -636,7 +644,7 @@ class Matter_Device ############################################################# # Start UDP mDNS announcements for commissioning for all persisted sessions def mdns_announce_op_discovery_all_fabrics() - for fabric: self.sessions.fabrics + for fabric: self.sessions.active_fabrics() if fabric.get_device_id() && fabric.get_fabric_id() self.mdns_announce_op_discovery(fabric) end diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_Root.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_Root.be index da143d52c..36b98b260 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_Root.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_Root.be @@ -153,35 +153,44 @@ class Matter_Plugin_Root : Matter_Plugin if attribute == 0x0000 # ---------- NOCs / list[NOCStruct] ---------- var nocl = TLV.Matter_TLV_array() # NOCs, p.711 - for loc_session: self.device.sessions.sessions_active() + for loc_fabric: self.device.sessions.active_fabrics() var nocs = nocl.add_struct(nil) - nocs.add_TLV(1, TLV.B2, loc_session.get_noc()) # NOC - nocs.add_TLV(2, TLV.B2, loc_session.get_icac()) # ICAC + nocs.add_TLV(1, TLV.B2, loc_fabric.get_noc()) # NOC + nocs.add_TLV(2, TLV.B2, loc_fabric.get_icac()) # ICAC end return nocl elif attribute == 0x0001 # ---------- Fabrics / list[FabricDescriptorStruct] ---------- var fabrics = TLV.Matter_TLV_array() # Fabrics, p.711 - for loc_session: self.device.sessions.sessions_active() - var root_ca_tlv = TLV.parse(loc_session.get_ca()) + for loc_fabric: self.device.sessions.active_fabrics() + var root_ca_tlv = TLV.parse(loc_fabric.get_ca()) var fab = fabrics.add_struct(nil) # encoding see p.303 fab.add_TLV(1, TLV.B2, root_ca_tlv.findsubval(9)) # RootPublicKey - fab.add_TLV(2, TLV.U2, loc_session.get_admin_vendor()) # VendorID - fab.add_TLV(3, TLV.U8, loc_session.get_fabric_compressed()) # FabricID - fab.add_TLV(4, TLV.U8, loc_session.get_device_id()) # NodeID - fab.add_TLV(5, TLV.UTF1, loc_session.get_fabric_label()) # Label + fab.add_TLV(2, TLV.U2, loc_fabric.get_admin_vendor()) # VendorID + fab.add_TLV(3, TLV.U8, loc_fabric.get_fabric_compressed()) # FabricID + fab.add_TLV(4, TLV.U8, loc_fabric.get_device_id()) # NodeID + fab.add_TLV(5, TLV.UTF1, loc_fabric.get_fabric_label()) # Label end return fabrics elif attribute == 0x0002 # ---------- SupportedFabrics / u1 ---------- return TLV.create_TLV(TLV.U1, matter.Fabric._MAX_CASE) # Max 5 fabrics elif attribute == 0x0003 # ---------- CommissionedFabrics / u1 ---------- - var sessions_active = self.device.sessions.sessions_active() - return TLV.create_TLV(TLV.U1, size(sessions_active)) # number of active sessions + var fabric_actice = self.device.sessions.count_active_fabrics() + return TLV.create_TLV(TLV.U1, fabric_actice) # number of active fabrics elif attribute == 0x0004 # ---------- TrustedRootCertificates / list[octstr] ---------- # TODO elif attribute == 0x0005 # ---------- Current­ FabricIndex / u1 ---------- - var sessions_active = self.device.sessions.sessions_active() - var fabric_index = sessions_active.find(session) - if fabric_index == nil fabric_index = -1 end + var fabric_active = session._fabric + var fabric_index = 0 + var found = false + for fab: self.device.sessions.active_fabrics() + if fab == fabric_active + found = true + break + else + fabric_index += 1 + end + end + if !found fabric_index = -1 end return TLV.create_TLV(TLV.U1, fabric_index + 1) # number of active sessions end @@ -447,6 +456,8 @@ class Matter_Plugin_Root : Matter_Plugin elif command == 0x0006 # ---------- AddNOC ---------- var NOCValue = val.findsubval(0) # octstr max 400 var ICACValue = val.findsubval(1) # octstr max 400 + # Apple sends an empty ICAC instead of a missing attribute, fix this + if size(ICACValue) == 0 ICACValue = nil end var IpkValue = val.findsubval(2) # octstr max 16 var CaseAdminSubject = val.findsubval(3) var AdminVendorId = val.findsubval(4) @@ -470,8 +481,8 @@ class Matter_Plugin_Root : Matter_Plugin return false end # convert fo bytes(8) - if type(fabric_id) == 'int' fabric_id = int64(fabric_id).tobytes() else fabric_id = fabric_id.tobytes() end - if type(deviceid) == 'int' deviceid = int64(deviceid).tobytes() else deviceid = deviceid.tobytes() end + if type(fabric_id) == 'int' fabric_id = int64.fromu32(fabric_id).tobytes() else fabric_id = fabric_id.tobytes() end + if type(deviceid) == 'int' deviceid = int64.fromu32(deviceid).tobytes() else deviceid = deviceid.tobytes() end var root_ca = matter.TLV.parse(session.get_ca()).findsubval(9) # extract public key from ca root_ca = root_ca[1..] # remove first byte as per Matter specification diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Session.be b/lib/libesp32/berry_matter/src/embedded/Matter_Session.be index 1e67a192f..75ee9bbde 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_Session.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_Session.be @@ -81,6 +81,7 @@ class Matter_Fabric : Matter_Expirable def get_fabric_label() return self.fabric_label end def get_admin_subject() return self.admin_subject end def get_admin_vendor() return self.admin_vendor end + def get_ca() return self.root_ca_certificate end ############################################################# # Operational Group Key Derivation, 4.15.2, p.182 @@ -601,12 +602,19 @@ class Matter_Session_Store end end + ############################################################# + # Returns an iterator on active fabrics + def active_fabrics() + self.remove_expired() # clean before + return self.fabrics.persistables() + end + ############################################################# # Count active fabrics # # Count the number of commissionned fabrics, i.e. persisted - def count_active_fabrics(f) - self.remove_expired() # clean before saving + def count_active_fabrics() + self.remove_expired() # clean before return self.fabrics.count_persistables() end diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be b/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be index 5bb974818..0982e6548 100644 --- a/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be +++ b/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be @@ -141,7 +141,7 @@ class Matter_UDPServer packet_read += 1 var from_addr = self.udp_socket.remote_ip var from_port = self.udp_socket.remote_port - tasmota.log(string.format("MTR: UDP received from [%s]:%i", from_addr, from_port), 4) + tasmota.log(string.format("MTR: UDP received from [%s]:%i", from_addr, from_port), 3) if self.dispatch_cb self.dispatch_cb(packet, from_addr, from_port) end diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h index 7c87b3cfd..6b6044781 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h @@ -7,11 +7,11 @@ extern const bclass be_class_Matter_Commisioning_Context; /******************************************************************** -** Solidified function: parse_Pake3 +** Solidified function: parse_PBKDFParamRequest ********************************************************************/ -be_local_closure(Matter_Commisioning_Context_parse_Pake3, /* name */ +be_local_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest, /* name */ be_nested_proto( - 16, /* nstack */ + 14, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -26,53 +26,53 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake3, /* name */ /* K3 */ be_const_int(0), /* K4 */ be_nested_str_weak(protocol_id), /* K5 */ be_nested_str_weak(protocol_error), - /* K6 */ be_nested_str_weak(invalid_X20Pake3_X20message), + /* K6 */ be_nested_str_weak(invalid_X20PBKDFParamRequest_X20message), /* K7 */ be_nested_str_weak(matter), - /* K8 */ be_nested_str_weak(Pake3), + /* K8 */ be_nested_str_weak(PBKDFParamRequest), /* K9 */ be_nested_str_weak(parse), /* K10 */ be_nested_str_weak(raw), /* K11 */ be_nested_str_weak(app_payload_idx), - /* K12 */ be_nested_str_weak(cA), - /* K13 */ be_nested_str_weak(tasmota), - /* K14 */ be_nested_str_weak(log), - /* K15 */ be_nested_str_weak(MTR_X3A_X20received_X20cA_X3D), - /* K16 */ be_nested_str_weak(tohex), - /* K17 */ be_nested_str_weak(spake), - /* K18 */ be_nested_str_weak(invalid_X20cA_X20received), - /* K19 */ be_nested_str_weak(created), - /* K20 */ be_nested_str_weak(rtc), - /* K21 */ be_nested_str_weak(utc), - /* K22 */ be_nested_str_weak(HKDF_SHA256), - /* K23 */ be_nested_str_weak(derive), - /* K24 */ be_nested_str_weak(Ke), - /* K25 */ be_nested_str_weak(fromstring), - /* K26 */ be_nested_str_weak(SEKeys_Info), - /* K27 */ be_nested_str_weak(I2RKey), - /* K28 */ be_nested_str_weak(R2IKey), - /* K29 */ be_nested_str_weak(AttestationChallenge), - /* K30 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A), - /* K31 */ be_nested_str_weak(MTR_X3A_X20session_keys_X3D), - /* K32 */ be_nested_str_weak(MTR_X3A_X20I2RKey_X20_X20_X20_X20_X20_X20_X3D), - /* K33 */ be_nested_str_weak(MTR_X3A_X20R2IKey_X20_X20_X20_X20_X20_X20_X3D), - /* K34 */ be_nested_str_weak(MTR_X3A_X20AC_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X3D), - /* K35 */ be_nested_str_weak(build_response), - /* K36 */ be_nested_str_weak(add), - /* K37 */ be_const_int(2), - /* K38 */ be_nested_str_weak(encode), - /* K39 */ be_nested_str_weak(responder), - /* K40 */ be_nested_str_weak(send_response), - /* K41 */ be_nested_str_weak(remote_ip), - /* K42 */ be_nested_str_weak(remote_port), - /* K43 */ be_nested_str_weak(add_session), - /* K44 */ be_nested_str_weak(future_local_session_id), - /* K45 */ be_nested_str_weak(future_initiator_session_id), + /* K12 */ be_nested_str_weak(session), + /* K13 */ be_nested_str_weak(set_mode_PASE), + /* K14 */ be_const_int(2147483647), + /* K15 */ be_nested_str_weak(passcodeId), + /* K16 */ be_nested_str_weak(non_X2Dzero_X20passcode_X20id), + /* K17 */ be_nested_str_weak(future_initiator_session_id), + /* K18 */ be_nested_str_weak(initiator_session_id), + /* K19 */ be_nested_str_weak(future_local_session_id), + /* K20 */ be_nested_str_weak(device), + /* K21 */ be_nested_str_weak(sessions), + /* K22 */ be_nested_str_weak(gen_local_session_id), + /* K23 */ be_nested_str_weak(tasmota), + /* K24 */ be_nested_str_weak(log), + /* K25 */ be_nested_str_weak(MTR_X3A_X20Loc_session_X3D), + /* K26 */ be_nested_str_weak(PBKDFParamResponse), + /* K27 */ be_nested_str_weak(initiatorRandom), + /* K28 */ be_nested_str_weak(responderRandom), + /* K29 */ be_nested_str_weak(random), + /* K30 */ be_nested_str_weak(responderSessionId), + /* K31 */ be_nested_str_weak(pbkdf_parameters_salt), + /* K32 */ be_nested_str_weak(salt), + /* K33 */ be_nested_str_weak(pbkdf_parameters_iterations), + /* K34 */ be_nested_str_weak(iterations), + /* K35 */ be_nested_str_weak(MTR_X3A_X20pbkdfparamresp_X3A_X20), + /* K36 */ be_nested_str_weak(inspect), + /* K37 */ be_nested_str_weak(encode), + /* K38 */ be_nested_str_weak(MTR_X3A_X20pbkdfparamresp_raw_X3A_X20), + /* K39 */ be_nested_str_weak(tohex), + /* K40 */ be_nested_str_weak(build_response), + /* K41 */ be_nested_str_weak(responder), + /* K42 */ be_nested_str_weak(send_response), + /* K43 */ be_nested_str_weak(remote_ip), + /* K44 */ be_nested_str_weak(remote_port), + /* K45 */ be_nested_str_weak(message_counter), }), - be_str_weak(parse_Pake3), + be_str_weak(parse_PBKDFParamRequest), &be_const_str_solidified, - ( &(const binstruction[146]) { /* code */ + ( &(const binstruction[98]) { /* code */ 0xA40A0000, // 0000 IMPORT R2 K0 0x880C0301, // 0001 GETMBR R3 R1 K1 - 0x54120023, // 0002 LDINT R4 36 + 0x5412001F, // 0002 LDINT R4 32 0x200C0604, // 0003 NE R3 R3 R4 0x740E0005, // 0004 JMPT R3 #000B 0x880C0302, // 0005 GETMBR R3 R1 K2 @@ -89,133 +89,123 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake3, /* name */ 0x8814030A, // 0010 GETMBR R5 R1 K10 0x8818030B, // 0011 GETMBR R6 R1 K11 0x7C0C0600, // 0012 CALL R3 3 - 0x8810070C, // 0013 GETMBR R4 R3 K12 - 0x90021804, // 0014 SETMBR R0 K12 R4 - 0xB8121A00, // 0015 GETNGBL R4 K13 - 0x8C10090E, // 0016 GETMET R4 R4 K14 - 0x8818010C, // 0017 GETMBR R6 R0 K12 - 0x8C180D10, // 0018 GETMET R6 R6 K16 - 0x7C180200, // 0019 CALL R6 1 - 0x001A1E06, // 001A ADD R6 K15 R6 - 0x541E0003, // 001B LDINT R7 4 - 0x7C100600, // 001C CALL R4 3 - 0x8810010C, // 001D GETMBR R4 R0 K12 - 0x88140111, // 001E GETMBR R5 R0 K17 - 0x88140B0C, // 001F GETMBR R5 R5 K12 - 0x20100805, // 0020 NE R4 R4 R5 - 0x78120000, // 0021 JMPF R4 #0023 - 0xB0060B12, // 0022 RAISE 1 K5 K18 - 0xB8121A00, // 0023 GETNGBL R4 K13 - 0x8C100914, // 0024 GETMET R4 R4 K20 - 0x7C100200, // 0025 CALL R4 1 - 0x94100915, // 0026 GETIDX R4 R4 K21 - 0x90022604, // 0027 SETMBR R0 K19 R4 - 0x8C100516, // 0028 GETMET R4 R2 K22 - 0x7C100200, // 0029 CALL R4 1 - 0x8C100917, // 002A GETMET R4 R4 K23 - 0x88180118, // 002B GETMBR R6 R0 K24 - 0x601C0015, // 002C GETGBL R7 G21 - 0x7C1C0000, // 002D CALL R7 0 - 0x60200015, // 002E GETGBL R8 G21 - 0x7C200000, // 002F CALL R8 0 - 0x8C201119, // 0030 GETMET R8 R8 K25 - 0x8828011A, // 0031 GETMBR R10 R0 K26 - 0x7C200400, // 0032 CALL R8 2 - 0x5426002F, // 0033 LDINT R9 48 - 0x7C100A00, // 0034 CALL R4 5 - 0x5416000E, // 0035 LDINT R5 15 - 0x40160605, // 0036 CONNECT R5 K3 R5 - 0x94140805, // 0037 GETIDX R5 R4 R5 - 0x90023605, // 0038 SETMBR R0 K27 R5 - 0x5416000F, // 0039 LDINT R5 16 - 0x541A001E, // 003A LDINT R6 31 - 0x40140A06, // 003B CONNECT R5 R5 R6 - 0x94140805, // 003C GETIDX R5 R4 R5 - 0x90023805, // 003D SETMBR R0 K28 R5 - 0x5416001F, // 003E LDINT R5 32 - 0x541A002E, // 003F LDINT R6 47 - 0x40140A06, // 0040 CONNECT R5 R5 R6 - 0x94140805, // 0041 GETIDX R5 R4 R5 - 0x90023A05, // 0042 SETMBR R0 K29 R5 - 0xB8161A00, // 0043 GETNGBL R5 K13 - 0x8C140B0E, // 0044 GETMET R5 R5 K14 - 0x581C001E, // 0045 LDCONST R7 K30 - 0x54220003, // 0046 LDINT R8 4 - 0x7C140600, // 0047 CALL R5 3 - 0xB8161A00, // 0048 GETNGBL R5 K13 - 0x8C140B0E, // 0049 GETMET R5 R5 K14 - 0x8C1C0910, // 004A GETMET R7 R4 K16 - 0x7C1C0200, // 004B CALL R7 1 - 0x001E3E07, // 004C ADD R7 K31 R7 - 0x54220003, // 004D LDINT R8 4 - 0x7C140600, // 004E CALL R5 3 - 0xB8161A00, // 004F GETNGBL R5 K13 - 0x8C140B0E, // 0050 GETMET R5 R5 K14 - 0x881C011B, // 0051 GETMBR R7 R0 K27 - 0x8C1C0F10, // 0052 GETMET R7 R7 K16 - 0x7C1C0200, // 0053 CALL R7 1 - 0x001E4007, // 0054 ADD R7 K32 R7 - 0x54220003, // 0055 LDINT R8 4 - 0x7C140600, // 0056 CALL R5 3 - 0xB8161A00, // 0057 GETNGBL R5 K13 - 0x8C140B0E, // 0058 GETMET R5 R5 K14 - 0x881C011C, // 0059 GETMBR R7 R0 K28 - 0x8C1C0F10, // 005A GETMET R7 R7 K16 - 0x7C1C0200, // 005B CALL R7 1 - 0x001E4207, // 005C ADD R7 K33 R7 - 0x54220003, // 005D LDINT R8 4 - 0x7C140600, // 005E CALL R5 3 - 0xB8161A00, // 005F GETNGBL R5 K13 - 0x8C140B0E, // 0060 GETMET R5 R5 K14 - 0x881C011D, // 0061 GETMBR R7 R0 K29 - 0x8C1C0F10, // 0062 GETMET R7 R7 K16 - 0x7C1C0200, // 0063 CALL R7 1 - 0x001E4407, // 0064 ADD R7 K34 R7 - 0x54220003, // 0065 LDINT R8 4 - 0x7C140600, // 0066 CALL R5 3 - 0xB8161A00, // 0067 GETNGBL R5 K13 - 0x8C140B0E, // 0068 GETMET R5 R5 K14 - 0x581C001E, // 0069 LDCONST R7 K30 - 0x54220003, // 006A LDINT R8 4 - 0x7C140600, // 006B CALL R5 3 - 0x8C140323, // 006C GETMET R5 R1 K35 - 0x541E003F, // 006D LDINT R7 64 - 0x50200000, // 006E LDBOOL R8 0 0 - 0x7C140600, // 006F CALL R5 3 - 0x60180015, // 0070 GETGBL R6 G21 - 0x7C180000, // 0071 CALL R6 0 - 0x8C1C0D24, // 0072 GETMET R7 R6 K36 - 0x58240003, // 0073 LDCONST R9 K3 - 0x58280025, // 0074 LDCONST R10 K37 - 0x7C1C0600, // 0075 CALL R7 3 - 0x8C1C0D24, // 0076 GETMET R7 R6 K36 - 0x58240003, // 0077 LDCONST R9 K3 - 0x542A0003, // 0078 LDINT R10 4 - 0x7C1C0600, // 0079 CALL R7 3 - 0x8C1C0D24, // 007A GETMET R7 R6 K36 - 0x58240003, // 007B LDCONST R9 K3 - 0x542A0003, // 007C LDINT R10 4 - 0x7C1C0600, // 007D CALL R7 3 - 0x8C1C0B26, // 007E GETMET R7 R5 K38 - 0x5C240C00, // 007F MOVE R9 R6 - 0x7C1C0400, // 0080 CALL R7 2 - 0x88200127, // 0081 GETMBR R8 R0 K39 - 0x8C201128, // 0082 GETMET R8 R8 K40 - 0x5C280E00, // 0083 MOVE R10 R7 - 0x882C0329, // 0084 GETMBR R11 R1 K41 - 0x8830032A, // 0085 GETMBR R12 R1 K42 - 0x4C340000, // 0086 LDNIL R13 - 0x7C200A00, // 0087 CALL R8 5 - 0x88200127, // 0088 GETMBR R8 R0 K39 - 0x8C20112B, // 0089 GETMET R8 R8 K43 - 0x8828012C, // 008A GETMBR R10 R0 K44 - 0x882C012D, // 008B GETMBR R11 R0 K45 - 0x8830011B, // 008C GETMBR R12 R0 K27 - 0x8834011C, // 008D GETMBR R13 R0 K28 - 0x8838011D, // 008E GETMBR R14 R0 K29 - 0x883C0113, // 008F GETMBR R15 R0 K19 - 0x7C200E00, // 0090 CALL R8 7 - 0x80000000, // 0091 RET 0 + 0x8810030C, // 0013 GETMBR R4 R1 K12 + 0x8C10090D, // 0014 GETMET R4 R4 K13 + 0x7C100200, // 0015 CALL R4 1 + 0x8810030B, // 0016 GETMBR R4 R1 K11 + 0x4010090E, // 0017 CONNECT R4 R4 K14 + 0x8814030A, // 0018 GETMBR R5 R1 K10 + 0x94100A04, // 0019 GETIDX R4 R5 R4 + 0x90021004, // 001A SETMBR R0 K8 R4 + 0x8810070F, // 001B GETMBR R4 R3 K15 + 0x20100903, // 001C NE R4 R4 K3 + 0x78120000, // 001D JMPF R4 #001F + 0xB0060B10, // 001E RAISE 1 K5 K16 + 0x88100712, // 001F GETMBR R4 R3 K18 + 0x90022204, // 0020 SETMBR R0 K17 R4 + 0x88100114, // 0021 GETMBR R4 R0 K20 + 0x88100915, // 0022 GETMBR R4 R4 K21 + 0x8C100916, // 0023 GETMET R4 R4 K22 + 0x7C100200, // 0024 CALL R4 1 + 0x90022604, // 0025 SETMBR R0 K19 R4 + 0xB8122E00, // 0026 GETNGBL R4 K23 + 0x8C100918, // 0027 GETMET R4 R4 K24 + 0x60180008, // 0028 GETGBL R6 G8 + 0x881C0113, // 0029 GETMBR R7 R0 K19 + 0x7C180200, // 002A CALL R6 1 + 0x001A3206, // 002B ADD R6 K25 R6 + 0x7C100400, // 002C CALL R4 2 + 0xB8120E00, // 002D GETNGBL R4 K7 + 0x8C10091A, // 002E GETMET R4 R4 K26 + 0x7C100200, // 002F CALL R4 1 + 0x8814071B, // 0030 GETMBR R5 R3 K27 + 0x90123605, // 0031 SETMBR R4 K27 R5 + 0x8C14051D, // 0032 GETMET R5 R2 K29 + 0x541E001F, // 0033 LDINT R7 32 + 0x7C140400, // 0034 CALL R5 2 + 0x90123805, // 0035 SETMBR R4 K28 R5 + 0x88140113, // 0036 GETMBR R5 R0 K19 + 0x90123C05, // 0037 SETMBR R4 K30 R5 + 0x88140114, // 0038 GETMBR R5 R0 K20 + 0x88140B20, // 0039 GETMBR R5 R5 K32 + 0x90123E05, // 003A SETMBR R4 K31 R5 + 0x88140114, // 003B GETMBR R5 R0 K20 + 0x88140B22, // 003C GETMBR R5 R5 K34 + 0x90124205, // 003D SETMBR R4 K33 R5 + 0xB8162E00, // 003E GETNGBL R5 K23 + 0x8C140B18, // 003F GETMET R5 R5 K24 + 0x601C0008, // 0040 GETGBL R7 G8 + 0xB8220E00, // 0041 GETNGBL R8 K7 + 0x8C201124, // 0042 GETMET R8 R8 K36 + 0x5C280800, // 0043 MOVE R10 R4 + 0x7C200400, // 0044 CALL R8 2 + 0x7C1C0200, // 0045 CALL R7 1 + 0x001E4607, // 0046 ADD R7 K35 R7 + 0x54220003, // 0047 LDINT R8 4 + 0x7C140600, // 0048 CALL R5 3 + 0x8C140925, // 0049 GETMET R5 R4 K37 + 0x7C140200, // 004A CALL R5 1 + 0xB81A2E00, // 004B GETNGBL R6 K23 + 0x8C180D18, // 004C GETMET R6 R6 K24 + 0x8C200B27, // 004D GETMET R8 R5 K39 + 0x7C200200, // 004E CALL R8 1 + 0x00224C08, // 004F ADD R8 K38 R8 + 0x54260003, // 0050 LDINT R9 4 + 0x7C180600, // 0051 CALL R6 3 + 0x90023405, // 0052 SETMBR R0 K26 R5 + 0x8C180328, // 0053 GETMET R6 R1 K40 + 0x54220020, // 0054 LDINT R8 33 + 0x50240200, // 0055 LDBOOL R9 1 0 + 0x7C180600, // 0056 CALL R6 3 + 0x8C1C0D25, // 0057 GETMET R7 R6 K37 + 0x5C240A00, // 0058 MOVE R9 R5 + 0x7C1C0400, // 0059 CALL R7 2 + 0x88200129, // 005A GETMBR R8 R0 K41 + 0x8C20112A, // 005B GETMET R8 R8 K42 + 0x5C280E00, // 005C MOVE R10 R7 + 0x882C032B, // 005D GETMBR R11 R1 K43 + 0x8830032C, // 005E GETMBR R12 R1 K44 + 0x88340D2D, // 005F GETMBR R13 R6 K45 + 0x7C200A00, // 0060 CALL R8 5 + 0x80000000, // 0061 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(Matter_Commisioning_Context_init, /* name */ + be_nested_proto( + 6, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(crypto), + /* K1 */ be_nested_str_weak(responder), + /* K2 */ be_nested_str_weak(device), + /* K3 */ be_nested_str_weak(y), + /* K4 */ be_nested_str_weak(random), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[ 9]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x90020201, // 0001 SETMBR R0 K1 R1 + 0x880C0302, // 0002 GETMBR R3 R1 K2 + 0x90020403, // 0003 SETMBR R0 K2 R3 + 0x8C0C0504, // 0004 GETMET R3 R2 K4 + 0x5416001F, // 0005 LDINT R5 32 + 0x7C0C0400, // 0006 CALL R3 2 + 0x90020603, // 0007 SETMBR R0 K3 R3 + 0x80000000, // 0008 RET 0 }) ) ); @@ -633,6 +623,790 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake1, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: parse_Pake3 +********************************************************************/ +be_local_closure(Matter_Commisioning_Context_parse_Pake3, /* name */ + be_nested_proto( + 16, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[46]) { /* constants */ + /* K0 */ be_nested_str_weak(crypto), + /* K1 */ be_nested_str_weak(opcode), + /* K2 */ be_nested_str_weak(local_session_id), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(protocol_id), + /* K5 */ be_nested_str_weak(protocol_error), + /* K6 */ be_nested_str_weak(invalid_X20Pake3_X20message), + /* K7 */ be_nested_str_weak(matter), + /* K8 */ be_nested_str_weak(Pake3), + /* K9 */ be_nested_str_weak(parse), + /* K10 */ be_nested_str_weak(raw), + /* K11 */ be_nested_str_weak(app_payload_idx), + /* K12 */ be_nested_str_weak(cA), + /* K13 */ be_nested_str_weak(tasmota), + /* K14 */ be_nested_str_weak(log), + /* K15 */ be_nested_str_weak(MTR_X3A_X20received_X20cA_X3D), + /* K16 */ be_nested_str_weak(tohex), + /* K17 */ be_nested_str_weak(spake), + /* K18 */ be_nested_str_weak(invalid_X20cA_X20received), + /* K19 */ be_nested_str_weak(created), + /* K20 */ be_nested_str_weak(rtc), + /* K21 */ be_nested_str_weak(utc), + /* K22 */ be_nested_str_weak(HKDF_SHA256), + /* K23 */ be_nested_str_weak(derive), + /* K24 */ be_nested_str_weak(Ke), + /* K25 */ be_nested_str_weak(fromstring), + /* K26 */ be_nested_str_weak(SEKeys_Info), + /* K27 */ be_nested_str_weak(I2RKey), + /* K28 */ be_nested_str_weak(R2IKey), + /* K29 */ be_nested_str_weak(AttestationChallenge), + /* K30 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A), + /* K31 */ be_nested_str_weak(MTR_X3A_X20session_keys_X3D), + /* K32 */ be_nested_str_weak(MTR_X3A_X20I2RKey_X20_X20_X20_X20_X20_X20_X3D), + /* K33 */ be_nested_str_weak(MTR_X3A_X20R2IKey_X20_X20_X20_X20_X20_X20_X3D), + /* K34 */ be_nested_str_weak(MTR_X3A_X20AC_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X3D), + /* K35 */ be_nested_str_weak(build_response), + /* K36 */ be_nested_str_weak(add), + /* K37 */ be_const_int(2), + /* K38 */ be_nested_str_weak(encode), + /* K39 */ be_nested_str_weak(responder), + /* K40 */ be_nested_str_weak(send_response), + /* K41 */ be_nested_str_weak(remote_ip), + /* K42 */ be_nested_str_weak(remote_port), + /* K43 */ be_nested_str_weak(add_session), + /* K44 */ be_nested_str_weak(future_local_session_id), + /* K45 */ be_nested_str_weak(future_initiator_session_id), + }), + be_str_weak(parse_Pake3), + &be_const_str_solidified, + ( &(const binstruction[146]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x880C0301, // 0001 GETMBR R3 R1 K1 + 0x54120023, // 0002 LDINT R4 36 + 0x200C0604, // 0003 NE R3 R3 R4 + 0x740E0005, // 0004 JMPT R3 #000B + 0x880C0302, // 0005 GETMBR R3 R1 K2 + 0x200C0703, // 0006 NE R3 R3 K3 + 0x740E0002, // 0007 JMPT R3 #000B + 0x880C0304, // 0008 GETMBR R3 R1 K4 + 0x200C0703, // 0009 NE R3 R3 K3 + 0x780E0000, // 000A JMPF R3 #000C + 0xB0060B06, // 000B RAISE 1 K5 K6 + 0xB80E0E00, // 000C GETNGBL R3 K7 + 0x8C0C0708, // 000D GETMET R3 R3 K8 + 0x7C0C0200, // 000E CALL R3 1 + 0x8C0C0709, // 000F GETMET R3 R3 K9 + 0x8814030A, // 0010 GETMBR R5 R1 K10 + 0x8818030B, // 0011 GETMBR R6 R1 K11 + 0x7C0C0600, // 0012 CALL R3 3 + 0x8810070C, // 0013 GETMBR R4 R3 K12 + 0x90021804, // 0014 SETMBR R0 K12 R4 + 0xB8121A00, // 0015 GETNGBL R4 K13 + 0x8C10090E, // 0016 GETMET R4 R4 K14 + 0x8818010C, // 0017 GETMBR R6 R0 K12 + 0x8C180D10, // 0018 GETMET R6 R6 K16 + 0x7C180200, // 0019 CALL R6 1 + 0x001A1E06, // 001A ADD R6 K15 R6 + 0x541E0003, // 001B LDINT R7 4 + 0x7C100600, // 001C CALL R4 3 + 0x8810010C, // 001D GETMBR R4 R0 K12 + 0x88140111, // 001E GETMBR R5 R0 K17 + 0x88140B0C, // 001F GETMBR R5 R5 K12 + 0x20100805, // 0020 NE R4 R4 R5 + 0x78120000, // 0021 JMPF R4 #0023 + 0xB0060B12, // 0022 RAISE 1 K5 K18 + 0xB8121A00, // 0023 GETNGBL R4 K13 + 0x8C100914, // 0024 GETMET R4 R4 K20 + 0x7C100200, // 0025 CALL R4 1 + 0x94100915, // 0026 GETIDX R4 R4 K21 + 0x90022604, // 0027 SETMBR R0 K19 R4 + 0x8C100516, // 0028 GETMET R4 R2 K22 + 0x7C100200, // 0029 CALL R4 1 + 0x8C100917, // 002A GETMET R4 R4 K23 + 0x88180118, // 002B GETMBR R6 R0 K24 + 0x601C0015, // 002C GETGBL R7 G21 + 0x7C1C0000, // 002D CALL R7 0 + 0x60200015, // 002E GETGBL R8 G21 + 0x7C200000, // 002F CALL R8 0 + 0x8C201119, // 0030 GETMET R8 R8 K25 + 0x8828011A, // 0031 GETMBR R10 R0 K26 + 0x7C200400, // 0032 CALL R8 2 + 0x5426002F, // 0033 LDINT R9 48 + 0x7C100A00, // 0034 CALL R4 5 + 0x5416000E, // 0035 LDINT R5 15 + 0x40160605, // 0036 CONNECT R5 K3 R5 + 0x94140805, // 0037 GETIDX R5 R4 R5 + 0x90023605, // 0038 SETMBR R0 K27 R5 + 0x5416000F, // 0039 LDINT R5 16 + 0x541A001E, // 003A LDINT R6 31 + 0x40140A06, // 003B CONNECT R5 R5 R6 + 0x94140805, // 003C GETIDX R5 R4 R5 + 0x90023805, // 003D SETMBR R0 K28 R5 + 0x5416001F, // 003E LDINT R5 32 + 0x541A002E, // 003F LDINT R6 47 + 0x40140A06, // 0040 CONNECT R5 R5 R6 + 0x94140805, // 0041 GETIDX R5 R4 R5 + 0x90023A05, // 0042 SETMBR R0 K29 R5 + 0xB8161A00, // 0043 GETNGBL R5 K13 + 0x8C140B0E, // 0044 GETMET R5 R5 K14 + 0x581C001E, // 0045 LDCONST R7 K30 + 0x54220003, // 0046 LDINT R8 4 + 0x7C140600, // 0047 CALL R5 3 + 0xB8161A00, // 0048 GETNGBL R5 K13 + 0x8C140B0E, // 0049 GETMET R5 R5 K14 + 0x8C1C0910, // 004A GETMET R7 R4 K16 + 0x7C1C0200, // 004B CALL R7 1 + 0x001E3E07, // 004C ADD R7 K31 R7 + 0x54220003, // 004D LDINT R8 4 + 0x7C140600, // 004E CALL R5 3 + 0xB8161A00, // 004F GETNGBL R5 K13 + 0x8C140B0E, // 0050 GETMET R5 R5 K14 + 0x881C011B, // 0051 GETMBR R7 R0 K27 + 0x8C1C0F10, // 0052 GETMET R7 R7 K16 + 0x7C1C0200, // 0053 CALL R7 1 + 0x001E4007, // 0054 ADD R7 K32 R7 + 0x54220003, // 0055 LDINT R8 4 + 0x7C140600, // 0056 CALL R5 3 + 0xB8161A00, // 0057 GETNGBL R5 K13 + 0x8C140B0E, // 0058 GETMET R5 R5 K14 + 0x881C011C, // 0059 GETMBR R7 R0 K28 + 0x8C1C0F10, // 005A GETMET R7 R7 K16 + 0x7C1C0200, // 005B CALL R7 1 + 0x001E4207, // 005C ADD R7 K33 R7 + 0x54220003, // 005D LDINT R8 4 + 0x7C140600, // 005E CALL R5 3 + 0xB8161A00, // 005F GETNGBL R5 K13 + 0x8C140B0E, // 0060 GETMET R5 R5 K14 + 0x881C011D, // 0061 GETMBR R7 R0 K29 + 0x8C1C0F10, // 0062 GETMET R7 R7 K16 + 0x7C1C0200, // 0063 CALL R7 1 + 0x001E4407, // 0064 ADD R7 K34 R7 + 0x54220003, // 0065 LDINT R8 4 + 0x7C140600, // 0066 CALL R5 3 + 0xB8161A00, // 0067 GETNGBL R5 K13 + 0x8C140B0E, // 0068 GETMET R5 R5 K14 + 0x581C001E, // 0069 LDCONST R7 K30 + 0x54220003, // 006A LDINT R8 4 + 0x7C140600, // 006B CALL R5 3 + 0x8C140323, // 006C GETMET R5 R1 K35 + 0x541E003F, // 006D LDINT R7 64 + 0x50200000, // 006E LDBOOL R8 0 0 + 0x7C140600, // 006F CALL R5 3 + 0x60180015, // 0070 GETGBL R6 G21 + 0x7C180000, // 0071 CALL R6 0 + 0x8C1C0D24, // 0072 GETMET R7 R6 K36 + 0x58240003, // 0073 LDCONST R9 K3 + 0x58280025, // 0074 LDCONST R10 K37 + 0x7C1C0600, // 0075 CALL R7 3 + 0x8C1C0D24, // 0076 GETMET R7 R6 K36 + 0x58240003, // 0077 LDCONST R9 K3 + 0x542A0003, // 0078 LDINT R10 4 + 0x7C1C0600, // 0079 CALL R7 3 + 0x8C1C0D24, // 007A GETMET R7 R6 K36 + 0x58240003, // 007B LDCONST R9 K3 + 0x542A0003, // 007C LDINT R10 4 + 0x7C1C0600, // 007D CALL R7 3 + 0x8C1C0B26, // 007E GETMET R7 R5 K38 + 0x5C240C00, // 007F MOVE R9 R6 + 0x7C1C0400, // 0080 CALL R7 2 + 0x88200127, // 0081 GETMBR R8 R0 K39 + 0x8C201128, // 0082 GETMET R8 R8 K40 + 0x5C280E00, // 0083 MOVE R10 R7 + 0x882C0329, // 0084 GETMBR R11 R1 K41 + 0x8830032A, // 0085 GETMBR R12 R1 K42 + 0x4C340000, // 0086 LDNIL R13 + 0x7C200A00, // 0087 CALL R8 5 + 0x88200127, // 0088 GETMBR R8 R0 K39 + 0x8C20112B, // 0089 GETMET R8 R8 K43 + 0x8828012C, // 008A GETMBR R10 R0 K44 + 0x882C012D, // 008B GETMBR R11 R0 K45 + 0x8830011B, // 008C GETMBR R12 R0 K27 + 0x8834011C, // 008D GETMBR R13 R0 K28 + 0x8838011D, // 008E GETMBR R14 R0 K29 + 0x883C0113, // 008F GETMBR R15 R0 K19 + 0x7C200E00, // 0090 CALL R8 7 + 0x80000000, // 0091 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: parse_Sigma3 +********************************************************************/ +be_local_closure(Matter_Commisioning_Context_parse_Sigma3, /* name */ + be_nested_proto( + 38, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[95]) { /* constants */ + /* K0 */ be_nested_str_weak(crypto), + /* K1 */ be_nested_str_weak(opcode), + /* K2 */ be_nested_str_weak(local_session_id), + /* K3 */ be_const_int(0), + /* K4 */ be_nested_str_weak(protocol_id), + /* K5 */ be_nested_str_weak(protocol_error), + /* K6 */ be_nested_str_weak(invalid_X20Pake1_X20message), + /* K7 */ be_nested_str_weak(session), + /* K8 */ be_nested_str_weak(matter), + /* K9 */ be_nested_str_weak(Sigma3), + /* K10 */ be_nested_str_weak(parse), + /* K11 */ be_nested_str_weak(raw), + /* K12 */ be_nested_str_weak(app_payload_idx), + /* K13 */ be_nested_str_weak(tasmota), + /* K14 */ be_nested_str_weak(log), + /* K15 */ be_nested_str_weak(_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A), + /* K16 */ be_nested_str_weak(SHA256), + /* K17 */ be_nested_str_weak(update), + /* K18 */ be_nested_str_weak(__Msg1), + /* K19 */ be_nested_str_weak(__Msg2), + /* K20 */ be_nested_str_weak(out), + /* K21 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20session_X20_X20_X20_X20_X20_X20_X20_X3D_X20), + /* K22 */ be_nested_str_weak(MTR_X3A_X20session_X2Eipk_epoch_key_X20), + /* K23 */ be_nested_str_weak(get_ipk_epoch_key), + /* K24 */ be_nested_str_weak(MTR_X3A_X20session_X2Efabric_compressed_X20), + /* K25 */ be_nested_str_weak(get_fabric_compressed), + /* K26 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20ipk_group_key_X20_X3D_X20), + /* K27 */ be_nested_str_weak(get_ipk_group_key), + /* K28 */ be_nested_str_weak(tohex), + /* K29 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20TranscriptHash_X3D_X20), + /* K30 */ be_nested_str_weak(fromstring), + /* K31 */ be_nested_str_weak(S3K_Info), + /* K32 */ be_nested_str_weak(HKDF_SHA256), + /* K33 */ be_nested_str_weak(derive), + /* K34 */ be_nested_str_weak(shared_secret), + /* K35 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20s3k_salt_X20_X20_X20_X20_X20_X20_X3D_X20), + /* K36 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20s3k_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X3D_X20), + /* K37 */ be_nested_str_weak(TBEData3Encrypted), + /* K38 */ be_const_int(2147483647), + /* K39 */ be_nested_str_weak(AES_CCM), + /* K40 */ be_nested_str_weak(TBEData3_Nonce), + /* K41 */ be_nested_str_weak(decrypt), + /* K42 */ be_nested_str_weak(tag), + /* K43 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20TBEData3_X20_X20_X20_X20_X20_X20_X3D_X20), + /* K44 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20TBETag3_X20_X20_X20_X20_X20_X20_X20_X3D_X20), + /* K45 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20tag_sent_X20_X20_X20_X20_X20_X20_X3D_X20), + /* K46 */ be_nested_str_weak(value_error), + /* K47 */ be_nested_str_weak(tag_X20do_X20not_X20match), + /* K48 */ be_nested_str_weak(TLV), + /* K49 */ be_nested_str_weak(findsubval), + /* K50 */ be_const_int(1), + /* K51 */ be_const_int(2), + /* K52 */ be_const_int(3), + /* K53 */ be_nested_str_weak(MTR_X3A_X20initiatorNOCTLV_X20_X3D_X20), + /* K54 */ be_nested_str_weak(findsub), + /* K55 */ be_nested_str_weak(int), + /* K56 */ be_nested_str_weak(int64), + /* K57 */ be_nested_str_weak(peer_node_id), + /* K58 */ be_nested_str_weak(tobytes), + /* K59 */ be_nested_str_weak(MTR_X3A_X20initiatorFabricId_X3D), + /* K60 */ be_nested_str_weak(Matter_TLV_struct), + /* K61 */ be_nested_str_weak(add_TLV), + /* K62 */ be_nested_str_weak(B1), + /* K63 */ be_nested_str_weak(initiatorEph_pub), + /* K64 */ be_nested_str_weak(ResponderEph_pub), + /* K65 */ be_nested_str_weak(encode), + /* K66 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20initiatorNOCPubKey_X20_X20_X20_X20_X20_X20_X3D_X20), + /* K67 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20ec_signature_X20_X20_X20_X20_X20_X20_X3D_X20), + /* K68 */ be_nested_str_weak(EC_P256), + /* K69 */ be_nested_str_weak(ecdsa_verify_sha256), + /* K70 */ be_nested_str_weak(sigma3_tbs_X20does_X20not_X20have_X20a_X20valid_X20signature), + /* K71 */ be_nested_str_weak(MTR_X3A_X20Sigma3_X20verified_X2C_X20computing_X20new_X20keys), + /* K72 */ be_nested_str_weak(Msg3), + /* K73 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A), + /* K74 */ be_nested_str_weak(MTR_X3A_X20shared_secret_X20_X3D), + /* K75 */ be_nested_str_weak(MTR_X3A_X20ipk_X20_X2B_X20hash_X20_X20_X20_X20_X3D), + /* K76 */ be_nested_str_weak(SEKeys_Info), + /* K77 */ be_nested_str_weak(rtc), + /* K78 */ be_nested_str_weak(utc), + /* K79 */ be_nested_str_weak(MTR_X3A_X20I2RKey_X20_X20_X20_X20_X20_X20_X3D), + /* K80 */ be_nested_str_weak(MTR_X3A_X20R2IKey_X20_X20_X20_X20_X20_X20_X3D), + /* K81 */ be_nested_str_weak(MTR_X3A_X20AC_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X3D), + /* K82 */ be_nested_str_weak(build_response), + /* K83 */ be_nested_str_weak(add), + /* K84 */ be_nested_str_weak(responder), + /* K85 */ be_nested_str_weak(send_response), + /* K86 */ be_nested_str_weak(remote_ip), + /* K87 */ be_nested_str_weak(remote_port), + /* K88 */ be_nested_str_weak(message_counter), + /* K89 */ be_nested_str_weak(close), + /* K90 */ be_nested_str_weak(set_keys), + /* K91 */ be_nested_str_weak(set_persist), + /* K92 */ be_nested_str_weak(set_no_expiration), + /* K93 */ be_nested_str_weak(persist_to_fabric), + /* K94 */ be_nested_str_weak(save), + }), + be_str_weak(parse_Sigma3), + &be_const_str_solidified, + ( &(const binstruction[449]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x880C0301, // 0001 GETMBR R3 R1 K1 + 0x54120031, // 0002 LDINT R4 50 + 0x200C0604, // 0003 NE R3 R3 R4 + 0x740E0005, // 0004 JMPT R3 #000B + 0x880C0302, // 0005 GETMBR R3 R1 K2 + 0x200C0703, // 0006 NE R3 R3 K3 + 0x740E0002, // 0007 JMPT R3 #000B + 0x880C0304, // 0008 GETMBR R3 R1 K4 + 0x200C0703, // 0009 NE R3 R3 K3 + 0x780E0000, // 000A JMPF R3 #000C + 0xB0060B06, // 000B RAISE 1 K5 K6 + 0x880C0307, // 000C GETMBR R3 R1 K7 + 0xB8121000, // 000D GETNGBL R4 K8 + 0x8C100909, // 000E GETMET R4 R4 K9 + 0x7C100200, // 000F CALL R4 1 + 0x8C10090A, // 0010 GETMET R4 R4 K10 + 0x8818030B, // 0011 GETMBR R6 R1 K11 + 0x881C030C, // 0012 GETMBR R7 R1 K12 + 0x7C100600, // 0013 CALL R4 3 + 0xB8161A00, // 0014 GETNGBL R5 K13 + 0x8C140B0E, // 0015 GETMET R5 R5 K14 + 0x581C000F, // 0016 LDCONST R7 K15 + 0x54220003, // 0017 LDINT R8 4 + 0x7C140600, // 0018 CALL R5 3 + 0x8C140510, // 0019 GETMET R5 R2 K16 + 0x7C140200, // 001A CALL R5 1 + 0x8C140B11, // 001B GETMET R5 R5 K17 + 0x881C0712, // 001C GETMBR R7 R3 K18 + 0x7C140400, // 001D CALL R5 2 + 0x8C140B11, // 001E GETMET R5 R5 K17 + 0x881C0713, // 001F GETMBR R7 R3 K19 + 0x7C140400, // 0020 CALL R5 2 + 0x8C140B14, // 0021 GETMET R5 R5 K20 + 0x7C140200, // 0022 CALL R5 1 + 0xB81A1A00, // 0023 GETNGBL R6 K13 + 0x8C180D0E, // 0024 GETMET R6 R6 K14 + 0x60200008, // 0025 GETGBL R8 G8 + 0x5C240600, // 0026 MOVE R9 R3 + 0x7C200200, // 0027 CALL R8 1 + 0x00222A08, // 0028 ADD R8 K21 R8 + 0x54260003, // 0029 LDINT R9 4 + 0x7C180600, // 002A CALL R6 3 + 0xB81A1A00, // 002B GETNGBL R6 K13 + 0x8C180D0E, // 002C GETMET R6 R6 K14 + 0x60200008, // 002D GETGBL R8 G8 + 0x8C240717, // 002E GETMET R9 R3 K23 + 0x7C240200, // 002F CALL R9 1 + 0x7C200200, // 0030 CALL R8 1 + 0x00222C08, // 0031 ADD R8 K22 R8 + 0x54260003, // 0032 LDINT R9 4 + 0x7C180600, // 0033 CALL R6 3 + 0xB81A1A00, // 0034 GETNGBL R6 K13 + 0x8C180D0E, // 0035 GETMET R6 R6 K14 + 0x60200008, // 0036 GETGBL R8 G8 + 0x8C240719, // 0037 GETMET R9 R3 K25 + 0x7C240200, // 0038 CALL R9 1 + 0x7C200200, // 0039 CALL R8 1 + 0x00223008, // 003A ADD R8 K24 R8 + 0x54260003, // 003B LDINT R9 4 + 0x7C180600, // 003C CALL R6 3 + 0xB81A1A00, // 003D GETNGBL R6 K13 + 0x8C180D0E, // 003E GETMET R6 R6 K14 + 0x8C20071B, // 003F GETMET R8 R3 K27 + 0x7C200200, // 0040 CALL R8 1 + 0x8C20111C, // 0041 GETMET R8 R8 K28 + 0x7C200200, // 0042 CALL R8 1 + 0x00223408, // 0043 ADD R8 K26 R8 + 0x54260003, // 0044 LDINT R9 4 + 0x7C180600, // 0045 CALL R6 3 + 0xB81A1A00, // 0046 GETNGBL R6 K13 + 0x8C180D0E, // 0047 GETMET R6 R6 K14 + 0x8C200B1C, // 0048 GETMET R8 R5 K28 + 0x7C200200, // 0049 CALL R8 1 + 0x00223A08, // 004A ADD R8 K29 R8 + 0x54260003, // 004B LDINT R9 4 + 0x7C180600, // 004C CALL R6 3 + 0x60180015, // 004D GETGBL R6 G21 + 0x7C180000, // 004E CALL R6 0 + 0x8C180D1E, // 004F GETMET R6 R6 K30 + 0x8820011F, // 0050 GETMBR R8 R0 K31 + 0x7C180400, // 0051 CALL R6 2 + 0x8C1C0520, // 0052 GETMET R7 R2 K32 + 0x7C1C0200, // 0053 CALL R7 1 + 0x8C1C0F21, // 0054 GETMET R7 R7 K33 + 0x88240722, // 0055 GETMBR R9 R3 K34 + 0x8C28071B, // 0056 GETMET R10 R3 K27 + 0x7C280200, // 0057 CALL R10 1 + 0x00281405, // 0058 ADD R10 R10 R5 + 0x5C2C0C00, // 0059 MOVE R11 R6 + 0x5432000F, // 005A LDINT R12 16 + 0x7C1C0A00, // 005B CALL R7 5 + 0xB8221A00, // 005C GETNGBL R8 K13 + 0x8C20110E, // 005D GETMET R8 R8 K14 + 0x5828000F, // 005E LDCONST R10 K15 + 0x542E0003, // 005F LDINT R11 4 + 0x7C200600, // 0060 CALL R8 3 + 0xB8221A00, // 0061 GETNGBL R8 K13 + 0x8C20110E, // 0062 GETMET R8 R8 K14 + 0x8C28071B, // 0063 GETMET R10 R3 K27 + 0x7C280200, // 0064 CALL R10 1 + 0x00281405, // 0065 ADD R10 R10 R5 + 0x8C28151C, // 0066 GETMET R10 R10 K28 + 0x7C280200, // 0067 CALL R10 1 + 0x002A460A, // 0068 ADD R10 K35 R10 + 0x542E0003, // 0069 LDINT R11 4 + 0x7C200600, // 006A CALL R8 3 + 0xB8221A00, // 006B GETNGBL R8 K13 + 0x8C20110E, // 006C GETMET R8 R8 K14 + 0x8C280F1C, // 006D GETMET R10 R7 K28 + 0x7C280200, // 006E CALL R10 1 + 0x002A480A, // 006F ADD R10 K36 R10 + 0x542E0003, // 0070 LDINT R11 4 + 0x7C200600, // 0071 CALL R8 3 + 0xB8221A00, // 0072 GETNGBL R8 K13 + 0x8C20110E, // 0073 GETMET R8 R8 K14 + 0x5828000F, // 0074 LDCONST R10 K15 + 0x542E0003, // 0075 LDINT R11 4 + 0x7C200600, // 0076 CALL R8 3 + 0x5421FFEE, // 0077 LDINT R8 -17 + 0x40220608, // 0078 CONNECT R8 K3 R8 + 0x88240925, // 0079 GETMBR R9 R4 K37 + 0x94201208, // 007A GETIDX R8 R9 R8 + 0x5429FFEF, // 007B LDINT R10 -16 + 0x40281526, // 007C CONNECT R10 R10 K38 + 0x882C0925, // 007D GETMBR R11 R4 K37 + 0x9424160A, // 007E GETIDX R9 R11 R10 + 0x8C300527, // 007F GETMET R12 R2 K39 + 0x5C380E00, // 0080 MOVE R14 R7 + 0x603C0015, // 0081 GETGBL R15 G21 + 0x7C3C0000, // 0082 CALL R15 0 + 0x8C3C1F1E, // 0083 GETMET R15 R15 K30 + 0x88440128, // 0084 GETMBR R17 R0 K40 + 0x7C3C0400, // 0085 CALL R15 2 + 0x60400015, // 0086 GETGBL R16 G21 + 0x7C400000, // 0087 CALL R16 0 + 0x6044000C, // 0088 GETGBL R17 G12 + 0x5C481000, // 0089 MOVE R18 R8 + 0x7C440200, // 008A CALL R17 1 + 0x544A000F, // 008B LDINT R18 16 + 0x7C300C00, // 008C CALL R12 6 + 0x5C281800, // 008D MOVE R10 R12 + 0x8C301529, // 008E GETMET R12 R10 K41 + 0x5C381000, // 008F MOVE R14 R8 + 0x7C300400, // 0090 CALL R12 2 + 0x5C2C1800, // 0091 MOVE R11 R12 + 0x8C30152A, // 0092 GETMET R12 R10 K42 + 0x7C300200, // 0093 CALL R12 1 + 0xB8361A00, // 0094 GETNGBL R13 K13 + 0x8C341B0E, // 0095 GETMET R13 R13 K14 + 0x8C3C171C, // 0096 GETMET R15 R11 K28 + 0x7C3C0200, // 0097 CALL R15 1 + 0x003E560F, // 0098 ADD R15 K43 R15 + 0x54420003, // 0099 LDINT R16 4 + 0x7C340600, // 009A CALL R13 3 + 0xB8361A00, // 009B GETNGBL R13 K13 + 0x8C341B0E, // 009C GETMET R13 R13 K14 + 0x8C3C191C, // 009D GETMET R15 R12 K28 + 0x7C3C0200, // 009E CALL R15 1 + 0x003E580F, // 009F ADD R15 K44 R15 + 0x54420003, // 00A0 LDINT R16 4 + 0x7C340600, // 00A1 CALL R13 3 + 0xB8361A00, // 00A2 GETNGBL R13 K13 + 0x8C341B0E, // 00A3 GETMET R13 R13 K14 + 0x8C3C131C, // 00A4 GETMET R15 R9 K28 + 0x7C3C0200, // 00A5 CALL R15 1 + 0x003E5A0F, // 00A6 ADD R15 K45 R15 + 0x54420003, // 00A7 LDINT R16 4 + 0x7C340600, // 00A8 CALL R13 3 + 0xB8361A00, // 00A9 GETNGBL R13 K13 + 0x8C341B0E, // 00AA GETMET R13 R13 K14 + 0x583C000F, // 00AB LDCONST R15 K15 + 0x54420003, // 00AC LDINT R16 4 + 0x7C340600, // 00AD CALL R13 3 + 0x20341809, // 00AE NE R13 R12 R9 + 0x78360000, // 00AF JMPF R13 #00B1 + 0xB0065D2F, // 00B0 RAISE 1 K46 K47 + 0xB8361000, // 00B1 GETNGBL R13 K8 + 0x88341B30, // 00B2 GETMBR R13 R13 K48 + 0x8C341B0A, // 00B3 GETMET R13 R13 K10 + 0x5C3C1600, // 00B4 MOVE R15 R11 + 0x7C340400, // 00B5 CALL R13 2 + 0x8C381B31, // 00B6 GETMET R14 R13 K49 + 0x58400032, // 00B7 LDCONST R16 K50 + 0x7C380400, // 00B8 CALL R14 2 + 0x8C3C1B31, // 00B9 GETMET R15 R13 K49 + 0x58440033, // 00BA LDCONST R17 K51 + 0x7C3C0400, // 00BB CALL R15 2 + 0x8C401B31, // 00BC GETMET R16 R13 K49 + 0x58480034, // 00BD LDCONST R18 K52 + 0x7C400400, // 00BE CALL R16 2 + 0xB8461000, // 00BF GETNGBL R17 K8 + 0x88442330, // 00C0 GETMBR R17 R17 K48 + 0x8C44230A, // 00C1 GETMET R17 R17 K10 + 0x5C4C1C00, // 00C2 MOVE R19 R14 + 0x7C440400, // 00C3 CALL R17 2 + 0xB84A1A00, // 00C4 GETNGBL R18 K13 + 0x8C48250E, // 00C5 GETMET R18 R18 K14 + 0x60500008, // 00C6 GETGBL R20 G8 + 0x5C542200, // 00C7 MOVE R21 R17 + 0x7C500200, // 00C8 CALL R20 1 + 0x00526A14, // 00C9 ADD R20 K53 R20 + 0x58540034, // 00CA LDCONST R21 K52 + 0x7C480600, // 00CB CALL R18 3 + 0x8C482331, // 00CC GETMET R18 R17 K49 + 0x54520008, // 00CD LDINT R20 9 + 0x7C480400, // 00CE CALL R18 2 + 0x8C4C2336, // 00CF GETMET R19 R17 K54 + 0x54560005, // 00D0 LDINT R21 6 + 0x7C4C0400, // 00D1 CALL R19 2 + 0x8C502731, // 00D2 GETMET R20 R19 K49 + 0x545A0010, // 00D3 LDINT R22 17 + 0x7C500400, // 00D4 CALL R20 2 + 0x60540004, // 00D5 GETGBL R21 G4 + 0x5C582800, // 00D6 MOVE R22 R20 + 0x7C540200, // 00D7 CALL R21 1 + 0x1C542B37, // 00D8 EQ R21 R21 K55 + 0x78560003, // 00D9 JMPF R21 #00DE + 0xB8567000, // 00DA GETNGBL R21 K56 + 0x5C582800, // 00DB MOVE R22 R20 + 0x7C540200, // 00DC CALL R21 1 + 0x5C502A00, // 00DD MOVE R20 R21 + 0x8C54293A, // 00DE GETMET R21 R20 K58 + 0x7C540200, // 00DF CALL R21 1 + 0x900E7215, // 00E0 SETMBR R3 K57 R21 + 0xB8561A00, // 00E1 GETNGBL R21 K13 + 0x8C542B0E, // 00E2 GETMET R21 R21 K14 + 0x605C0008, // 00E3 GETGBL R23 G8 + 0x88600739, // 00E4 GETMBR R24 R3 K57 + 0x7C5C0200, // 00E5 CALL R23 1 + 0x005E7617, // 00E6 ADD R23 K59 R23 + 0x58600034, // 00E7 LDCONST R24 K52 + 0x7C540600, // 00E8 CALL R21 3 + 0xB8561000, // 00E9 GETNGBL R21 K8 + 0x88542B30, // 00EA GETMBR R21 R21 K48 + 0x8C542B3C, // 00EB GETMET R21 R21 K60 + 0x7C540200, // 00EC CALL R21 1 + 0x8C582B3D, // 00ED GETMET R22 R21 K61 + 0x58600032, // 00EE LDCONST R24 K50 + 0xB8661000, // 00EF GETNGBL R25 K8 + 0x88643330, // 00F0 GETMBR R25 R25 K48 + 0x8864333E, // 00F1 GETMBR R25 R25 K62 + 0x5C681C00, // 00F2 MOVE R26 R14 + 0x7C580800, // 00F3 CALL R22 4 + 0x8C582B3D, // 00F4 GETMET R22 R21 K61 + 0x58600033, // 00F5 LDCONST R24 K51 + 0xB8661000, // 00F6 GETNGBL R25 K8 + 0x88643330, // 00F7 GETMBR R25 R25 K48 + 0x8864333E, // 00F8 GETMBR R25 R25 K62 + 0x5C681E00, // 00F9 MOVE R26 R15 + 0x7C580800, // 00FA CALL R22 4 + 0x8C582B3D, // 00FB GETMET R22 R21 K61 + 0x58600034, // 00FC LDCONST R24 K52 + 0xB8661000, // 00FD GETNGBL R25 K8 + 0x88643330, // 00FE GETMBR R25 R25 K48 + 0x8864333E, // 00FF GETMBR R25 R25 K62 + 0x8868013F, // 0100 GETMBR R26 R0 K63 + 0x7C580800, // 0101 CALL R22 4 + 0x8C582B3D, // 0102 GETMET R22 R21 K61 + 0x54620003, // 0103 LDINT R24 4 + 0xB8661000, // 0104 GETNGBL R25 K8 + 0x88643330, // 0105 GETMBR R25 R25 K48 + 0x8864333E, // 0106 GETMBR R25 R25 K62 + 0x88680140, // 0107 GETMBR R26 R0 K64 + 0x7C580800, // 0108 CALL R22 4 + 0x8C582B41, // 0109 GETMET R22 R21 K65 + 0x7C580200, // 010A CALL R22 1 + 0xB85E1A00, // 010B GETNGBL R23 K13 + 0x8C5C2F0E, // 010C GETMET R23 R23 K14 + 0x8C64251C, // 010D GETMET R25 R18 K28 + 0x7C640200, // 010E CALL R25 1 + 0x00668419, // 010F ADD R25 K66 R25 + 0x546A0003, // 0110 LDINT R26 4 + 0x7C5C0600, // 0111 CALL R23 3 + 0xB85E1A00, // 0112 GETNGBL R23 K13 + 0x8C5C2F0E, // 0113 GETMET R23 R23 K14 + 0x8C64211C, // 0114 GETMET R25 R16 K28 + 0x7C640200, // 0115 CALL R25 1 + 0x00668619, // 0116 ADD R25 K67 R25 + 0x546A0003, // 0117 LDINT R26 4 + 0x7C5C0600, // 0118 CALL R23 3 + 0xB85E1A00, // 0119 GETNGBL R23 K13 + 0x8C5C2F0E, // 011A GETMET R23 R23 K14 + 0x5864000F, // 011B LDCONST R25 K15 + 0x546A0003, // 011C LDINT R26 4 + 0x7C5C0600, // 011D CALL R23 3 + 0x8C5C0544, // 011E GETMET R23 R2 K68 + 0x7C5C0200, // 011F CALL R23 1 + 0x8C5C2F45, // 0120 GETMET R23 R23 K69 + 0x5C642400, // 0121 MOVE R25 R18 + 0x5C682C00, // 0122 MOVE R26 R22 + 0x5C6C2000, // 0123 MOVE R27 R16 + 0x7C5C0800, // 0124 CALL R23 4 + 0x5C602E00, // 0125 MOVE R24 R23 + 0x74620000, // 0126 JMPT R24 #0128 + 0xB0065D46, // 0127 RAISE 1 K46 K70 + 0xB8621A00, // 0128 GETNGBL R24 K13 + 0x8C60310E, // 0129 GETMET R24 R24 K14 + 0x58680047, // 012A LDCONST R26 K71 + 0x586C0034, // 012B LDCONST R27 K52 + 0x7C600600, // 012C CALL R24 3 + 0x8C600510, // 012D GETMET R24 R2 K16 + 0x7C600200, // 012E CALL R24 1 + 0x8C603111, // 012F GETMET R24 R24 K17 + 0x88680712, // 0130 GETMBR R26 R3 K18 + 0x7C600400, // 0131 CALL R24 2 + 0x8C603111, // 0132 GETMET R24 R24 K17 + 0x88680713, // 0133 GETMBR R26 R3 K19 + 0x7C600400, // 0134 CALL R24 2 + 0x8C603111, // 0135 GETMET R24 R24 K17 + 0x88680948, // 0136 GETMBR R26 R4 K72 + 0x7C600400, // 0137 CALL R24 2 + 0x8C603114, // 0138 GETMET R24 R24 K20 + 0x7C600200, // 0139 CALL R24 1 + 0x5C143000, // 013A MOVE R5 R24 + 0x4C600000, // 013B LDNIL R24 + 0x900E2418, // 013C SETMBR R3 K18 R24 + 0x4C600000, // 013D LDNIL R24 + 0x900E2618, // 013E SETMBR R3 K19 R24 + 0xB8621A00, // 013F GETNGBL R24 K13 + 0x8C60310E, // 0140 GETMET R24 R24 K14 + 0x58680049, // 0141 LDCONST R26 K73 + 0x546E0003, // 0142 LDINT R27 4 + 0x7C600600, // 0143 CALL R24 3 + 0xB8621A00, // 0144 GETNGBL R24 K13 + 0x8C60310E, // 0145 GETMET R24 R24 K14 + 0x88680722, // 0146 GETMBR R26 R3 K34 + 0x8C68351C, // 0147 GETMET R26 R26 K28 + 0x7C680200, // 0148 CALL R26 1 + 0x006A941A, // 0149 ADD R26 K74 R26 + 0x546E0003, // 014A LDINT R27 4 + 0x7C600600, // 014B CALL R24 3 + 0xB8621A00, // 014C GETNGBL R24 K13 + 0x8C60310E, // 014D GETMET R24 R24 K14 + 0x8C68071B, // 014E GETMET R26 R3 K27 + 0x7C680200, // 014F CALL R26 1 + 0x00683405, // 0150 ADD R26 R26 R5 + 0x8C68351C, // 0151 GETMET R26 R26 K28 + 0x7C680200, // 0152 CALL R26 1 + 0x006A961A, // 0153 ADD R26 K75 R26 + 0x546E0003, // 0154 LDINT R27 4 + 0x7C600600, // 0155 CALL R24 3 + 0x8C600520, // 0156 GETMET R24 R2 K32 + 0x7C600200, // 0157 CALL R24 1 + 0x8C603121, // 0158 GETMET R24 R24 K33 + 0x88680722, // 0159 GETMBR R26 R3 K34 + 0x8C6C071B, // 015A GETMET R27 R3 K27 + 0x7C6C0200, // 015B CALL R27 1 + 0x006C3605, // 015C ADD R27 R27 R5 + 0x60700015, // 015D GETGBL R28 G21 + 0x7C700000, // 015E CALL R28 0 + 0x8C70391E, // 015F GETMET R28 R28 K30 + 0x8878014C, // 0160 GETMBR R30 R0 K76 + 0x7C700400, // 0161 CALL R28 2 + 0x5476002F, // 0162 LDINT R29 48 + 0x7C600A00, // 0163 CALL R24 5 + 0x5466000E, // 0164 LDINT R25 15 + 0x40660619, // 0165 CONNECT R25 K3 R25 + 0x94643019, // 0166 GETIDX R25 R24 R25 + 0x546A000F, // 0167 LDINT R26 16 + 0x546E001E, // 0168 LDINT R27 31 + 0x4068341B, // 0169 CONNECT R26 R26 R27 + 0x9468301A, // 016A GETIDX R26 R24 R26 + 0x546E001F, // 016B LDINT R27 32 + 0x5472002E, // 016C LDINT R28 47 + 0x406C361C, // 016D CONNECT R27 R27 R28 + 0x946C301B, // 016E GETIDX R27 R24 R27 + 0xB8721A00, // 016F GETNGBL R28 K13 + 0x8C70394D, // 0170 GETMET R28 R28 K77 + 0x7C700200, // 0171 CALL R28 1 + 0x9470394E, // 0172 GETIDX R28 R28 K78 + 0xB8761A00, // 0173 GETNGBL R29 K13 + 0x8C743B0E, // 0174 GETMET R29 R29 K14 + 0x587C0049, // 0175 LDCONST R31 K73 + 0x54820003, // 0176 LDINT R32 4 + 0x7C740600, // 0177 CALL R29 3 + 0xB8761A00, // 0178 GETNGBL R29 K13 + 0x8C743B0E, // 0179 GETMET R29 R29 K14 + 0x8C7C331C, // 017A GETMET R31 R25 K28 + 0x7C7C0200, // 017B CALL R31 1 + 0x007E9E1F, // 017C ADD R31 K79 R31 + 0x54820003, // 017D LDINT R32 4 + 0x7C740600, // 017E CALL R29 3 + 0xB8761A00, // 017F GETNGBL R29 K13 + 0x8C743B0E, // 0180 GETMET R29 R29 K14 + 0x8C7C351C, // 0181 GETMET R31 R26 K28 + 0x7C7C0200, // 0182 CALL R31 1 + 0x007EA01F, // 0183 ADD R31 K80 R31 + 0x54820003, // 0184 LDINT R32 4 + 0x7C740600, // 0185 CALL R29 3 + 0xB8761A00, // 0186 GETNGBL R29 K13 + 0x8C743B0E, // 0187 GETMET R29 R29 K14 + 0x8C7C371C, // 0188 GETMET R31 R27 K28 + 0x7C7C0200, // 0189 CALL R31 1 + 0x007EA21F, // 018A ADD R31 K81 R31 + 0x54820003, // 018B LDINT R32 4 + 0x7C740600, // 018C CALL R29 3 + 0xB8761A00, // 018D GETNGBL R29 K13 + 0x8C743B0E, // 018E GETMET R29 R29 K14 + 0x587C0049, // 018F LDCONST R31 K73 + 0x54820003, // 0190 LDINT R32 4 + 0x7C740600, // 0191 CALL R29 3 + 0x8C740352, // 0192 GETMET R29 R1 K82 + 0x547E003F, // 0193 LDINT R31 64 + 0x50800200, // 0194 LDBOOL R32 1 0 + 0x7C740600, // 0195 CALL R29 3 + 0x60780015, // 0196 GETGBL R30 G21 + 0x7C780000, // 0197 CALL R30 0 + 0x8C7C3D53, // 0198 GETMET R31 R30 K83 + 0x58840003, // 0199 LDCONST R33 K3 + 0x58880033, // 019A LDCONST R34 K51 + 0x7C7C0600, // 019B CALL R31 3 + 0x8C7C3D53, // 019C GETMET R31 R30 K83 + 0x58840003, // 019D LDCONST R33 K3 + 0x548A0003, // 019E LDINT R34 4 + 0x7C7C0600, // 019F CALL R31 3 + 0x8C7C3D53, // 01A0 GETMET R31 R30 K83 + 0x58840003, // 01A1 LDCONST R33 K3 + 0x548A0003, // 01A2 LDINT R34 4 + 0x7C7C0600, // 01A3 CALL R31 3 + 0x8C7C3B41, // 01A4 GETMET R31 R29 K65 + 0x5C843C00, // 01A5 MOVE R33 R30 + 0x7C7C0400, // 01A6 CALL R31 2 + 0x88800154, // 01A7 GETMBR R32 R0 K84 + 0x8C804155, // 01A8 GETMET R32 R32 K85 + 0x5C883E00, // 01A9 MOVE R34 R31 + 0x888C0356, // 01AA GETMBR R35 R1 K86 + 0x88900357, // 01AB GETMBR R36 R1 K87 + 0x88943B58, // 01AC GETMBR R37 R29 K88 + 0x7C800A00, // 01AD CALL R32 5 + 0x8C800759, // 01AE GETMET R32 R3 K89 + 0x7C800200, // 01AF CALL R32 1 + 0x8C80075A, // 01B0 GETMET R32 R3 K90 + 0x5C883200, // 01B1 MOVE R34 R25 + 0x5C8C3400, // 01B2 MOVE R35 R26 + 0x5C903600, // 01B3 MOVE R36 R27 + 0x5C943800, // 01B4 MOVE R37 R28 + 0x7C800A00, // 01B5 CALL R32 5 + 0x8C80075B, // 01B6 GETMET R32 R3 K91 + 0x50880200, // 01B7 LDBOOL R34 1 0 + 0x7C800400, // 01B8 CALL R32 2 + 0x8C80075C, // 01B9 GETMET R32 R3 K92 + 0x7C800200, // 01BA CALL R32 1 + 0x8C80075D, // 01BB GETMET R32 R3 K93 + 0x7C800200, // 01BC CALL R32 1 + 0x8C80075E, // 01BD GETMET R32 R3 K94 + 0x7C800200, // 01BE CALL R32 1 + 0x50800200, // 01BF LDBOOL R32 1 0 + 0x80044000, // 01C0 RET 1 R32 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: every_second ********************************************************************/ @@ -657,158 +1431,6 @@ be_local_closure(Matter_Commisioning_Context_every_second, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: process_incoming -********************************************************************/ -be_local_closure(Matter_Commisioning_Context_process_incoming, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[16]) { /* constants */ - /* K0 */ be_nested_str_weak(device), - /* K1 */ be_nested_str_weak(is_commissioning_open), - /* K2 */ be_nested_str_weak(opcode), - /* K3 */ be_nested_str_weak(tasmota), - /* K4 */ be_nested_str_weak(log), - /* K5 */ be_nested_str_weak(MTR_X3A_X20commissioning_X20not_X20open), - /* K6 */ be_const_int(2), - /* K7 */ be_nested_str_weak(MTR_X3A_X20received_X20message_X20), - /* K8 */ be_nested_str_weak(matter), - /* K9 */ be_nested_str_weak(inspect), - /* K10 */ be_const_int(3), - /* K11 */ be_nested_str_weak(parse_PBKDFParamRequest), - /* K12 */ be_nested_str_weak(parse_Pake1), - /* K13 */ be_nested_str_weak(parse_Pake3), - /* K14 */ be_nested_str_weak(parse_Sigma1), - /* K15 */ be_nested_str_weak(parse_Sigma3), - }), - be_str_weak(process_incoming), - &be_const_str_solidified, - ( &(const binstruction[74]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x7C080200, // 0002 CALL R2 1 - 0x740A000E, // 0003 JMPT R2 #0013 - 0x88080302, // 0004 GETMBR R2 R1 K2 - 0x540E001F, // 0005 LDINT R3 32 - 0x28080403, // 0006 GE R2 R2 R3 - 0x780A000A, // 0007 JMPF R2 #0013 - 0x88080302, // 0008 GETMBR R2 R1 K2 - 0x540E0023, // 0009 LDINT R3 36 - 0x18080403, // 000A LE R2 R2 R3 - 0x780A0006, // 000B JMPF R2 #0013 - 0xB80A0600, // 000C GETNGBL R2 K3 - 0x8C080504, // 000D GETMET R2 R2 K4 - 0x58100005, // 000E LDCONST R4 K5 - 0x58140006, // 000F LDCONST R5 K6 - 0x7C080600, // 0010 CALL R2 3 - 0x50080000, // 0011 LDBOOL R2 0 0 - 0x80040400, // 0012 RET 1 R2 - 0xB80A0600, // 0013 GETNGBL R2 K3 - 0x8C080504, // 0014 GETMET R2 R2 K4 - 0xB8121000, // 0015 GETNGBL R4 K8 - 0x8C100909, // 0016 GETMET R4 R4 K9 - 0x5C180200, // 0017 MOVE R6 R1 - 0x7C100400, // 0018 CALL R4 2 - 0x00120E04, // 0019 ADD R4 K7 R4 - 0x5814000A, // 001A LDCONST R5 K10 - 0x7C080600, // 001B CALL R2 3 - 0x88080302, // 001C GETMBR R2 R1 K2 - 0x540E001F, // 001D LDINT R3 32 - 0x1C080403, // 001E EQ R2 R2 R3 - 0x780A0004, // 001F JMPF R2 #0025 - 0x8C08010B, // 0020 GETMET R2 R0 K11 - 0x5C100200, // 0021 MOVE R4 R1 - 0x7C080400, // 0022 CALL R2 2 - 0x80040400, // 0023 RET 1 R2 - 0x70020022, // 0024 JMP #0048 - 0x88080302, // 0025 GETMBR R2 R1 K2 - 0x540E0021, // 0026 LDINT R3 34 - 0x1C080403, // 0027 EQ R2 R2 R3 - 0x780A0004, // 0028 JMPF R2 #002E - 0x8C08010C, // 0029 GETMET R2 R0 K12 - 0x5C100200, // 002A MOVE R4 R1 - 0x7C080400, // 002B CALL R2 2 - 0x80040400, // 002C RET 1 R2 - 0x70020019, // 002D JMP #0048 - 0x88080302, // 002E GETMBR R2 R1 K2 - 0x540E0023, // 002F LDINT R3 36 - 0x1C080403, // 0030 EQ R2 R2 R3 - 0x780A0004, // 0031 JMPF R2 #0037 - 0x8C08010D, // 0032 GETMET R2 R0 K13 - 0x5C100200, // 0033 MOVE R4 R1 - 0x7C080400, // 0034 CALL R2 2 - 0x80040400, // 0035 RET 1 R2 - 0x70020010, // 0036 JMP #0048 - 0x88080302, // 0037 GETMBR R2 R1 K2 - 0x540E002F, // 0038 LDINT R3 48 - 0x1C080403, // 0039 EQ R2 R2 R3 - 0x780A0004, // 003A JMPF R2 #0040 - 0x8C08010E, // 003B GETMET R2 R0 K14 - 0x5C100200, // 003C MOVE R4 R1 - 0x7C080400, // 003D CALL R2 2 - 0x80040400, // 003E RET 1 R2 - 0x70020007, // 003F JMP #0048 - 0x88080302, // 0040 GETMBR R2 R1 K2 - 0x540E0031, // 0041 LDINT R3 50 - 0x1C080403, // 0042 EQ R2 R2 R3 - 0x780A0003, // 0043 JMPF R2 #0048 - 0x8C08010F, // 0044 GETMET R2 R0 K15 - 0x5C100200, // 0045 MOVE R4 R1 - 0x7C080400, // 0046 CALL R2 2 - 0x80040400, // 0047 RET 1 R2 - 0x50080000, // 0048 LDBOOL R2 0 0 - 0x80040400, // 0049 RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(Matter_Commisioning_Context_init, /* name */ - be_nested_proto( - 6, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(crypto), - /* K1 */ be_nested_str_weak(responder), - /* K2 */ be_nested_str_weak(device), - /* K3 */ be_nested_str_weak(y), - /* K4 */ be_nested_str_weak(random), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x90020201, // 0001 SETMBR R0 K1 R1 - 0x880C0302, // 0002 GETMBR R3 R1 K2 - 0x90020403, // 0003 SETMBR R0 K2 R3 - 0x8C0C0504, // 0004 GETMET R3 R2 K4 - 0x5416001F, // 0005 LDINT R5 32 - 0x7C0C0400, // 0006 CALL R3 2 - 0x90020603, // 0007 SETMBR R0 K3 R3 - 0x80000000, // 0008 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: parse_Sigma1 ********************************************************************/ @@ -1508,742 +2130,6 @@ be_local_closure(Matter_Commisioning_Context_parse_Sigma1, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: parse_Sigma3 -********************************************************************/ -be_local_closure(Matter_Commisioning_Context_parse_Sigma3, /* name */ - be_nested_proto( - 38, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[95]) { /* constants */ - /* K0 */ be_nested_str_weak(crypto), - /* K1 */ be_nested_str_weak(opcode), - /* K2 */ be_nested_str_weak(local_session_id), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(protocol_id), - /* K5 */ be_nested_str_weak(protocol_error), - /* K6 */ be_nested_str_weak(invalid_X20Pake1_X20message), - /* K7 */ be_nested_str_weak(session), - /* K8 */ be_nested_str_weak(matter), - /* K9 */ be_nested_str_weak(Sigma3), - /* K10 */ be_nested_str_weak(parse), - /* K11 */ be_nested_str_weak(raw), - /* K12 */ be_nested_str_weak(app_payload_idx), - /* K13 */ be_nested_str_weak(tasmota), - /* K14 */ be_nested_str_weak(log), - /* K15 */ be_nested_str_weak(_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A), - /* K16 */ be_nested_str_weak(SHA256), - /* K17 */ be_nested_str_weak(update), - /* K18 */ be_nested_str_weak(__Msg1), - /* K19 */ be_nested_str_weak(__Msg2), - /* K20 */ be_nested_str_weak(out), - /* K21 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20session_X20_X20_X20_X20_X20_X20_X20_X3D_X20), - /* K22 */ be_nested_str_weak(MTR_X3A_X20session_X2Eipk_epoch_key_X20), - /* K23 */ be_nested_str_weak(get_ipk_epoch_key), - /* K24 */ be_nested_str_weak(MTR_X3A_X20session_X2Efabric_compressed_X20), - /* K25 */ be_nested_str_weak(get_fabric_compressed), - /* K26 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20ipk_group_key_X20_X3D_X20), - /* K27 */ be_nested_str_weak(get_ipk_group_key), - /* K28 */ be_nested_str_weak(tohex), - /* K29 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20TranscriptHash_X3D_X20), - /* K30 */ be_nested_str_weak(fromstring), - /* K31 */ be_nested_str_weak(S3K_Info), - /* K32 */ be_nested_str_weak(HKDF_SHA256), - /* K33 */ be_nested_str_weak(derive), - /* K34 */ be_nested_str_weak(shared_secret), - /* K35 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20s3k_salt_X20_X20_X20_X20_X20_X20_X3D_X20), - /* K36 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20s3k_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X3D_X20), - /* K37 */ be_nested_str_weak(TBEData3Encrypted), - /* K38 */ be_const_int(2147483647), - /* K39 */ be_nested_str_weak(AES_CCM), - /* K40 */ be_nested_str_weak(TBEData3_Nonce), - /* K41 */ be_nested_str_weak(decrypt), - /* K42 */ be_nested_str_weak(tag), - /* K43 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20TBEData3_X20_X20_X20_X20_X20_X20_X3D_X20), - /* K44 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20TBETag3_X20_X20_X20_X20_X20_X20_X20_X3D_X20), - /* K45 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20tag_sent_X20_X20_X20_X20_X20_X20_X3D_X20), - /* K46 */ be_nested_str_weak(value_error), - /* K47 */ be_nested_str_weak(tag_X20do_X20not_X20match), - /* K48 */ be_nested_str_weak(TLV), - /* K49 */ be_nested_str_weak(findsubval), - /* K50 */ be_const_int(1), - /* K51 */ be_const_int(2), - /* K52 */ be_const_int(3), - /* K53 */ be_nested_str_weak(MTR_X3A_X20initiatorNOCTLV_X20_X3D_X20), - /* K54 */ be_nested_str_weak(findsub), - /* K55 */ be_nested_str_weak(int), - /* K56 */ be_nested_str_weak(int64), - /* K57 */ be_nested_str_weak(peer_node_id), - /* K58 */ be_nested_str_weak(tobytes), - /* K59 */ be_nested_str_weak(MTR_X3A_X20initiatorFabricId_X3D), - /* K60 */ be_nested_str_weak(Matter_TLV_struct), - /* K61 */ be_nested_str_weak(add_TLV), - /* K62 */ be_nested_str_weak(B1), - /* K63 */ be_nested_str_weak(initiatorEph_pub), - /* K64 */ be_nested_str_weak(ResponderEph_pub), - /* K65 */ be_nested_str_weak(encode), - /* K66 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20initiatorNOCPubKey_X20_X20_X20_X20_X20_X20_X3D_X20), - /* K67 */ be_nested_str_weak(MTR_X3A_X20_X2A_X20ec_signature_X20_X20_X20_X20_X20_X20_X3D_X20), - /* K68 */ be_nested_str_weak(EC_P256), - /* K69 */ be_nested_str_weak(ecdsa_verify_sha256), - /* K70 */ be_nested_str_weak(sigma3_tbs_X20does_X20not_X20have_X20a_X20valid_X20signature), - /* K71 */ be_nested_str_weak(MTR_X3A_X20Sigma3_X20verified_X2C_X20computing_X20new_X20keys), - /* K72 */ be_nested_str_weak(Msg3), - /* K73 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A), - /* K74 */ be_nested_str_weak(MTR_X3A_X20shared_secret_X20_X3D), - /* K75 */ be_nested_str_weak(MTR_X3A_X20ipk_X20_X2B_X20hash_X20_X20_X20_X20_X3D), - /* K76 */ be_nested_str_weak(SEKeys_Info), - /* K77 */ be_nested_str_weak(rtc), - /* K78 */ be_nested_str_weak(utc), - /* K79 */ be_nested_str_weak(MTR_X3A_X20I2RKey_X20_X20_X20_X20_X20_X20_X3D), - /* K80 */ be_nested_str_weak(MTR_X3A_X20R2IKey_X20_X20_X20_X20_X20_X20_X3D), - /* K81 */ be_nested_str_weak(MTR_X3A_X20AC_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X3D), - /* K82 */ be_nested_str_weak(build_response), - /* K83 */ be_nested_str_weak(add), - /* K84 */ be_nested_str_weak(responder), - /* K85 */ be_nested_str_weak(send_response), - /* K86 */ be_nested_str_weak(remote_ip), - /* K87 */ be_nested_str_weak(remote_port), - /* K88 */ be_nested_str_weak(message_counter), - /* K89 */ be_nested_str_weak(close), - /* K90 */ be_nested_str_weak(set_keys), - /* K91 */ be_nested_str_weak(set_persist), - /* K92 */ be_nested_str_weak(set_no_expiration), - /* K93 */ be_nested_str_weak(persist_to_fabric), - /* K94 */ be_nested_str_weak(save), - }), - be_str_weak(parse_Sigma3), - &be_const_str_solidified, - ( &(const binstruction[449]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x880C0301, // 0001 GETMBR R3 R1 K1 - 0x54120031, // 0002 LDINT R4 50 - 0x200C0604, // 0003 NE R3 R3 R4 - 0x740E0005, // 0004 JMPT R3 #000B - 0x880C0302, // 0005 GETMBR R3 R1 K2 - 0x200C0703, // 0006 NE R3 R3 K3 - 0x740E0002, // 0007 JMPT R3 #000B - 0x880C0304, // 0008 GETMBR R3 R1 K4 - 0x200C0703, // 0009 NE R3 R3 K3 - 0x780E0000, // 000A JMPF R3 #000C - 0xB0060B06, // 000B RAISE 1 K5 K6 - 0x880C0307, // 000C GETMBR R3 R1 K7 - 0xB8121000, // 000D GETNGBL R4 K8 - 0x8C100909, // 000E GETMET R4 R4 K9 - 0x7C100200, // 000F CALL R4 1 - 0x8C10090A, // 0010 GETMET R4 R4 K10 - 0x8818030B, // 0011 GETMBR R6 R1 K11 - 0x881C030C, // 0012 GETMBR R7 R1 K12 - 0x7C100600, // 0013 CALL R4 3 - 0xB8161A00, // 0014 GETNGBL R5 K13 - 0x8C140B0E, // 0015 GETMET R5 R5 K14 - 0x581C000F, // 0016 LDCONST R7 K15 - 0x54220003, // 0017 LDINT R8 4 - 0x7C140600, // 0018 CALL R5 3 - 0x8C140510, // 0019 GETMET R5 R2 K16 - 0x7C140200, // 001A CALL R5 1 - 0x8C140B11, // 001B GETMET R5 R5 K17 - 0x881C0712, // 001C GETMBR R7 R3 K18 - 0x7C140400, // 001D CALL R5 2 - 0x8C140B11, // 001E GETMET R5 R5 K17 - 0x881C0713, // 001F GETMBR R7 R3 K19 - 0x7C140400, // 0020 CALL R5 2 - 0x8C140B14, // 0021 GETMET R5 R5 K20 - 0x7C140200, // 0022 CALL R5 1 - 0xB81A1A00, // 0023 GETNGBL R6 K13 - 0x8C180D0E, // 0024 GETMET R6 R6 K14 - 0x60200008, // 0025 GETGBL R8 G8 - 0x5C240600, // 0026 MOVE R9 R3 - 0x7C200200, // 0027 CALL R8 1 - 0x00222A08, // 0028 ADD R8 K21 R8 - 0x54260003, // 0029 LDINT R9 4 - 0x7C180600, // 002A CALL R6 3 - 0xB81A1A00, // 002B GETNGBL R6 K13 - 0x8C180D0E, // 002C GETMET R6 R6 K14 - 0x60200008, // 002D GETGBL R8 G8 - 0x8C240717, // 002E GETMET R9 R3 K23 - 0x7C240200, // 002F CALL R9 1 - 0x7C200200, // 0030 CALL R8 1 - 0x00222C08, // 0031 ADD R8 K22 R8 - 0x54260003, // 0032 LDINT R9 4 - 0x7C180600, // 0033 CALL R6 3 - 0xB81A1A00, // 0034 GETNGBL R6 K13 - 0x8C180D0E, // 0035 GETMET R6 R6 K14 - 0x60200008, // 0036 GETGBL R8 G8 - 0x8C240719, // 0037 GETMET R9 R3 K25 - 0x7C240200, // 0038 CALL R9 1 - 0x7C200200, // 0039 CALL R8 1 - 0x00223008, // 003A ADD R8 K24 R8 - 0x54260003, // 003B LDINT R9 4 - 0x7C180600, // 003C CALL R6 3 - 0xB81A1A00, // 003D GETNGBL R6 K13 - 0x8C180D0E, // 003E GETMET R6 R6 K14 - 0x8C20071B, // 003F GETMET R8 R3 K27 - 0x7C200200, // 0040 CALL R8 1 - 0x8C20111C, // 0041 GETMET R8 R8 K28 - 0x7C200200, // 0042 CALL R8 1 - 0x00223408, // 0043 ADD R8 K26 R8 - 0x54260003, // 0044 LDINT R9 4 - 0x7C180600, // 0045 CALL R6 3 - 0xB81A1A00, // 0046 GETNGBL R6 K13 - 0x8C180D0E, // 0047 GETMET R6 R6 K14 - 0x8C200B1C, // 0048 GETMET R8 R5 K28 - 0x7C200200, // 0049 CALL R8 1 - 0x00223A08, // 004A ADD R8 K29 R8 - 0x54260003, // 004B LDINT R9 4 - 0x7C180600, // 004C CALL R6 3 - 0x60180015, // 004D GETGBL R6 G21 - 0x7C180000, // 004E CALL R6 0 - 0x8C180D1E, // 004F GETMET R6 R6 K30 - 0x8820011F, // 0050 GETMBR R8 R0 K31 - 0x7C180400, // 0051 CALL R6 2 - 0x8C1C0520, // 0052 GETMET R7 R2 K32 - 0x7C1C0200, // 0053 CALL R7 1 - 0x8C1C0F21, // 0054 GETMET R7 R7 K33 - 0x88240722, // 0055 GETMBR R9 R3 K34 - 0x8C28071B, // 0056 GETMET R10 R3 K27 - 0x7C280200, // 0057 CALL R10 1 - 0x00281405, // 0058 ADD R10 R10 R5 - 0x5C2C0C00, // 0059 MOVE R11 R6 - 0x5432000F, // 005A LDINT R12 16 - 0x7C1C0A00, // 005B CALL R7 5 - 0xB8221A00, // 005C GETNGBL R8 K13 - 0x8C20110E, // 005D GETMET R8 R8 K14 - 0x5828000F, // 005E LDCONST R10 K15 - 0x542E0003, // 005F LDINT R11 4 - 0x7C200600, // 0060 CALL R8 3 - 0xB8221A00, // 0061 GETNGBL R8 K13 - 0x8C20110E, // 0062 GETMET R8 R8 K14 - 0x8C28071B, // 0063 GETMET R10 R3 K27 - 0x7C280200, // 0064 CALL R10 1 - 0x00281405, // 0065 ADD R10 R10 R5 - 0x8C28151C, // 0066 GETMET R10 R10 K28 - 0x7C280200, // 0067 CALL R10 1 - 0x002A460A, // 0068 ADD R10 K35 R10 - 0x542E0003, // 0069 LDINT R11 4 - 0x7C200600, // 006A CALL R8 3 - 0xB8221A00, // 006B GETNGBL R8 K13 - 0x8C20110E, // 006C GETMET R8 R8 K14 - 0x8C280F1C, // 006D GETMET R10 R7 K28 - 0x7C280200, // 006E CALL R10 1 - 0x002A480A, // 006F ADD R10 K36 R10 - 0x542E0003, // 0070 LDINT R11 4 - 0x7C200600, // 0071 CALL R8 3 - 0xB8221A00, // 0072 GETNGBL R8 K13 - 0x8C20110E, // 0073 GETMET R8 R8 K14 - 0x5828000F, // 0074 LDCONST R10 K15 - 0x542E0003, // 0075 LDINT R11 4 - 0x7C200600, // 0076 CALL R8 3 - 0x5421FFEE, // 0077 LDINT R8 -17 - 0x40220608, // 0078 CONNECT R8 K3 R8 - 0x88240925, // 0079 GETMBR R9 R4 K37 - 0x94201208, // 007A GETIDX R8 R9 R8 - 0x5429FFEF, // 007B LDINT R10 -16 - 0x40281526, // 007C CONNECT R10 R10 K38 - 0x882C0925, // 007D GETMBR R11 R4 K37 - 0x9424160A, // 007E GETIDX R9 R11 R10 - 0x8C300527, // 007F GETMET R12 R2 K39 - 0x5C380E00, // 0080 MOVE R14 R7 - 0x603C0015, // 0081 GETGBL R15 G21 - 0x7C3C0000, // 0082 CALL R15 0 - 0x8C3C1F1E, // 0083 GETMET R15 R15 K30 - 0x88440128, // 0084 GETMBR R17 R0 K40 - 0x7C3C0400, // 0085 CALL R15 2 - 0x60400015, // 0086 GETGBL R16 G21 - 0x7C400000, // 0087 CALL R16 0 - 0x6044000C, // 0088 GETGBL R17 G12 - 0x5C481000, // 0089 MOVE R18 R8 - 0x7C440200, // 008A CALL R17 1 - 0x544A000F, // 008B LDINT R18 16 - 0x7C300C00, // 008C CALL R12 6 - 0x5C281800, // 008D MOVE R10 R12 - 0x8C301529, // 008E GETMET R12 R10 K41 - 0x5C381000, // 008F MOVE R14 R8 - 0x7C300400, // 0090 CALL R12 2 - 0x5C2C1800, // 0091 MOVE R11 R12 - 0x8C30152A, // 0092 GETMET R12 R10 K42 - 0x7C300200, // 0093 CALL R12 1 - 0xB8361A00, // 0094 GETNGBL R13 K13 - 0x8C341B0E, // 0095 GETMET R13 R13 K14 - 0x8C3C171C, // 0096 GETMET R15 R11 K28 - 0x7C3C0200, // 0097 CALL R15 1 - 0x003E560F, // 0098 ADD R15 K43 R15 - 0x54420003, // 0099 LDINT R16 4 - 0x7C340600, // 009A CALL R13 3 - 0xB8361A00, // 009B GETNGBL R13 K13 - 0x8C341B0E, // 009C GETMET R13 R13 K14 - 0x8C3C191C, // 009D GETMET R15 R12 K28 - 0x7C3C0200, // 009E CALL R15 1 - 0x003E580F, // 009F ADD R15 K44 R15 - 0x54420003, // 00A0 LDINT R16 4 - 0x7C340600, // 00A1 CALL R13 3 - 0xB8361A00, // 00A2 GETNGBL R13 K13 - 0x8C341B0E, // 00A3 GETMET R13 R13 K14 - 0x8C3C131C, // 00A4 GETMET R15 R9 K28 - 0x7C3C0200, // 00A5 CALL R15 1 - 0x003E5A0F, // 00A6 ADD R15 K45 R15 - 0x54420003, // 00A7 LDINT R16 4 - 0x7C340600, // 00A8 CALL R13 3 - 0xB8361A00, // 00A9 GETNGBL R13 K13 - 0x8C341B0E, // 00AA GETMET R13 R13 K14 - 0x583C000F, // 00AB LDCONST R15 K15 - 0x54420003, // 00AC LDINT R16 4 - 0x7C340600, // 00AD CALL R13 3 - 0x20341809, // 00AE NE R13 R12 R9 - 0x78360000, // 00AF JMPF R13 #00B1 - 0xB0065D2F, // 00B0 RAISE 1 K46 K47 - 0xB8361000, // 00B1 GETNGBL R13 K8 - 0x88341B30, // 00B2 GETMBR R13 R13 K48 - 0x8C341B0A, // 00B3 GETMET R13 R13 K10 - 0x5C3C1600, // 00B4 MOVE R15 R11 - 0x7C340400, // 00B5 CALL R13 2 - 0x8C381B31, // 00B6 GETMET R14 R13 K49 - 0x58400032, // 00B7 LDCONST R16 K50 - 0x7C380400, // 00B8 CALL R14 2 - 0x8C3C1B31, // 00B9 GETMET R15 R13 K49 - 0x58440033, // 00BA LDCONST R17 K51 - 0x7C3C0400, // 00BB CALL R15 2 - 0x8C401B31, // 00BC GETMET R16 R13 K49 - 0x58480034, // 00BD LDCONST R18 K52 - 0x7C400400, // 00BE CALL R16 2 - 0xB8461000, // 00BF GETNGBL R17 K8 - 0x88442330, // 00C0 GETMBR R17 R17 K48 - 0x8C44230A, // 00C1 GETMET R17 R17 K10 - 0x5C4C1C00, // 00C2 MOVE R19 R14 - 0x7C440400, // 00C3 CALL R17 2 - 0xB84A1A00, // 00C4 GETNGBL R18 K13 - 0x8C48250E, // 00C5 GETMET R18 R18 K14 - 0x60500008, // 00C6 GETGBL R20 G8 - 0x5C542200, // 00C7 MOVE R21 R17 - 0x7C500200, // 00C8 CALL R20 1 - 0x00526A14, // 00C9 ADD R20 K53 R20 - 0x58540034, // 00CA LDCONST R21 K52 - 0x7C480600, // 00CB CALL R18 3 - 0x8C482331, // 00CC GETMET R18 R17 K49 - 0x54520008, // 00CD LDINT R20 9 - 0x7C480400, // 00CE CALL R18 2 - 0x8C4C2336, // 00CF GETMET R19 R17 K54 - 0x54560005, // 00D0 LDINT R21 6 - 0x7C4C0400, // 00D1 CALL R19 2 - 0x8C502731, // 00D2 GETMET R20 R19 K49 - 0x545A0010, // 00D3 LDINT R22 17 - 0x7C500400, // 00D4 CALL R20 2 - 0x60540004, // 00D5 GETGBL R21 G4 - 0x5C582800, // 00D6 MOVE R22 R20 - 0x7C540200, // 00D7 CALL R21 1 - 0x1C542B37, // 00D8 EQ R21 R21 K55 - 0x78560003, // 00D9 JMPF R21 #00DE - 0xB8567000, // 00DA GETNGBL R21 K56 - 0x5C582800, // 00DB MOVE R22 R20 - 0x7C540200, // 00DC CALL R21 1 - 0x5C502A00, // 00DD MOVE R20 R21 - 0x8C54293A, // 00DE GETMET R21 R20 K58 - 0x7C540200, // 00DF CALL R21 1 - 0x900E7215, // 00E0 SETMBR R3 K57 R21 - 0xB8561A00, // 00E1 GETNGBL R21 K13 - 0x8C542B0E, // 00E2 GETMET R21 R21 K14 - 0x605C0008, // 00E3 GETGBL R23 G8 - 0x88600739, // 00E4 GETMBR R24 R3 K57 - 0x7C5C0200, // 00E5 CALL R23 1 - 0x005E7617, // 00E6 ADD R23 K59 R23 - 0x58600034, // 00E7 LDCONST R24 K52 - 0x7C540600, // 00E8 CALL R21 3 - 0xB8561000, // 00E9 GETNGBL R21 K8 - 0x88542B30, // 00EA GETMBR R21 R21 K48 - 0x8C542B3C, // 00EB GETMET R21 R21 K60 - 0x7C540200, // 00EC CALL R21 1 - 0x8C582B3D, // 00ED GETMET R22 R21 K61 - 0x58600032, // 00EE LDCONST R24 K50 - 0xB8661000, // 00EF GETNGBL R25 K8 - 0x88643330, // 00F0 GETMBR R25 R25 K48 - 0x8864333E, // 00F1 GETMBR R25 R25 K62 - 0x5C681C00, // 00F2 MOVE R26 R14 - 0x7C580800, // 00F3 CALL R22 4 - 0x8C582B3D, // 00F4 GETMET R22 R21 K61 - 0x58600033, // 00F5 LDCONST R24 K51 - 0xB8661000, // 00F6 GETNGBL R25 K8 - 0x88643330, // 00F7 GETMBR R25 R25 K48 - 0x8864333E, // 00F8 GETMBR R25 R25 K62 - 0x5C681E00, // 00F9 MOVE R26 R15 - 0x7C580800, // 00FA CALL R22 4 - 0x8C582B3D, // 00FB GETMET R22 R21 K61 - 0x58600034, // 00FC LDCONST R24 K52 - 0xB8661000, // 00FD GETNGBL R25 K8 - 0x88643330, // 00FE GETMBR R25 R25 K48 - 0x8864333E, // 00FF GETMBR R25 R25 K62 - 0x8868013F, // 0100 GETMBR R26 R0 K63 - 0x7C580800, // 0101 CALL R22 4 - 0x8C582B3D, // 0102 GETMET R22 R21 K61 - 0x54620003, // 0103 LDINT R24 4 - 0xB8661000, // 0104 GETNGBL R25 K8 - 0x88643330, // 0105 GETMBR R25 R25 K48 - 0x8864333E, // 0106 GETMBR R25 R25 K62 - 0x88680140, // 0107 GETMBR R26 R0 K64 - 0x7C580800, // 0108 CALL R22 4 - 0x8C582B41, // 0109 GETMET R22 R21 K65 - 0x7C580200, // 010A CALL R22 1 - 0xB85E1A00, // 010B GETNGBL R23 K13 - 0x8C5C2F0E, // 010C GETMET R23 R23 K14 - 0x8C64251C, // 010D GETMET R25 R18 K28 - 0x7C640200, // 010E CALL R25 1 - 0x00668419, // 010F ADD R25 K66 R25 - 0x546A0003, // 0110 LDINT R26 4 - 0x7C5C0600, // 0111 CALL R23 3 - 0xB85E1A00, // 0112 GETNGBL R23 K13 - 0x8C5C2F0E, // 0113 GETMET R23 R23 K14 - 0x8C64211C, // 0114 GETMET R25 R16 K28 - 0x7C640200, // 0115 CALL R25 1 - 0x00668619, // 0116 ADD R25 K67 R25 - 0x546A0003, // 0117 LDINT R26 4 - 0x7C5C0600, // 0118 CALL R23 3 - 0xB85E1A00, // 0119 GETNGBL R23 K13 - 0x8C5C2F0E, // 011A GETMET R23 R23 K14 - 0x5864000F, // 011B LDCONST R25 K15 - 0x546A0003, // 011C LDINT R26 4 - 0x7C5C0600, // 011D CALL R23 3 - 0x8C5C0544, // 011E GETMET R23 R2 K68 - 0x7C5C0200, // 011F CALL R23 1 - 0x8C5C2F45, // 0120 GETMET R23 R23 K69 - 0x5C642400, // 0121 MOVE R25 R18 - 0x5C682C00, // 0122 MOVE R26 R22 - 0x5C6C2000, // 0123 MOVE R27 R16 - 0x7C5C0800, // 0124 CALL R23 4 - 0x5C602E00, // 0125 MOVE R24 R23 - 0x74620000, // 0126 JMPT R24 #0128 - 0xB0065D46, // 0127 RAISE 1 K46 K70 - 0xB8621A00, // 0128 GETNGBL R24 K13 - 0x8C60310E, // 0129 GETMET R24 R24 K14 - 0x58680047, // 012A LDCONST R26 K71 - 0x586C0034, // 012B LDCONST R27 K52 - 0x7C600600, // 012C CALL R24 3 - 0x8C600510, // 012D GETMET R24 R2 K16 - 0x7C600200, // 012E CALL R24 1 - 0x8C603111, // 012F GETMET R24 R24 K17 - 0x88680712, // 0130 GETMBR R26 R3 K18 - 0x7C600400, // 0131 CALL R24 2 - 0x8C603111, // 0132 GETMET R24 R24 K17 - 0x88680713, // 0133 GETMBR R26 R3 K19 - 0x7C600400, // 0134 CALL R24 2 - 0x8C603111, // 0135 GETMET R24 R24 K17 - 0x88680948, // 0136 GETMBR R26 R4 K72 - 0x7C600400, // 0137 CALL R24 2 - 0x8C603114, // 0138 GETMET R24 R24 K20 - 0x7C600200, // 0139 CALL R24 1 - 0x5C143000, // 013A MOVE R5 R24 - 0x4C600000, // 013B LDNIL R24 - 0x900E2418, // 013C SETMBR R3 K18 R24 - 0x4C600000, // 013D LDNIL R24 - 0x900E2618, // 013E SETMBR R3 K19 R24 - 0xB8621A00, // 013F GETNGBL R24 K13 - 0x8C60310E, // 0140 GETMET R24 R24 K14 - 0x58680049, // 0141 LDCONST R26 K73 - 0x546E0003, // 0142 LDINT R27 4 - 0x7C600600, // 0143 CALL R24 3 - 0xB8621A00, // 0144 GETNGBL R24 K13 - 0x8C60310E, // 0145 GETMET R24 R24 K14 - 0x88680722, // 0146 GETMBR R26 R3 K34 - 0x8C68351C, // 0147 GETMET R26 R26 K28 - 0x7C680200, // 0148 CALL R26 1 - 0x006A941A, // 0149 ADD R26 K74 R26 - 0x546E0003, // 014A LDINT R27 4 - 0x7C600600, // 014B CALL R24 3 - 0xB8621A00, // 014C GETNGBL R24 K13 - 0x8C60310E, // 014D GETMET R24 R24 K14 - 0x8C68071B, // 014E GETMET R26 R3 K27 - 0x7C680200, // 014F CALL R26 1 - 0x00683405, // 0150 ADD R26 R26 R5 - 0x8C68351C, // 0151 GETMET R26 R26 K28 - 0x7C680200, // 0152 CALL R26 1 - 0x006A961A, // 0153 ADD R26 K75 R26 - 0x546E0003, // 0154 LDINT R27 4 - 0x7C600600, // 0155 CALL R24 3 - 0x8C600520, // 0156 GETMET R24 R2 K32 - 0x7C600200, // 0157 CALL R24 1 - 0x8C603121, // 0158 GETMET R24 R24 K33 - 0x88680722, // 0159 GETMBR R26 R3 K34 - 0x8C6C071B, // 015A GETMET R27 R3 K27 - 0x7C6C0200, // 015B CALL R27 1 - 0x006C3605, // 015C ADD R27 R27 R5 - 0x60700015, // 015D GETGBL R28 G21 - 0x7C700000, // 015E CALL R28 0 - 0x8C70391E, // 015F GETMET R28 R28 K30 - 0x8878014C, // 0160 GETMBR R30 R0 K76 - 0x7C700400, // 0161 CALL R28 2 - 0x5476002F, // 0162 LDINT R29 48 - 0x7C600A00, // 0163 CALL R24 5 - 0x5466000E, // 0164 LDINT R25 15 - 0x40660619, // 0165 CONNECT R25 K3 R25 - 0x94643019, // 0166 GETIDX R25 R24 R25 - 0x546A000F, // 0167 LDINT R26 16 - 0x546E001E, // 0168 LDINT R27 31 - 0x4068341B, // 0169 CONNECT R26 R26 R27 - 0x9468301A, // 016A GETIDX R26 R24 R26 - 0x546E001F, // 016B LDINT R27 32 - 0x5472002E, // 016C LDINT R28 47 - 0x406C361C, // 016D CONNECT R27 R27 R28 - 0x946C301B, // 016E GETIDX R27 R24 R27 - 0xB8721A00, // 016F GETNGBL R28 K13 - 0x8C70394D, // 0170 GETMET R28 R28 K77 - 0x7C700200, // 0171 CALL R28 1 - 0x9470394E, // 0172 GETIDX R28 R28 K78 - 0xB8761A00, // 0173 GETNGBL R29 K13 - 0x8C743B0E, // 0174 GETMET R29 R29 K14 - 0x587C0049, // 0175 LDCONST R31 K73 - 0x54820003, // 0176 LDINT R32 4 - 0x7C740600, // 0177 CALL R29 3 - 0xB8761A00, // 0178 GETNGBL R29 K13 - 0x8C743B0E, // 0179 GETMET R29 R29 K14 - 0x8C7C331C, // 017A GETMET R31 R25 K28 - 0x7C7C0200, // 017B CALL R31 1 - 0x007E9E1F, // 017C ADD R31 K79 R31 - 0x54820003, // 017D LDINT R32 4 - 0x7C740600, // 017E CALL R29 3 - 0xB8761A00, // 017F GETNGBL R29 K13 - 0x8C743B0E, // 0180 GETMET R29 R29 K14 - 0x8C7C351C, // 0181 GETMET R31 R26 K28 - 0x7C7C0200, // 0182 CALL R31 1 - 0x007EA01F, // 0183 ADD R31 K80 R31 - 0x54820003, // 0184 LDINT R32 4 - 0x7C740600, // 0185 CALL R29 3 - 0xB8761A00, // 0186 GETNGBL R29 K13 - 0x8C743B0E, // 0187 GETMET R29 R29 K14 - 0x8C7C371C, // 0188 GETMET R31 R27 K28 - 0x7C7C0200, // 0189 CALL R31 1 - 0x007EA21F, // 018A ADD R31 K81 R31 - 0x54820003, // 018B LDINT R32 4 - 0x7C740600, // 018C CALL R29 3 - 0xB8761A00, // 018D GETNGBL R29 K13 - 0x8C743B0E, // 018E GETMET R29 R29 K14 - 0x587C0049, // 018F LDCONST R31 K73 - 0x54820003, // 0190 LDINT R32 4 - 0x7C740600, // 0191 CALL R29 3 - 0x8C740352, // 0192 GETMET R29 R1 K82 - 0x547E003F, // 0193 LDINT R31 64 - 0x50800200, // 0194 LDBOOL R32 1 0 - 0x7C740600, // 0195 CALL R29 3 - 0x60780015, // 0196 GETGBL R30 G21 - 0x7C780000, // 0197 CALL R30 0 - 0x8C7C3D53, // 0198 GETMET R31 R30 K83 - 0x58840003, // 0199 LDCONST R33 K3 - 0x58880033, // 019A LDCONST R34 K51 - 0x7C7C0600, // 019B CALL R31 3 - 0x8C7C3D53, // 019C GETMET R31 R30 K83 - 0x58840003, // 019D LDCONST R33 K3 - 0x548A0003, // 019E LDINT R34 4 - 0x7C7C0600, // 019F CALL R31 3 - 0x8C7C3D53, // 01A0 GETMET R31 R30 K83 - 0x58840003, // 01A1 LDCONST R33 K3 - 0x548A0003, // 01A2 LDINT R34 4 - 0x7C7C0600, // 01A3 CALL R31 3 - 0x8C7C3B41, // 01A4 GETMET R31 R29 K65 - 0x5C843C00, // 01A5 MOVE R33 R30 - 0x7C7C0400, // 01A6 CALL R31 2 - 0x88800154, // 01A7 GETMBR R32 R0 K84 - 0x8C804155, // 01A8 GETMET R32 R32 K85 - 0x5C883E00, // 01A9 MOVE R34 R31 - 0x888C0356, // 01AA GETMBR R35 R1 K86 - 0x88900357, // 01AB GETMBR R36 R1 K87 - 0x88943B58, // 01AC GETMBR R37 R29 K88 - 0x7C800A00, // 01AD CALL R32 5 - 0x8C800759, // 01AE GETMET R32 R3 K89 - 0x7C800200, // 01AF CALL R32 1 - 0x8C80075A, // 01B0 GETMET R32 R3 K90 - 0x5C883200, // 01B1 MOVE R34 R25 - 0x5C8C3400, // 01B2 MOVE R35 R26 - 0x5C903600, // 01B3 MOVE R36 R27 - 0x5C943800, // 01B4 MOVE R37 R28 - 0x7C800A00, // 01B5 CALL R32 5 - 0x8C80075B, // 01B6 GETMET R32 R3 K91 - 0x50880200, // 01B7 LDBOOL R34 1 0 - 0x7C800400, // 01B8 CALL R32 2 - 0x8C80075C, // 01B9 GETMET R32 R3 K92 - 0x7C800200, // 01BA CALL R32 1 - 0x8C80075D, // 01BB GETMET R32 R3 K93 - 0x7C800200, // 01BC CALL R32 1 - 0x8C80075E, // 01BD GETMET R32 R3 K94 - 0x7C800200, // 01BE CALL R32 1 - 0x50800200, // 01BF LDBOOL R32 1 0 - 0x80044000, // 01C0 RET 1 R32 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: parse_PBKDFParamRequest -********************************************************************/ -be_local_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest, /* name */ - be_nested_proto( - 14, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[46]) { /* constants */ - /* K0 */ be_nested_str_weak(crypto), - /* K1 */ be_nested_str_weak(opcode), - /* K2 */ be_nested_str_weak(local_session_id), - /* K3 */ be_const_int(0), - /* K4 */ be_nested_str_weak(protocol_id), - /* K5 */ be_nested_str_weak(protocol_error), - /* K6 */ be_nested_str_weak(invalid_X20PBKDFParamRequest_X20message), - /* K7 */ be_nested_str_weak(matter), - /* K8 */ be_nested_str_weak(PBKDFParamRequest), - /* K9 */ be_nested_str_weak(parse), - /* K10 */ be_nested_str_weak(raw), - /* K11 */ be_nested_str_weak(app_payload_idx), - /* K12 */ be_nested_str_weak(session), - /* K13 */ be_nested_str_weak(set_mode_PASE), - /* K14 */ be_const_int(2147483647), - /* K15 */ be_nested_str_weak(passcodeId), - /* K16 */ be_nested_str_weak(non_X2Dzero_X20passcode_X20id), - /* K17 */ be_nested_str_weak(future_initiator_session_id), - /* K18 */ be_nested_str_weak(initiator_session_id), - /* K19 */ be_nested_str_weak(future_local_session_id), - /* K20 */ be_nested_str_weak(device), - /* K21 */ be_nested_str_weak(sessions), - /* K22 */ be_nested_str_weak(gen_local_session_id), - /* K23 */ be_nested_str_weak(tasmota), - /* K24 */ be_nested_str_weak(log), - /* K25 */ be_nested_str_weak(MTR_X3A_X20Loc_session_X3D), - /* K26 */ be_nested_str_weak(PBKDFParamResponse), - /* K27 */ be_nested_str_weak(initiatorRandom), - /* K28 */ be_nested_str_weak(responderRandom), - /* K29 */ be_nested_str_weak(random), - /* K30 */ be_nested_str_weak(responderSessionId), - /* K31 */ be_nested_str_weak(pbkdf_parameters_salt), - /* K32 */ be_nested_str_weak(salt), - /* K33 */ be_nested_str_weak(pbkdf_parameters_iterations), - /* K34 */ be_nested_str_weak(iterations), - /* K35 */ be_nested_str_weak(MTR_X3A_X20pbkdfparamresp_X3A_X20), - /* K36 */ be_nested_str_weak(inspect), - /* K37 */ be_nested_str_weak(encode), - /* K38 */ be_nested_str_weak(MTR_X3A_X20pbkdfparamresp_raw_X3A_X20), - /* K39 */ be_nested_str_weak(tohex), - /* K40 */ be_nested_str_weak(build_response), - /* K41 */ be_nested_str_weak(responder), - /* K42 */ be_nested_str_weak(send_response), - /* K43 */ be_nested_str_weak(remote_ip), - /* K44 */ be_nested_str_weak(remote_port), - /* K45 */ be_nested_str_weak(message_counter), - }), - be_str_weak(parse_PBKDFParamRequest), - &be_const_str_solidified, - ( &(const binstruction[98]) { /* code */ - 0xA40A0000, // 0000 IMPORT R2 K0 - 0x880C0301, // 0001 GETMBR R3 R1 K1 - 0x5412001F, // 0002 LDINT R4 32 - 0x200C0604, // 0003 NE R3 R3 R4 - 0x740E0005, // 0004 JMPT R3 #000B - 0x880C0302, // 0005 GETMBR R3 R1 K2 - 0x200C0703, // 0006 NE R3 R3 K3 - 0x740E0002, // 0007 JMPT R3 #000B - 0x880C0304, // 0008 GETMBR R3 R1 K4 - 0x200C0703, // 0009 NE R3 R3 K3 - 0x780E0000, // 000A JMPF R3 #000C - 0xB0060B06, // 000B RAISE 1 K5 K6 - 0xB80E0E00, // 000C GETNGBL R3 K7 - 0x8C0C0708, // 000D GETMET R3 R3 K8 - 0x7C0C0200, // 000E CALL R3 1 - 0x8C0C0709, // 000F GETMET R3 R3 K9 - 0x8814030A, // 0010 GETMBR R5 R1 K10 - 0x8818030B, // 0011 GETMBR R6 R1 K11 - 0x7C0C0600, // 0012 CALL R3 3 - 0x8810030C, // 0013 GETMBR R4 R1 K12 - 0x8C10090D, // 0014 GETMET R4 R4 K13 - 0x7C100200, // 0015 CALL R4 1 - 0x8810030B, // 0016 GETMBR R4 R1 K11 - 0x4010090E, // 0017 CONNECT R4 R4 K14 - 0x8814030A, // 0018 GETMBR R5 R1 K10 - 0x94100A04, // 0019 GETIDX R4 R5 R4 - 0x90021004, // 001A SETMBR R0 K8 R4 - 0x8810070F, // 001B GETMBR R4 R3 K15 - 0x20100903, // 001C NE R4 R4 K3 - 0x78120000, // 001D JMPF R4 #001F - 0xB0060B10, // 001E RAISE 1 K5 K16 - 0x88100712, // 001F GETMBR R4 R3 K18 - 0x90022204, // 0020 SETMBR R0 K17 R4 - 0x88100114, // 0021 GETMBR R4 R0 K20 - 0x88100915, // 0022 GETMBR R4 R4 K21 - 0x8C100916, // 0023 GETMET R4 R4 K22 - 0x7C100200, // 0024 CALL R4 1 - 0x90022604, // 0025 SETMBR R0 K19 R4 - 0xB8122E00, // 0026 GETNGBL R4 K23 - 0x8C100918, // 0027 GETMET R4 R4 K24 - 0x60180008, // 0028 GETGBL R6 G8 - 0x881C0113, // 0029 GETMBR R7 R0 K19 - 0x7C180200, // 002A CALL R6 1 - 0x001A3206, // 002B ADD R6 K25 R6 - 0x7C100400, // 002C CALL R4 2 - 0xB8120E00, // 002D GETNGBL R4 K7 - 0x8C10091A, // 002E GETMET R4 R4 K26 - 0x7C100200, // 002F CALL R4 1 - 0x8814071B, // 0030 GETMBR R5 R3 K27 - 0x90123605, // 0031 SETMBR R4 K27 R5 - 0x8C14051D, // 0032 GETMET R5 R2 K29 - 0x541E001F, // 0033 LDINT R7 32 - 0x7C140400, // 0034 CALL R5 2 - 0x90123805, // 0035 SETMBR R4 K28 R5 - 0x88140113, // 0036 GETMBR R5 R0 K19 - 0x90123C05, // 0037 SETMBR R4 K30 R5 - 0x88140114, // 0038 GETMBR R5 R0 K20 - 0x88140B20, // 0039 GETMBR R5 R5 K32 - 0x90123E05, // 003A SETMBR R4 K31 R5 - 0x88140114, // 003B GETMBR R5 R0 K20 - 0x88140B22, // 003C GETMBR R5 R5 K34 - 0x90124205, // 003D SETMBR R4 K33 R5 - 0xB8162E00, // 003E GETNGBL R5 K23 - 0x8C140B18, // 003F GETMET R5 R5 K24 - 0x601C0008, // 0040 GETGBL R7 G8 - 0xB8220E00, // 0041 GETNGBL R8 K7 - 0x8C201124, // 0042 GETMET R8 R8 K36 - 0x5C280800, // 0043 MOVE R10 R4 - 0x7C200400, // 0044 CALL R8 2 - 0x7C1C0200, // 0045 CALL R7 1 - 0x001E4607, // 0046 ADD R7 K35 R7 - 0x54220003, // 0047 LDINT R8 4 - 0x7C140600, // 0048 CALL R5 3 - 0x8C140925, // 0049 GETMET R5 R4 K37 - 0x7C140200, // 004A CALL R5 1 - 0xB81A2E00, // 004B GETNGBL R6 K23 - 0x8C180D18, // 004C GETMET R6 R6 K24 - 0x8C200B27, // 004D GETMET R8 R5 K39 - 0x7C200200, // 004E CALL R8 1 - 0x00224C08, // 004F ADD R8 K38 R8 - 0x54260003, // 0050 LDINT R9 4 - 0x7C180600, // 0051 CALL R6 3 - 0x90023405, // 0052 SETMBR R0 K26 R5 - 0x8C180328, // 0053 GETMET R6 R1 K40 - 0x54220020, // 0054 LDINT R8 33 - 0x50240200, // 0055 LDBOOL R9 1 0 - 0x7C180600, // 0056 CALL R6 3 - 0x8C1C0D25, // 0057 GETMET R7 R6 K37 - 0x5C240A00, // 0058 MOVE R9 R5 - 0x7C1C0400, // 0059 CALL R7 2 - 0x88200129, // 005A GETMBR R8 R0 K41 - 0x8C20112A, // 005B GETMET R8 R8 K42 - 0x5C280E00, // 005C MOVE R10 R7 - 0x882C032B, // 005D GETMBR R11 R1 K43 - 0x8830032C, // 005E GETMBR R12 R1 K44 - 0x88340D2D, // 005F GETMBR R13 R6 K45 - 0x7C200A00, // 0060 CALL R8 5 - 0x80000000, // 0061 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: find_fabric_by_destination_id ********************************************************************/ @@ -2366,49 +2252,219 @@ be_local_closure(Matter_Commisioning_Context_find_fabric_by_destination_id, /* /*******************************************************************/ +/******************************************************************** +** Solidified function: parse_StatusReport +********************************************************************/ +be_local_closure(Matter_Commisioning_Context_parse_StatusReport, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(session), + /* K1 */ be_nested_str_weak(tasmota), + /* K2 */ be_nested_str_weak(log), + /* K3 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X20_X3D_X20), + /* K4 */ be_nested_str_weak(raw), + /* K5 */ be_nested_str_weak(app_payload_idx), + /* K6 */ be_const_int(2147483647), + /* K7 */ be_nested_str_weak(tohex), + }), + be_str_weak(parse_StatusReport), + &be_const_str_solidified, + ( &(const binstruction[13]) { /* code */ + 0x88080300, // 0000 GETMBR R2 R1 K0 + 0xB80E0200, // 0001 GETNGBL R3 K1 + 0x8C0C0702, // 0002 GETMET R3 R3 K2 + 0x88140305, // 0003 GETMBR R5 R1 K5 + 0x40140B06, // 0004 CONNECT R5 R5 K6 + 0x88180304, // 0005 GETMBR R6 R1 K4 + 0x94140C05, // 0006 GETIDX R5 R6 R5 + 0x8C140B07, // 0007 GETMET R5 R5 K7 + 0x7C140200, // 0008 CALL R5 1 + 0x00160605, // 0009 ADD R5 K3 R5 + 0x7C0C0400, // 000A CALL R3 2 + 0x500C0200, // 000B LDBOOL R3 1 0 + 0x80040600, // 000C RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: process_incoming +********************************************************************/ +be_local_closure(Matter_Commisioning_Context_process_incoming, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[17]) { /* constants */ + /* K0 */ be_nested_str_weak(device), + /* K1 */ be_nested_str_weak(is_commissioning_open), + /* K2 */ be_nested_str_weak(opcode), + /* K3 */ be_nested_str_weak(tasmota), + /* K4 */ be_nested_str_weak(log), + /* K5 */ be_nested_str_weak(MTR_X3A_X20commissioning_X20not_X20open), + /* K6 */ be_const_int(2), + /* K7 */ be_nested_str_weak(MTR_X3A_X20received_X20message_X20), + /* K8 */ be_nested_str_weak(matter), + /* K9 */ be_nested_str_weak(inspect), + /* K10 */ be_const_int(3), + /* K11 */ be_nested_str_weak(parse_PBKDFParamRequest), + /* K12 */ be_nested_str_weak(parse_Pake1), + /* K13 */ be_nested_str_weak(parse_Pake3), + /* K14 */ be_nested_str_weak(parse_Sigma1), + /* K15 */ be_nested_str_weak(parse_Sigma3), + /* K16 */ be_nested_str_weak(parse_StatusReport), + }), + be_str_weak(process_incoming), + &be_const_str_solidified, + ( &(const binstruction[83]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x7C080200, // 0002 CALL R2 1 + 0x740A000E, // 0003 JMPT R2 #0013 + 0x88080302, // 0004 GETMBR R2 R1 K2 + 0x540E001F, // 0005 LDINT R3 32 + 0x28080403, // 0006 GE R2 R2 R3 + 0x780A000A, // 0007 JMPF R2 #0013 + 0x88080302, // 0008 GETMBR R2 R1 K2 + 0x540E0023, // 0009 LDINT R3 36 + 0x18080403, // 000A LE R2 R2 R3 + 0x780A0006, // 000B JMPF R2 #0013 + 0xB80A0600, // 000C GETNGBL R2 K3 + 0x8C080504, // 000D GETMET R2 R2 K4 + 0x58100005, // 000E LDCONST R4 K5 + 0x58140006, // 000F LDCONST R5 K6 + 0x7C080600, // 0010 CALL R2 3 + 0x50080000, // 0011 LDBOOL R2 0 0 + 0x80040400, // 0012 RET 1 R2 + 0xB80A0600, // 0013 GETNGBL R2 K3 + 0x8C080504, // 0014 GETMET R2 R2 K4 + 0xB8121000, // 0015 GETNGBL R4 K8 + 0x8C100909, // 0016 GETMET R4 R4 K9 + 0x5C180200, // 0017 MOVE R6 R1 + 0x7C100400, // 0018 CALL R4 2 + 0x00120E04, // 0019 ADD R4 K7 R4 + 0x5814000A, // 001A LDCONST R5 K10 + 0x7C080600, // 001B CALL R2 3 + 0x88080302, // 001C GETMBR R2 R1 K2 + 0x540E001F, // 001D LDINT R3 32 + 0x1C080403, // 001E EQ R2 R2 R3 + 0x780A0004, // 001F JMPF R2 #0025 + 0x8C08010B, // 0020 GETMET R2 R0 K11 + 0x5C100200, // 0021 MOVE R4 R1 + 0x7C080400, // 0022 CALL R2 2 + 0x80040400, // 0023 RET 1 R2 + 0x7002002B, // 0024 JMP #0051 + 0x88080302, // 0025 GETMBR R2 R1 K2 + 0x540E0021, // 0026 LDINT R3 34 + 0x1C080403, // 0027 EQ R2 R2 R3 + 0x780A0004, // 0028 JMPF R2 #002E + 0x8C08010C, // 0029 GETMET R2 R0 K12 + 0x5C100200, // 002A MOVE R4 R1 + 0x7C080400, // 002B CALL R2 2 + 0x80040400, // 002C RET 1 R2 + 0x70020022, // 002D JMP #0051 + 0x88080302, // 002E GETMBR R2 R1 K2 + 0x540E0023, // 002F LDINT R3 36 + 0x1C080403, // 0030 EQ R2 R2 R3 + 0x780A0004, // 0031 JMPF R2 #0037 + 0x8C08010D, // 0032 GETMET R2 R0 K13 + 0x5C100200, // 0033 MOVE R4 R1 + 0x7C080400, // 0034 CALL R2 2 + 0x80040400, // 0035 RET 1 R2 + 0x70020019, // 0036 JMP #0051 + 0x88080302, // 0037 GETMBR R2 R1 K2 + 0x540E002F, // 0038 LDINT R3 48 + 0x1C080403, // 0039 EQ R2 R2 R3 + 0x780A0004, // 003A JMPF R2 #0040 + 0x8C08010E, // 003B GETMET R2 R0 K14 + 0x5C100200, // 003C MOVE R4 R1 + 0x7C080400, // 003D CALL R2 2 + 0x80040400, // 003E RET 1 R2 + 0x70020010, // 003F JMP #0051 + 0x88080302, // 0040 GETMBR R2 R1 K2 + 0x540E0031, // 0041 LDINT R3 50 + 0x1C080403, // 0042 EQ R2 R2 R3 + 0x780A0004, // 0043 JMPF R2 #0049 + 0x8C08010F, // 0044 GETMET R2 R0 K15 + 0x5C100200, // 0045 MOVE R4 R1 + 0x7C080400, // 0046 CALL R2 2 + 0x80040400, // 0047 RET 1 R2 + 0x70020007, // 0048 JMP #0051 + 0x88080302, // 0049 GETMBR R2 R1 K2 + 0x540E003F, // 004A LDINT R3 64 + 0x1C080403, // 004B EQ R2 R2 R3 + 0x780A0003, // 004C JMPF R2 #0051 + 0x8C080110, // 004D GETMET R2 R0 K16 + 0x5C100200, // 004E MOVE R4 R1 + 0x7C080400, // 004F CALL R2 2 + 0x80040400, // 0050 RET 1 R2 + 0x50080000, // 0051 LDBOOL R2 0 0 + 0x80040400, // 0052 RET 1 R2 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified class: Matter_Commisioning_Context ********************************************************************/ be_local_class(Matter_Commisioning_Context, 20, NULL, - be_nested_map(35, + be_nested_map(36, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(parse_Pake3, -1), be_const_closure(Matter_Commisioning_Context_parse_Pake3_closure) }, - { be_const_key_weak(I2RKey, 9), be_const_var(17) }, - { be_const_key_weak(AttestationChallenge, -1), be_const_var(19) }, - { be_const_key_weak(parse_Pake1, -1), be_const_closure(Matter_Commisioning_Context_parse_Pake1_closure) }, - { be_const_key_weak(PBKDFParamRequest, -1), be_const_var(5) }, - { be_const_key_weak(Matter_Context_Prefix, 14), be_nested_str_weak(CHIP_X20PAKE_X20V1_X20Commissioning) }, - { be_const_key_weak(device, 34), be_const_var(1) }, - { be_const_key_weak(S3K_Info, -1), be_nested_str_weak(Sigma3) }, - { be_const_key_weak(R2IKey, 21), be_const_var(18) }, - { be_const_key_weak(S2K_Info, 27), be_nested_str_weak(Sigma2) }, - { be_const_key_weak(every_second, -1), be_const_closure(Matter_Commisioning_Context_every_second_closure) }, - { be_const_key_weak(future_local_session_id, -1), be_const_var(4) }, - { be_const_key_weak(process_incoming, 29), be_const_closure(Matter_Commisioning_Context_process_incoming_closure) }, - { be_const_key_weak(pB, -1), be_const_var(9) }, - { be_const_key_weak(init, -1), be_const_closure(Matter_Commisioning_Context_init_closure) }, - { be_const_key_weak(ResponderEph_pub, -1), be_const_var(14) }, - { be_const_key_weak(cA, -1), be_const_var(10) }, - { be_const_key_weak(future_initiator_session_id, 16), be_const_var(3) }, - { be_const_key_weak(responder, -1), be_const_var(0) }, - { be_const_key_weak(parse_Sigma1, 24), be_const_closure(Matter_Commisioning_Context_parse_Sigma1_closure) }, - { be_const_key_weak(PBKDFParamResponse, -1), be_const_var(6) }, - { be_const_key_weak(Ke, 26), be_const_var(12) }, - { be_const_key_weak(parse_Sigma3, -1), be_const_closure(Matter_Commisioning_Context_parse_Sigma3_closure) }, { be_const_key_weak(parse_PBKDFParamRequest, -1), be_const_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest_closure) }, - { be_const_key_weak(created, -1), be_const_var(16) }, - { be_const_key_weak(spake, -1), be_const_var(2) }, - { be_const_key_weak(find_fabric_by_destination_id, -1), be_const_closure(Matter_Commisioning_Context_find_fabric_by_destination_id_closure) }, - { be_const_key_weak(TBEData3_Nonce, -1), be_nested_str_weak(NCASE_Sigma3N) }, - { be_const_key_weak(ResponderEph_priv, -1), be_const_var(13) }, - { be_const_key_weak(TBEData2_Nonce, -1), be_nested_str_weak(NCASE_Sigma2N) }, + { be_const_key_weak(cA, 34), be_const_var(10) }, + { be_const_key_weak(device, -1), be_const_var(1) }, + { be_const_key_weak(parse_StatusReport, -1), be_const_closure(Matter_Commisioning_Context_parse_StatusReport_closure) }, { be_const_key_weak(cB, -1), be_const_var(11) }, + { be_const_key_weak(spake, -1), be_const_var(2) }, + { be_const_key_weak(future_local_session_id, 2), be_const_var(4) }, + { be_const_key_weak(R2IKey, -1), be_const_var(18) }, + { be_const_key_weak(find_fabric_by_destination_id, 9), be_const_closure(Matter_Commisioning_Context_find_fabric_by_destination_id_closure) }, + { be_const_key_weak(parse_Sigma1, -1), be_const_closure(Matter_Commisioning_Context_parse_Sigma1_closure) }, { be_const_key_weak(SEKeys_Info, -1), be_nested_str_weak(SessionKeys) }, - { be_const_key_weak(pA, 1), be_const_var(8) }, - { be_const_key_weak(initiatorEph_pub, 4), be_const_var(15) }, - { be_const_key_weak(y, -1), be_const_var(7) }, + { be_const_key_weak(I2RKey, -1), be_const_var(17) }, + { be_const_key_weak(ResponderEph_priv, -1), be_const_var(13) }, + { be_const_key_weak(parse_Pake1, 3), be_const_closure(Matter_Commisioning_Context_parse_Pake1_closure) }, + { be_const_key_weak(AttestationChallenge, -1), be_const_var(19) }, + { be_const_key_weak(init, 30), be_const_closure(Matter_Commisioning_Context_init_closure) }, + { be_const_key_weak(ResponderEph_pub, 27), be_const_var(14) }, + { be_const_key_weak(initiatorEph_pub, -1), be_const_var(15) }, + { be_const_key_weak(every_second, -1), be_const_closure(Matter_Commisioning_Context_every_second_closure) }, + { be_const_key_weak(created, -1), be_const_var(16) }, + { be_const_key_weak(parse_Sigma3, -1), be_const_closure(Matter_Commisioning_Context_parse_Sigma3_closure) }, + { be_const_key_weak(Matter_Context_Prefix, 18), be_nested_str_weak(CHIP_X20PAKE_X20V1_X20Commissioning) }, + { be_const_key_weak(pA, 32), be_const_var(8) }, + { be_const_key_weak(pB, -1), be_const_var(9) }, + { be_const_key_weak(TBEData2_Nonce, -1), be_nested_str_weak(NCASE_Sigma2N) }, + { be_const_key_weak(future_initiator_session_id, -1), be_const_var(3) }, + { be_const_key_weak(PBKDFParamResponse, -1), be_const_var(6) }, + { be_const_key_weak(PBKDFParamRequest, -1), be_const_var(5) }, + { be_const_key_weak(y, 26), be_const_var(7) }, + { be_const_key_weak(Ke, 20), be_const_var(12) }, + { be_const_key_weak(parse_Pake3, 6), be_const_closure(Matter_Commisioning_Context_parse_Pake3_closure) }, + { be_const_key_weak(TBEData3_Nonce, 8), be_nested_str_weak(NCASE_Sigma3N) }, + { be_const_key_weak(S2K_Info, -1), be_nested_str_weak(Sigma2) }, + { be_const_key_weak(S3K_Info, -1), be_nested_str_weak(Sigma3) }, + { be_const_key_weak(responder, -1), be_const_var(0) }, + { be_const_key_weak(process_incoming, -1), be_const_closure(Matter_Commisioning_Context_process_incoming_closure) }, })), be_str_weak(Matter_Commisioning_Context) ); diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Device.h index 6fdcf53b8..1fc3bfed2 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Device.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Device.h @@ -231,7 +231,7 @@ be_local_closure(Matter_Device_start_operational_discovery, /* name */ ********************************************************************/ be_local_closure(Matter_Device__start_mdns_announce, /* name */ be_nested_proto( - 15, /* nstack */ + 17, /* nstack */ 2, /* argc */ 2, /* varg */ 0, /* has upvals */ @@ -243,368 +243,435 @@ be_local_closure(Matter_Device__start_mdns_announce, /* name */ /* K0 */ be_nested_str_weak(mdns), /* K1 */ be_nested_str_weak(string), /* K2 */ be_nested_str_weak(start), - /* K3 */ be_nested_str_weak(VP), - /* K4 */ be_nested_str_weak(vendorid), - /* K5 */ be_nested_str_weak(_X2B), - /* K6 */ be_nested_str_weak(productid), - /* K7 */ be_nested_str_weak(D), - /* K8 */ be_nested_str_weak(discriminator), - /* K9 */ be_nested_str_weak(CM), - /* K10 */ be_const_int(1), - /* K11 */ be_nested_str_weak(T), - /* K12 */ be_const_int(0), - /* K13 */ be_nested_str_weak(SII), - /* K14 */ be_nested_str_weak(SAI), - /* K15 */ be_nested_str_weak(tasmota), - /* K16 */ be_nested_str_weak(eth), - /* K17 */ be_nested_str_weak(hostname_eth), - /* K18 */ be_nested_str_weak(replace), - /* K19 */ be_nested_str_weak(find), - /* K20 */ be_nested_str_weak(mac), - /* K21 */ be_nested_str_weak(_X3A), - /* K22 */ be_nested_str_weak(), - /* K23 */ be_nested_str_weak(ipv4only), - /* K24 */ be_nested_str_weak(add_hostname), - /* K25 */ be_nested_str_weak(ip6local), - /* K26 */ be_nested_str_weak(ip), - /* K27 */ be_nested_str_weak(ip6), - /* K28 */ be_nested_str_weak(add_service), + /* K3 */ be_nested_str_weak(D), + /* K4 */ be_nested_str_weak(discriminator), + /* K5 */ be_nested_str_weak(CM), + /* K6 */ be_const_int(1), + /* K7 */ be_nested_str_weak(T), + /* K8 */ be_const_int(0), + /* K9 */ be_nested_str_weak(SII), + /* K10 */ be_nested_str_weak(SAI), + /* K11 */ be_nested_str_weak(tasmota), + /* K12 */ be_nested_str_weak(eth), + /* K13 */ be_nested_str_weak(hostname_eth), + /* K14 */ be_nested_str_weak(replace), + /* K15 */ be_nested_str_weak(find), + /* K16 */ be_nested_str_weak(mac), + /* K17 */ be_nested_str_weak(_X3A), + /* K18 */ be_nested_str_weak(), + /* K19 */ be_nested_str_weak(ipv4only), + /* K20 */ be_nested_str_weak(log), + /* K21 */ be_nested_str_weak(format), + /* K22 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_hostname_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29), + /* K23 */ be_nested_str_weak(ip6local), + /* K24 */ be_nested_str_weak(ip), + /* K25 */ be_const_int(3), + /* K26 */ be_nested_str_weak(add_hostname), + /* K27 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_hostname_X28_X25s_X2C_X20_X25s_X29), + /* K28 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25i_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29), /* K29 */ be_nested_str_weak(_matterc), /* K30 */ be_nested_str_weak(_udp), /* K31 */ be_nested_str_weak(commissioning_instance_eth), - /* K32 */ be_nested_str_weak(log), - /* K33 */ be_nested_str_weak(format), - /* K34 */ be_nested_str_weak(MTR_X3A_X20starting_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60), - /* K35 */ be_nested_str_weak(wifi), - /* K36 */ be_nested_str_weak(commissioning_instance_wifi), - /* K37 */ be_nested_str_weak(hostname_wifi), - /* K38 */ be_const_int(2), - /* K39 */ be_nested_str_weak(_L), - /* K40 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20), - /* K41 */ be_const_int(3), - /* K42 */ be_nested_str_weak(add_subtype), - /* K43 */ be_nested_str_weak(_S), - /* K44 */ be_nested_str_weak(_V), - /* K45 */ be_nested_str_weak(_CM1), + /* K32 */ be_nested_str_weak(add_service), + /* K33 */ be_nested_str_weak(MTR_X3A_X20starting_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60), + /* K34 */ be_nested_str_weak(wifi), + /* K35 */ be_nested_str_weak(commissioning_instance_wifi), + /* K36 */ be_nested_str_weak(hostname_wifi), + /* K37 */ be_const_int(2), + /* K38 */ be_nested_str_weak(_L), + /* K39 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20), + /* K40 */ be_nested_str_weak(add_subtype), + /* K41 */ be_nested_str_weak(_S), + /* K42 */ be_nested_str_weak(_V), + /* K43 */ be_nested_str_weak(vendorid), + /* K44 */ be_nested_str_weak(_CM1), + /* K45 */ be_nested_str_weak(ip6), /* K46 */ be_nested_str_weak(MTR_X3A_X20Exception), /* K47 */ be_nested_str_weak(_X7C), /* K48 */ be_nested_str_weak(mdns_announce_op_discovery_all_fabrics), }), be_str_weak(_start_mdns_announce), &be_const_str_solidified, - ( &(const binstruction[312]) { /* code */ + ( &(const binstruction[379]) { /* code */ 0xA40A0000, // 0000 IMPORT R2 K0 0xA40E0200, // 0001 IMPORT R3 K1 0x8C100502, // 0002 GETMET R4 R2 K2 0x7C100200, // 0003 CALL R4 1 0x60100013, // 0004 GETGBL R4 G19 0x7C100000, // 0005 CALL R4 0 - 0x60140008, // 0006 GETGBL R5 G8 - 0x88180104, // 0007 GETMBR R6 R0 K4 - 0x7C140200, // 0008 CALL R5 1 - 0x00140B05, // 0009 ADD R5 R5 K5 - 0x60180008, // 000A GETGBL R6 G8 - 0x881C0106, // 000B GETMBR R7 R0 K6 - 0x7C180200, // 000C CALL R6 1 - 0x00140A06, // 000D ADD R5 R5 R6 - 0x98120605, // 000E SETIDX R4 K3 R5 - 0x88140108, // 000F GETMBR R5 R0 K8 - 0x98120E05, // 0010 SETIDX R4 K7 R5 - 0x9812130A, // 0011 SETIDX R4 K9 K10 - 0x9812170C, // 0012 SETIDX R4 K11 K12 - 0x54161387, // 0013 LDINT R5 5000 - 0x98121A05, // 0014 SETIDX R4 K13 R5 - 0x5416012B, // 0015 LDINT R5 300 - 0x98121C05, // 0016 SETIDX R4 K14 R5 - 0xA802010B, // 0017 EXBLK 0 #0124 - 0x78060084, // 0018 JMPF R1 #009E - 0xB8161E00, // 0019 GETNGBL R5 K15 - 0x8C140B10, // 001A GETMET R5 R5 K16 - 0x7C140200, // 001B CALL R5 1 - 0x8C180712, // 001C GETMET R6 R3 K18 - 0x8C200B13, // 001D GETMET R8 R5 K19 - 0x58280014, // 001E LDCONST R10 K20 - 0x7C200400, // 001F CALL R8 2 - 0x58240015, // 0020 LDCONST R9 K21 - 0x58280016, // 0021 LDCONST R10 K22 - 0x7C180800, // 0022 CALL R6 4 - 0x90022206, // 0023 SETMBR R0 K17 R6 - 0x88180117, // 0024 GETMBR R6 R0 K23 - 0x741A000F, // 0025 JMPT R6 #0036 - 0x8C180518, // 0026 GETMET R6 R2 K24 - 0x88200111, // 0027 GETMBR R8 R0 K17 - 0x8C240B13, // 0028 GETMET R9 R5 K19 - 0x582C0019, // 0029 LDCONST R11 K25 - 0x58300016, // 002A LDCONST R12 K22 - 0x7C240600, // 002B CALL R9 3 - 0x8C280B13, // 002C GETMET R10 R5 K19 - 0x5830001A, // 002D LDCONST R12 K26 - 0x58340016, // 002E LDCONST R13 K22 - 0x7C280600, // 002F CALL R10 3 - 0x8C2C0B13, // 0030 GETMET R11 R5 K19 - 0x5834001B, // 0031 LDCONST R13 K27 - 0x58380016, // 0032 LDCONST R14 K22 - 0x7C2C0600, // 0033 CALL R11 3 - 0x7C180A00, // 0034 CALL R6 5 - 0x70020006, // 0035 JMP #003D - 0x8C180518, // 0036 GETMET R6 R2 K24 - 0x88200111, // 0037 GETMBR R8 R0 K17 - 0x8C240B13, // 0038 GETMET R9 R5 K19 - 0x582C001A, // 0039 LDCONST R11 K26 - 0x58300016, // 003A LDCONST R12 K22 - 0x7C240600, // 003B CALL R9 3 - 0x7C180600, // 003C CALL R6 3 - 0x8C18051C, // 003D GETMET R6 R2 K28 - 0x5820001D, // 003E LDCONST R8 K29 - 0x5824001E, // 003F LDCONST R9 K30 - 0x542A15A3, // 0040 LDINT R10 5540 - 0x5C2C0800, // 0041 MOVE R11 R4 - 0x8830011F, // 0042 GETMBR R12 R0 K31 - 0x88340111, // 0043 GETMBR R13 R0 K17 - 0x7C180E00, // 0044 CALL R6 7 - 0xB81A1E00, // 0045 GETNGBL R6 K15 - 0x8C180D20, // 0046 GETMET R6 R6 K32 - 0x8C200721, // 0047 GETMET R8 R3 K33 - 0x58280022, // 0048 LDCONST R10 K34 - 0x78060001, // 0049 JMPF R1 #004C - 0x582C0010, // 004A LDCONST R11 K16 - 0x70020000, // 004B JMP #004D - 0x582C0023, // 004C LDCONST R11 K35 - 0x78060001, // 004D JMPF R1 #0050 - 0x8830011F, // 004E GETMBR R12 R0 K31 - 0x70020000, // 004F JMP #0051 - 0x88300124, // 0050 GETMBR R12 R0 K36 - 0x78060001, // 0051 JMPF R1 #0054 - 0x88340111, // 0052 GETMBR R13 R0 K17 - 0x70020000, // 0053 JMP #0055 - 0x88340125, // 0054 GETMBR R13 R0 K37 - 0x7C200A00, // 0055 CALL R8 5 - 0x58240026, // 0056 LDCONST R9 K38 - 0x7C180600, // 0057 CALL R6 3 - 0x60180008, // 0058 GETGBL R6 G8 - 0x881C0108, // 0059 GETMBR R7 R0 K8 - 0x54220FFE, // 005A LDINT R8 4095 - 0x2C1C0E08, // 005B AND R7 R7 R8 - 0x7C180200, // 005C CALL R6 1 - 0x001A4E06, // 005D ADD R6 K39 R6 - 0xB81E1E00, // 005E GETNGBL R7 K15 - 0x8C1C0F20, // 005F GETMET R7 R7 K32 - 0x00265006, // 0060 ADD R9 K40 R6 - 0x58280029, // 0061 LDCONST R10 K41 - 0x7C1C0600, // 0062 CALL R7 3 - 0x8C1C052A, // 0063 GETMET R7 R2 K42 - 0x5824001D, // 0064 LDCONST R9 K29 - 0x5828001E, // 0065 LDCONST R10 K30 - 0x882C011F, // 0066 GETMBR R11 R0 K31 - 0x88300111, // 0067 GETMBR R12 R0 K17 - 0x5C340C00, // 0068 MOVE R13 R6 - 0x7C1C0C00, // 0069 CALL R7 6 - 0x601C0008, // 006A GETGBL R7 G8 - 0x88200108, // 006B GETMBR R8 R0 K8 - 0x54260EFF, // 006C LDINT R9 3840 - 0x2C201009, // 006D AND R8 R8 R9 - 0x54260007, // 006E LDINT R9 8 - 0x3C201009, // 006F SHR R8 R8 R9 - 0x7C1C0200, // 0070 CALL R7 1 - 0x001E5607, // 0071 ADD R7 K43 R7 - 0x5C180E00, // 0072 MOVE R6 R7 - 0xB81E1E00, // 0073 GETNGBL R7 K15 - 0x8C1C0F20, // 0074 GETMET R7 R7 K32 - 0x00265006, // 0075 ADD R9 K40 R6 - 0x58280029, // 0076 LDCONST R10 K41 - 0x7C1C0600, // 0077 CALL R7 3 - 0x8C1C052A, // 0078 GETMET R7 R2 K42 - 0x5824001D, // 0079 LDCONST R9 K29 - 0x5828001E, // 007A LDCONST R10 K30 - 0x882C011F, // 007B GETMBR R11 R0 K31 - 0x88300111, // 007C GETMBR R12 R0 K17 - 0x5C340C00, // 007D MOVE R13 R6 - 0x7C1C0C00, // 007E CALL R7 6 - 0x601C0008, // 007F GETGBL R7 G8 - 0x88200104, // 0080 GETMBR R8 R0 K4 - 0x7C1C0200, // 0081 CALL R7 1 - 0x001E5807, // 0082 ADD R7 K44 R7 - 0x5C180E00, // 0083 MOVE R6 R7 - 0xB81E1E00, // 0084 GETNGBL R7 K15 - 0x8C1C0F20, // 0085 GETMET R7 R7 K32 - 0x00265006, // 0086 ADD R9 K40 R6 - 0x58280029, // 0087 LDCONST R10 K41 - 0x7C1C0600, // 0088 CALL R7 3 - 0x8C1C052A, // 0089 GETMET R7 R2 K42 - 0x5824001D, // 008A LDCONST R9 K29 - 0x5828001E, // 008B LDCONST R10 K30 - 0x882C011F, // 008C GETMBR R11 R0 K31 - 0x88300111, // 008D GETMBR R12 R0 K17 - 0x5C340C00, // 008E MOVE R13 R6 - 0x7C1C0C00, // 008F CALL R7 6 - 0x5818002D, // 0090 LDCONST R6 K45 - 0xB81E1E00, // 0091 GETNGBL R7 K15 - 0x8C1C0F20, // 0092 GETMET R7 R7 K32 - 0x00265006, // 0093 ADD R9 K40 R6 - 0x58280029, // 0094 LDCONST R10 K41 + 0x88140104, // 0006 GETMBR R5 R0 K4 + 0x98120605, // 0007 SETIDX R4 K3 R5 + 0x98120B06, // 0008 SETIDX R4 K5 K6 + 0x98120F08, // 0009 SETIDX R4 K7 K8 + 0x54161387, // 000A LDINT R5 5000 + 0x98121205, // 000B SETIDX R4 K9 R5 + 0x5416012B, // 000C LDINT R5 300 + 0x98121405, // 000D SETIDX R4 K10 R5 + 0xA8020157, // 000E EXBLK 0 #0167 + 0x780600AB, // 000F JMPF R1 #00BC + 0xB8161600, // 0010 GETNGBL R5 K11 + 0x8C140B0C, // 0011 GETMET R5 R5 K12 + 0x7C140200, // 0012 CALL R5 1 + 0x8C18070E, // 0013 GETMET R6 R3 K14 + 0x8C200B0F, // 0014 GETMET R8 R5 K15 + 0x58280010, // 0015 LDCONST R10 K16 + 0x7C200400, // 0016 CALL R8 2 + 0x58240011, // 0017 LDCONST R9 K17 + 0x58280012, // 0018 LDCONST R10 K18 + 0x7C180800, // 0019 CALL R6 4 + 0x90021A06, // 001A SETMBR R0 K13 R6 + 0x88180113, // 001B GETMBR R6 R0 K19 + 0x741A001B, // 001C JMPT R6 #0039 + 0xB81A1600, // 001D GETNGBL R6 K11 + 0x8C180D14, // 001E GETMET R6 R6 K20 + 0x8C200715, // 001F GETMET R8 R3 K21 + 0x58280016, // 0020 LDCONST R10 K22 + 0x882C010D, // 0021 GETMBR R11 R0 K13 + 0x8C300B0F, // 0022 GETMET R12 R5 K15 + 0x58380017, // 0023 LDCONST R14 K23 + 0x583C0012, // 0024 LDCONST R15 K18 + 0x7C300600, // 0025 CALL R12 3 + 0x8C340B0F, // 0026 GETMET R13 R5 K15 + 0x583C0018, // 0027 LDCONST R15 K24 + 0x58400012, // 0028 LDCONST R16 K18 + 0x7C340600, // 0029 CALL R13 3 + 0x7C200A00, // 002A CALL R8 5 + 0x58240019, // 002B LDCONST R9 K25 + 0x7C180600, // 002C CALL R6 3 + 0x8C18051A, // 002D GETMET R6 R2 K26 + 0x8820010D, // 002E GETMBR R8 R0 K13 + 0x8C240B0F, // 002F GETMET R9 R5 K15 + 0x582C0017, // 0030 LDCONST R11 K23 + 0x58300012, // 0031 LDCONST R12 K18 + 0x7C240600, // 0032 CALL R9 3 + 0x8C280B0F, // 0033 GETMET R10 R5 K15 + 0x58300018, // 0034 LDCONST R12 K24 + 0x58340012, // 0035 LDCONST R13 K18 + 0x7C280600, // 0036 CALL R10 3 + 0x7C180800, // 0037 CALL R6 4 + 0x70020012, // 0038 JMP #004C + 0xB81A1600, // 0039 GETNGBL R6 K11 + 0x8C180D14, // 003A GETMET R6 R6 K20 + 0x8C200715, // 003B GETMET R8 R3 K21 + 0x5828001B, // 003C LDCONST R10 K27 + 0x882C010D, // 003D GETMBR R11 R0 K13 + 0x8C300B0F, // 003E GETMET R12 R5 K15 + 0x58380018, // 003F LDCONST R14 K24 + 0x583C0012, // 0040 LDCONST R15 K18 + 0x7C300600, // 0041 CALL R12 3 + 0x7C200800, // 0042 CALL R8 4 + 0x58240019, // 0043 LDCONST R9 K25 + 0x7C180600, // 0044 CALL R6 3 + 0x8C18051A, // 0045 GETMET R6 R2 K26 + 0x8820010D, // 0046 GETMBR R8 R0 K13 + 0x8C240B0F, // 0047 GETMET R9 R5 K15 + 0x582C0018, // 0048 LDCONST R11 K24 + 0x58300012, // 0049 LDCONST R12 K18 + 0x7C240600, // 004A CALL R9 3 + 0x7C180600, // 004B CALL R6 3 + 0xB81A1600, // 004C GETNGBL R6 K11 + 0x8C180D14, // 004D GETMET R6 R6 K20 + 0x8C200715, // 004E GETMET R8 R3 K21 + 0x5828001C, // 004F LDCONST R10 K28 + 0x582C001D, // 0050 LDCONST R11 K29 + 0x5830001E, // 0051 LDCONST R12 K30 + 0x543615A3, // 0052 LDINT R13 5540 + 0x60380008, // 0053 GETGBL R14 G8 + 0x5C3C0800, // 0054 MOVE R15 R4 + 0x7C380200, // 0055 CALL R14 1 + 0x883C011F, // 0056 GETMBR R15 R0 K31 + 0x8840010D, // 0057 GETMBR R16 R0 K13 + 0x7C201000, // 0058 CALL R8 8 + 0x58240019, // 0059 LDCONST R9 K25 + 0x7C180600, // 005A CALL R6 3 + 0x8C180520, // 005B GETMET R6 R2 K32 + 0x5820001D, // 005C LDCONST R8 K29 + 0x5824001E, // 005D LDCONST R9 K30 + 0x542A15A3, // 005E LDINT R10 5540 + 0x5C2C0800, // 005F MOVE R11 R4 + 0x8830011F, // 0060 GETMBR R12 R0 K31 + 0x8834010D, // 0061 GETMBR R13 R0 K13 + 0x7C180E00, // 0062 CALL R6 7 + 0xB81A1600, // 0063 GETNGBL R6 K11 + 0x8C180D14, // 0064 GETMET R6 R6 K20 + 0x8C200715, // 0065 GETMET R8 R3 K21 + 0x58280021, // 0066 LDCONST R10 K33 + 0x78060001, // 0067 JMPF R1 #006A + 0x582C000C, // 0068 LDCONST R11 K12 + 0x70020000, // 0069 JMP #006B + 0x582C0022, // 006A LDCONST R11 K34 + 0x78060001, // 006B JMPF R1 #006E + 0x8830011F, // 006C GETMBR R12 R0 K31 + 0x70020000, // 006D JMP #006F + 0x88300123, // 006E GETMBR R12 R0 K35 + 0x78060001, // 006F JMPF R1 #0072 + 0x8834010D, // 0070 GETMBR R13 R0 K13 + 0x70020000, // 0071 JMP #0073 + 0x88340124, // 0072 GETMBR R13 R0 K36 + 0x7C200A00, // 0073 CALL R8 5 + 0x58240025, // 0074 LDCONST R9 K37 + 0x7C180600, // 0075 CALL R6 3 + 0x60180008, // 0076 GETGBL R6 G8 + 0x881C0104, // 0077 GETMBR R7 R0 K4 + 0x54220FFE, // 0078 LDINT R8 4095 + 0x2C1C0E08, // 0079 AND R7 R7 R8 + 0x7C180200, // 007A CALL R6 1 + 0x001A4C06, // 007B ADD R6 K38 R6 + 0xB81E1600, // 007C GETNGBL R7 K11 + 0x8C1C0F14, // 007D GETMET R7 R7 K20 + 0x00264E06, // 007E ADD R9 K39 R6 + 0x58280019, // 007F LDCONST R10 K25 + 0x7C1C0600, // 0080 CALL R7 3 + 0x8C1C0528, // 0081 GETMET R7 R2 K40 + 0x5824001D, // 0082 LDCONST R9 K29 + 0x5828001E, // 0083 LDCONST R10 K30 + 0x882C011F, // 0084 GETMBR R11 R0 K31 + 0x8830010D, // 0085 GETMBR R12 R0 K13 + 0x5C340C00, // 0086 MOVE R13 R6 + 0x7C1C0C00, // 0087 CALL R7 6 + 0x601C0008, // 0088 GETGBL R7 G8 + 0x88200104, // 0089 GETMBR R8 R0 K4 + 0x54260EFF, // 008A LDINT R9 3840 + 0x2C201009, // 008B AND R8 R8 R9 + 0x54260007, // 008C LDINT R9 8 + 0x3C201009, // 008D SHR R8 R8 R9 + 0x7C1C0200, // 008E CALL R7 1 + 0x001E5207, // 008F ADD R7 K41 R7 + 0x5C180E00, // 0090 MOVE R6 R7 + 0xB81E1600, // 0091 GETNGBL R7 K11 + 0x8C1C0F14, // 0092 GETMET R7 R7 K20 + 0x00264E06, // 0093 ADD R9 K39 R6 + 0x58280019, // 0094 LDCONST R10 K25 0x7C1C0600, // 0095 CALL R7 3 - 0x8C1C052A, // 0096 GETMET R7 R2 K42 + 0x8C1C0528, // 0096 GETMET R7 R2 K40 0x5824001D, // 0097 LDCONST R9 K29 0x5828001E, // 0098 LDCONST R10 K30 0x882C011F, // 0099 GETMBR R11 R0 K31 - 0x88300111, // 009A GETMBR R12 R0 K17 + 0x8830010D, // 009A GETMBR R12 R0 K13 0x5C340C00, // 009B MOVE R13 R6 0x7C1C0C00, // 009C CALL R7 6 - 0x70020083, // 009D JMP #0122 - 0xB8161E00, // 009E GETNGBL R5 K15 - 0x8C140B23, // 009F GETMET R5 R5 K35 - 0x7C140200, // 00A0 CALL R5 1 - 0x8C180712, // 00A1 GETMET R6 R3 K18 - 0x8C200B13, // 00A2 GETMET R8 R5 K19 - 0x58280014, // 00A3 LDCONST R10 K20 - 0x7C200400, // 00A4 CALL R8 2 - 0x58240015, // 00A5 LDCONST R9 K21 - 0x58280016, // 00A6 LDCONST R10 K22 - 0x7C180800, // 00A7 CALL R6 4 - 0x90024A06, // 00A8 SETMBR R0 K37 R6 - 0x88180117, // 00A9 GETMBR R6 R0 K23 - 0x741A000F, // 00AA JMPT R6 #00BB - 0x8C180518, // 00AB GETMET R6 R2 K24 - 0x88200125, // 00AC GETMBR R8 R0 K37 - 0x8C240B13, // 00AD GETMET R9 R5 K19 - 0x582C0019, // 00AE LDCONST R11 K25 - 0x58300016, // 00AF LDCONST R12 K22 - 0x7C240600, // 00B0 CALL R9 3 - 0x8C280B13, // 00B1 GETMET R10 R5 K19 - 0x5830001A, // 00B2 LDCONST R12 K26 - 0x58340016, // 00B3 LDCONST R13 K22 - 0x7C280600, // 00B4 CALL R10 3 - 0x8C2C0B13, // 00B5 GETMET R11 R5 K19 - 0x5834001B, // 00B6 LDCONST R13 K27 - 0x58380016, // 00B7 LDCONST R14 K22 - 0x7C2C0600, // 00B8 CALL R11 3 - 0x7C180A00, // 00B9 CALL R6 5 - 0x70020006, // 00BA JMP #00C2 - 0x8C180518, // 00BB GETMET R6 R2 K24 - 0x88200125, // 00BC GETMBR R8 R0 K37 - 0x8C240B13, // 00BD GETMET R9 R5 K19 - 0x582C001A, // 00BE LDCONST R11 K26 - 0x58300016, // 00BF LDCONST R12 K22 - 0x7C240600, // 00C0 CALL R9 3 - 0x7C180600, // 00C1 CALL R6 3 - 0x8C18051C, // 00C2 GETMET R6 R2 K28 - 0x5820001D, // 00C3 LDCONST R8 K29 - 0x5824001E, // 00C4 LDCONST R9 K30 - 0x542A15A3, // 00C5 LDINT R10 5540 - 0x5C2C0800, // 00C6 MOVE R11 R4 - 0x88300124, // 00C7 GETMBR R12 R0 K36 - 0x88340125, // 00C8 GETMBR R13 R0 K37 - 0x7C180E00, // 00C9 CALL R6 7 - 0xB81A1E00, // 00CA GETNGBL R6 K15 - 0x8C180D20, // 00CB GETMET R6 R6 K32 - 0x8C200721, // 00CC GETMET R8 R3 K33 - 0x58280022, // 00CD LDCONST R10 K34 - 0x78060001, // 00CE JMPF R1 #00D1 - 0x582C0010, // 00CF LDCONST R11 K16 - 0x70020000, // 00D0 JMP #00D2 - 0x582C0023, // 00D1 LDCONST R11 K35 - 0x78060001, // 00D2 JMPF R1 #00D5 - 0x8830011F, // 00D3 GETMBR R12 R0 K31 - 0x70020000, // 00D4 JMP #00D6 - 0x88300124, // 00D5 GETMBR R12 R0 K36 - 0x78060001, // 00D6 JMPF R1 #00D9 - 0x88340111, // 00D7 GETMBR R13 R0 K17 - 0x70020000, // 00D8 JMP #00DA - 0x88340125, // 00D9 GETMBR R13 R0 K37 - 0x7C200A00, // 00DA CALL R8 5 - 0x58240026, // 00DB LDCONST R9 K38 - 0x7C180600, // 00DC CALL R6 3 - 0x60180008, // 00DD GETGBL R6 G8 - 0x881C0108, // 00DE GETMBR R7 R0 K8 - 0x54220FFE, // 00DF LDINT R8 4095 - 0x2C1C0E08, // 00E0 AND R7 R7 R8 - 0x7C180200, // 00E1 CALL R6 1 - 0x001A4E06, // 00E2 ADD R6 K39 R6 - 0xB81E1E00, // 00E3 GETNGBL R7 K15 - 0x8C1C0F20, // 00E4 GETMET R7 R7 K32 - 0x00265006, // 00E5 ADD R9 K40 R6 - 0x58280029, // 00E6 LDCONST R10 K41 - 0x7C1C0600, // 00E7 CALL R7 3 - 0x8C1C052A, // 00E8 GETMET R7 R2 K42 - 0x5824001D, // 00E9 LDCONST R9 K29 - 0x5828001E, // 00EA LDCONST R10 K30 - 0x882C0124, // 00EB GETMBR R11 R0 K36 - 0x88300125, // 00EC GETMBR R12 R0 K37 - 0x5C340C00, // 00ED MOVE R13 R6 - 0x7C1C0C00, // 00EE CALL R7 6 - 0x601C0008, // 00EF GETGBL R7 G8 - 0x88200108, // 00F0 GETMBR R8 R0 K8 - 0x54260EFF, // 00F1 LDINT R9 3840 - 0x2C201009, // 00F2 AND R8 R8 R9 - 0x54260007, // 00F3 LDINT R9 8 - 0x3C201009, // 00F4 SHR R8 R8 R9 - 0x7C1C0200, // 00F5 CALL R7 1 - 0x001E5607, // 00F6 ADD R7 K43 R7 - 0x5C180E00, // 00F7 MOVE R6 R7 - 0xB81E1E00, // 00F8 GETNGBL R7 K15 - 0x8C1C0F20, // 00F9 GETMET R7 R7 K32 - 0x00265006, // 00FA ADD R9 K40 R6 - 0x58280029, // 00FB LDCONST R10 K41 - 0x7C1C0600, // 00FC CALL R7 3 - 0x8C1C052A, // 00FD GETMET R7 R2 K42 - 0x5824001D, // 00FE LDCONST R9 K29 - 0x5828001E, // 00FF LDCONST R10 K30 - 0x882C0124, // 0100 GETMBR R11 R0 K36 - 0x88300125, // 0101 GETMBR R12 R0 K37 - 0x5C340C00, // 0102 MOVE R13 R6 - 0x7C1C0C00, // 0103 CALL R7 6 - 0x601C0008, // 0104 GETGBL R7 G8 - 0x88200104, // 0105 GETMBR R8 R0 K4 - 0x7C1C0200, // 0106 CALL R7 1 - 0x001E5807, // 0107 ADD R7 K44 R7 - 0x5C180E00, // 0108 MOVE R6 R7 - 0xB81E1E00, // 0109 GETNGBL R7 K15 - 0x8C1C0F20, // 010A GETMET R7 R7 K32 - 0x00265006, // 010B ADD R9 K40 R6 - 0x58280029, // 010C LDCONST R10 K41 - 0x7C1C0600, // 010D CALL R7 3 - 0x8C1C052A, // 010E GETMET R7 R2 K42 - 0x5824001D, // 010F LDCONST R9 K29 - 0x5828001E, // 0110 LDCONST R10 K30 - 0x882C0124, // 0111 GETMBR R11 R0 K36 - 0x88300125, // 0112 GETMBR R12 R0 K37 - 0x5C340C00, // 0113 MOVE R13 R6 - 0x7C1C0C00, // 0114 CALL R7 6 - 0x5818002D, // 0115 LDCONST R6 K45 - 0xB81E1E00, // 0116 GETNGBL R7 K15 - 0x8C1C0F20, // 0117 GETMET R7 R7 K32 - 0x00265006, // 0118 ADD R9 K40 R6 - 0x58280029, // 0119 LDCONST R10 K41 - 0x7C1C0600, // 011A CALL R7 3 - 0x8C1C052A, // 011B GETMET R7 R2 K42 - 0x5824001D, // 011C LDCONST R9 K29 - 0x5828001E, // 011D LDCONST R10 K30 - 0x882C0124, // 011E GETMBR R11 R0 K36 - 0x88300125, // 011F GETMBR R12 R0 K37 - 0x5C340C00, // 0120 MOVE R13 R6 - 0x7C1C0C00, // 0121 CALL R7 6 - 0xA8040001, // 0122 EXBLK 1 1 - 0x70020010, // 0123 JMP #0135 - 0xAC140002, // 0124 CATCH R5 0 2 - 0x7002000D, // 0125 JMP #0134 - 0xB81E1E00, // 0126 GETNGBL R7 K15 - 0x8C1C0F20, // 0127 GETMET R7 R7 K32 - 0x60240008, // 0128 GETGBL R9 G8 - 0x5C280A00, // 0129 MOVE R10 R5 - 0x7C240200, // 012A CALL R9 1 - 0x00265C09, // 012B ADD R9 K46 R9 - 0x0024132F, // 012C ADD R9 R9 K47 - 0x60280008, // 012D GETGBL R10 G8 - 0x5C2C0C00, // 012E MOVE R11 R6 - 0x7C280200, // 012F CALL R10 1 - 0x0024120A, // 0130 ADD R9 R9 R10 - 0x58280026, // 0131 LDCONST R10 K38 - 0x7C1C0600, // 0132 CALL R7 3 - 0x70020000, // 0133 JMP #0135 - 0xB0080000, // 0134 RAISE 2 R0 R0 - 0x8C140130, // 0135 GETMET R5 R0 K48 - 0x7C140200, // 0136 CALL R5 1 - 0x80000000, // 0137 RET 0 + 0x601C0008, // 009D GETGBL R7 G8 + 0x8820012B, // 009E GETMBR R8 R0 K43 + 0x7C1C0200, // 009F CALL R7 1 + 0x001E5407, // 00A0 ADD R7 K42 R7 + 0x5C180E00, // 00A1 MOVE R6 R7 + 0xB81E1600, // 00A2 GETNGBL R7 K11 + 0x8C1C0F14, // 00A3 GETMET R7 R7 K20 + 0x00264E06, // 00A4 ADD R9 K39 R6 + 0x58280019, // 00A5 LDCONST R10 K25 + 0x7C1C0600, // 00A6 CALL R7 3 + 0x8C1C0528, // 00A7 GETMET R7 R2 K40 + 0x5824001D, // 00A8 LDCONST R9 K29 + 0x5828001E, // 00A9 LDCONST R10 K30 + 0x882C011F, // 00AA GETMBR R11 R0 K31 + 0x8830010D, // 00AB GETMBR R12 R0 K13 + 0x5C340C00, // 00AC MOVE R13 R6 + 0x7C1C0C00, // 00AD CALL R7 6 + 0x5818002C, // 00AE LDCONST R6 K44 + 0xB81E1600, // 00AF GETNGBL R7 K11 + 0x8C1C0F14, // 00B0 GETMET R7 R7 K20 + 0x00264E06, // 00B1 ADD R9 K39 R6 + 0x58280019, // 00B2 LDCONST R10 K25 + 0x7C1C0600, // 00B3 CALL R7 3 + 0x8C1C0528, // 00B4 GETMET R7 R2 K40 + 0x5824001D, // 00B5 LDCONST R9 K29 + 0x5828001E, // 00B6 LDCONST R10 K30 + 0x882C011F, // 00B7 GETMBR R11 R0 K31 + 0x8830010D, // 00B8 GETMBR R12 R0 K13 + 0x5C340C00, // 00B9 MOVE R13 R6 + 0x7C1C0C00, // 00BA CALL R7 6 + 0x700200A8, // 00BB JMP #0165 + 0xB8161600, // 00BC GETNGBL R5 K11 + 0x8C140B22, // 00BD GETMET R5 R5 K34 + 0x7C140200, // 00BE CALL R5 1 + 0x8C18070E, // 00BF GETMET R6 R3 K14 + 0x8C200B0F, // 00C0 GETMET R8 R5 K15 + 0x58280010, // 00C1 LDCONST R10 K16 + 0x7C200400, // 00C2 CALL R8 2 + 0x58240011, // 00C3 LDCONST R9 K17 + 0x58280012, // 00C4 LDCONST R10 K18 + 0x7C180800, // 00C5 CALL R6 4 + 0x90024806, // 00C6 SETMBR R0 K36 R6 + 0x88180113, // 00C7 GETMBR R6 R0 K19 + 0x741A002A, // 00C8 JMPT R6 #00F4 + 0x8C18051A, // 00C9 GETMET R6 R2 K26 + 0x88200124, // 00CA GETMBR R8 R0 K36 + 0x8C240B0F, // 00CB GETMET R9 R5 K15 + 0x582C0017, // 00CC LDCONST R11 K23 + 0x58300012, // 00CD LDCONST R12 K18 + 0x7C240600, // 00CE CALL R9 3 + 0x8C280B0F, // 00CF GETMET R10 R5 K15 + 0x58300018, // 00D0 LDCONST R12 K24 + 0x58340012, // 00D1 LDCONST R13 K18 + 0x7C280600, // 00D2 CALL R10 3 + 0x8C2C0B0F, // 00D3 GETMET R11 R5 K15 + 0x5834002D, // 00D4 LDCONST R13 K45 + 0x58380012, // 00D5 LDCONST R14 K18 + 0x7C2C0600, // 00D6 CALL R11 3 + 0x7C180A00, // 00D7 CALL R6 5 + 0xB81A1600, // 00D8 GETNGBL R6 K11 + 0x8C180D14, // 00D9 GETMET R6 R6 K20 + 0x8C200715, // 00DA GETMET R8 R3 K21 + 0x58280016, // 00DB LDCONST R10 K22 + 0x882C0124, // 00DC GETMBR R11 R0 K36 + 0x8C300B0F, // 00DD GETMET R12 R5 K15 + 0x58380017, // 00DE LDCONST R14 K23 + 0x583C0012, // 00DF LDCONST R15 K18 + 0x7C300600, // 00E0 CALL R12 3 + 0x8C340B0F, // 00E1 GETMET R13 R5 K15 + 0x583C0018, // 00E2 LDCONST R15 K24 + 0x58400012, // 00E3 LDCONST R16 K18 + 0x7C340600, // 00E4 CALL R13 3 + 0x7C200A00, // 00E5 CALL R8 5 + 0x58240019, // 00E6 LDCONST R9 K25 + 0x7C180600, // 00E7 CALL R6 3 + 0x8C18051A, // 00E8 GETMET R6 R2 K26 + 0x88200124, // 00E9 GETMBR R8 R0 K36 + 0x8C240B0F, // 00EA GETMET R9 R5 K15 + 0x582C0017, // 00EB LDCONST R11 K23 + 0x58300012, // 00EC LDCONST R12 K18 + 0x7C240600, // 00ED CALL R9 3 + 0x8C280B0F, // 00EE GETMET R10 R5 K15 + 0x58300018, // 00EF LDCONST R12 K24 + 0x58340012, // 00F0 LDCONST R13 K18 + 0x7C280600, // 00F1 CALL R10 3 + 0x7C180800, // 00F2 CALL R6 4 + 0x70020012, // 00F3 JMP #0107 + 0xB81A1600, // 00F4 GETNGBL R6 K11 + 0x8C180D14, // 00F5 GETMET R6 R6 K20 + 0x8C200715, // 00F6 GETMET R8 R3 K21 + 0x5828001B, // 00F7 LDCONST R10 K27 + 0x882C010D, // 00F8 GETMBR R11 R0 K13 + 0x8C300B0F, // 00F9 GETMET R12 R5 K15 + 0x58380018, // 00FA LDCONST R14 K24 + 0x583C0012, // 00FB LDCONST R15 K18 + 0x7C300600, // 00FC CALL R12 3 + 0x7C200800, // 00FD CALL R8 4 + 0x58240019, // 00FE LDCONST R9 K25 + 0x7C180600, // 00FF CALL R6 3 + 0x8C18051A, // 0100 GETMET R6 R2 K26 + 0x88200124, // 0101 GETMBR R8 R0 K36 + 0x8C240B0F, // 0102 GETMET R9 R5 K15 + 0x582C0018, // 0103 LDCONST R11 K24 + 0x58300012, // 0104 LDCONST R12 K18 + 0x7C240600, // 0105 CALL R9 3 + 0x7C180600, // 0106 CALL R6 3 + 0xB81A1600, // 0107 GETNGBL R6 K11 + 0x8C180D14, // 0108 GETMET R6 R6 K20 + 0x8C200715, // 0109 GETMET R8 R3 K21 + 0x5828001C, // 010A LDCONST R10 K28 + 0x582C001D, // 010B LDCONST R11 K29 + 0x5830001E, // 010C LDCONST R12 K30 + 0x543615A3, // 010D LDINT R13 5540 + 0x60380008, // 010E GETGBL R14 G8 + 0x5C3C0800, // 010F MOVE R15 R4 + 0x7C380200, // 0110 CALL R14 1 + 0x883C0123, // 0111 GETMBR R15 R0 K35 + 0x88400124, // 0112 GETMBR R16 R0 K36 + 0x7C201000, // 0113 CALL R8 8 + 0x58240019, // 0114 LDCONST R9 K25 + 0x7C180600, // 0115 CALL R6 3 + 0x8C180520, // 0116 GETMET R6 R2 K32 + 0x5820001D, // 0117 LDCONST R8 K29 + 0x5824001E, // 0118 LDCONST R9 K30 + 0x542A15A3, // 0119 LDINT R10 5540 + 0x5C2C0800, // 011A MOVE R11 R4 + 0x88300123, // 011B GETMBR R12 R0 K35 + 0x88340124, // 011C GETMBR R13 R0 K36 + 0x7C180E00, // 011D CALL R6 7 + 0xB81A1600, // 011E GETNGBL R6 K11 + 0x8C180D14, // 011F GETMET R6 R6 K20 + 0x8C200715, // 0120 GETMET R8 R3 K21 + 0x58280021, // 0121 LDCONST R10 K33 + 0x78060001, // 0122 JMPF R1 #0125 + 0x582C000C, // 0123 LDCONST R11 K12 + 0x70020000, // 0124 JMP #0126 + 0x582C0022, // 0125 LDCONST R11 K34 + 0x78060001, // 0126 JMPF R1 #0129 + 0x8830011F, // 0127 GETMBR R12 R0 K31 + 0x70020000, // 0128 JMP #012A + 0x88300123, // 0129 GETMBR R12 R0 K35 + 0x78060001, // 012A JMPF R1 #012D + 0x8834010D, // 012B GETMBR R13 R0 K13 + 0x70020000, // 012C JMP #012E + 0x88340124, // 012D GETMBR R13 R0 K36 + 0x7C200A00, // 012E CALL R8 5 + 0x58240025, // 012F LDCONST R9 K37 + 0x7C180600, // 0130 CALL R6 3 + 0x60180008, // 0131 GETGBL R6 G8 + 0x881C0104, // 0132 GETMBR R7 R0 K4 + 0x54220FFE, // 0133 LDINT R8 4095 + 0x2C1C0E08, // 0134 AND R7 R7 R8 + 0x7C180200, // 0135 CALL R6 1 + 0x001A4C06, // 0136 ADD R6 K38 R6 + 0xB81E1600, // 0137 GETNGBL R7 K11 + 0x8C1C0F14, // 0138 GETMET R7 R7 K20 + 0x00264E06, // 0139 ADD R9 K39 R6 + 0x58280019, // 013A LDCONST R10 K25 + 0x7C1C0600, // 013B CALL R7 3 + 0x8C1C0528, // 013C GETMET R7 R2 K40 + 0x5824001D, // 013D LDCONST R9 K29 + 0x5828001E, // 013E LDCONST R10 K30 + 0x882C0123, // 013F GETMBR R11 R0 K35 + 0x88300124, // 0140 GETMBR R12 R0 K36 + 0x5C340C00, // 0141 MOVE R13 R6 + 0x7C1C0C00, // 0142 CALL R7 6 + 0x601C0008, // 0143 GETGBL R7 G8 + 0x88200104, // 0144 GETMBR R8 R0 K4 + 0x54260EFF, // 0145 LDINT R9 3840 + 0x2C201009, // 0146 AND R8 R8 R9 + 0x54260007, // 0147 LDINT R9 8 + 0x3C201009, // 0148 SHR R8 R8 R9 + 0x7C1C0200, // 0149 CALL R7 1 + 0x001E5207, // 014A ADD R7 K41 R7 + 0x5C180E00, // 014B MOVE R6 R7 + 0xB81E1600, // 014C GETNGBL R7 K11 + 0x8C1C0F14, // 014D GETMET R7 R7 K20 + 0x00264E06, // 014E ADD R9 K39 R6 + 0x58280019, // 014F LDCONST R10 K25 + 0x7C1C0600, // 0150 CALL R7 3 + 0x8C1C0528, // 0151 GETMET R7 R2 K40 + 0x5824001D, // 0152 LDCONST R9 K29 + 0x5828001E, // 0153 LDCONST R10 K30 + 0x882C0123, // 0154 GETMBR R11 R0 K35 + 0x88300124, // 0155 GETMBR R12 R0 K36 + 0x5C340C00, // 0156 MOVE R13 R6 + 0x7C1C0C00, // 0157 CALL R7 6 + 0x5818002C, // 0158 LDCONST R6 K44 + 0xB81E1600, // 0159 GETNGBL R7 K11 + 0x8C1C0F14, // 015A GETMET R7 R7 K20 + 0x00264E06, // 015B ADD R9 K39 R6 + 0x58280019, // 015C LDCONST R10 K25 + 0x7C1C0600, // 015D CALL R7 3 + 0x8C1C0528, // 015E GETMET R7 R2 K40 + 0x5824001D, // 015F LDCONST R9 K29 + 0x5828001E, // 0160 LDCONST R10 K30 + 0x882C0123, // 0161 GETMBR R11 R0 K35 + 0x88300124, // 0162 GETMBR R12 R0 K36 + 0x5C340C00, // 0163 MOVE R13 R6 + 0x7C1C0C00, // 0164 CALL R7 6 + 0xA8040001, // 0165 EXBLK 1 1 + 0x70020010, // 0166 JMP #0178 + 0xAC140002, // 0167 CATCH R5 0 2 + 0x7002000D, // 0168 JMP #0177 + 0xB81E1600, // 0169 GETNGBL R7 K11 + 0x8C1C0F14, // 016A GETMET R7 R7 K20 + 0x60240008, // 016B GETGBL R9 G8 + 0x5C280A00, // 016C MOVE R10 R5 + 0x7C240200, // 016D CALL R9 1 + 0x00265C09, // 016E ADD R9 K46 R9 + 0x0024132F, // 016F ADD R9 R9 K47 + 0x60280008, // 0170 GETGBL R10 G8 + 0x5C2C0C00, // 0171 MOVE R11 R6 + 0x7C280200, // 0172 CALL R10 1 + 0x0024120A, // 0173 ADD R9 R9 R10 + 0x58280025, // 0174 LDCONST R10 K37 + 0x7C1C0600, // 0175 CALL R7 3 + 0x70020000, // 0176 JMP #0178 + 0xB0080000, // 0177 RAISE 2 R0 R0 + 0x8C140130, // 0178 GETMET R5 R0 K48 + 0x7C140200, // 0179 CALL R5 1 + 0x80000000, // 017A RET 0 }) ) ); @@ -2070,7 +2137,7 @@ be_local_closure(Matter_Device_start_basic_commissioning, /* name */ 0xB8060200, // 0000 GETNGBL R1 K1 0x8C040302, // 0001 GETMET R1 R1 K2 0x7C040200, // 0002 CALL R1 1 - 0x540A0004, // 0003 LDINT R2 5 + 0x540A0009, // 0003 LDINT R2 10 0x540E003B, // 0004 LDINT R3 60 0x08080403, // 0005 MUL R2 R2 R3 0x540E03E7, // 0006 LDINT R3 1000 @@ -2112,7 +2179,7 @@ be_local_closure(Matter_Device_start_mdns_announce_hostnames, /* name */ /* K1 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(remove_rule), /* K3 */ be_nested_str_weak(Wifi_X23Connected), - /* K4 */ be_nested_str_weak(matter_device_mdns), + /* K4 */ be_nested_str_weak(matter_mdns_host), }), be_str_weak(_anonymous_), &be_const_str_solidified, @@ -2145,7 +2212,7 @@ be_local_closure(Matter_Device_start_mdns_announce_hostnames, /* name */ /* K1 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(remove_rule), /* K3 */ be_nested_str_weak(Eth_X23Connected), - /* K4 */ be_nested_str_weak(matter_device_mdns), + /* K4 */ be_nested_str_weak(matter_mdns_host), }), be_str_weak(_anonymous_), &be_const_str_solidified, @@ -2164,15 +2231,16 @@ be_local_closure(Matter_Device_start_mdns_announce_hostnames, /* name */ ), }), 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ + ( &(const bvalue[ 9]) { /* constants */ /* K0 */ be_nested_str_weak(tasmota), /* K1 */ be_nested_str_weak(wifi), /* K2 */ be_nested_str_weak(up), /* K3 */ be_nested_str_weak(_start_mdns_announce), /* K4 */ be_nested_str_weak(add_rule), /* K5 */ be_nested_str_weak(Wifi_X23Connected), - /* K6 */ be_nested_str_weak(eth), - /* K7 */ be_nested_str_weak(Eth_X23Connected), + /* K6 */ be_nested_str_weak(matter_mdns_host), + /* K7 */ be_nested_str_weak(eth), + /* K8 */ be_nested_str_weak(Eth_X23Connected), }), be_str_weak(start_mdns_announce_hostnames), &be_const_str_solidified, @@ -2190,10 +2258,10 @@ be_local_closure(Matter_Device_start_mdns_announce_hostnames, /* name */ 0x8C040304, // 000A GETMET R1 R1 K4 0x580C0005, // 000B LDCONST R3 K5 0x84100000, // 000C CLOSURE R4 P0 - 0x5C140000, // 000D MOVE R5 R0 + 0x58140006, // 000D LDCONST R5 K6 0x7C040800, // 000E CALL R1 4 0xB8060000, // 000F GETNGBL R1 K0 - 0x8C040306, // 0010 GETMET R1 R1 K6 + 0x8C040307, // 0010 GETMET R1 R1 K7 0x7C040200, // 0011 CALL R1 1 0x94040302, // 0012 GETIDX R1 R1 K2 0x78060003, // 0013 JMPF R1 #0018 @@ -2203,9 +2271,9 @@ be_local_closure(Matter_Device_start_mdns_announce_hostnames, /* name */ 0x70020005, // 0017 JMP #001E 0xB8060000, // 0018 GETNGBL R1 K0 0x8C040304, // 0019 GETMET R1 R1 K4 - 0x580C0007, // 001A LDCONST R3 K7 + 0x580C0008, // 001A LDCONST R3 K8 0x84100001, // 001B CLOSURE R4 P1 - 0x5C140000, // 001C MOVE R5 R0 + 0x58140006, // 001C LDCONST R5 K6 0x7C040800, // 001D CALL R1 4 0xA0000000, // 001E CLOSE R0 0x80000000, // 001F RET 0 @@ -2321,7 +2389,7 @@ be_local_closure(Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name 1, /* has constants */ ( &(const bvalue[ 6]) { /* constants */ /* K0 */ be_nested_str_weak(sessions), - /* K1 */ be_nested_str_weak(fabrics), + /* K1 */ be_nested_str_weak(active_fabrics), /* K2 */ be_nested_str_weak(get_device_id), /* K3 */ be_nested_str_weak(get_fabric_id), /* K4 */ be_nested_str_weak(mdns_announce_op_discovery), @@ -2329,28 +2397,29 @@ be_local_closure(Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name }), be_str_weak(mdns_announce_op_discovery_all_fabrics), &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ + ( &(const binstruction[22]) { /* code */ 0x60040010, // 0000 GETGBL R1 G16 0x88080100, // 0001 GETMBR R2 R0 K0 - 0x88080501, // 0002 GETMBR R2 R2 K1 - 0x7C040200, // 0003 CALL R1 1 - 0xA802000B, // 0004 EXBLK 0 #0011 - 0x5C080200, // 0005 MOVE R2 R1 - 0x7C080000, // 0006 CALL R2 0 - 0x8C0C0502, // 0007 GETMET R3 R2 K2 - 0x7C0C0200, // 0008 CALL R3 1 - 0x780E0005, // 0009 JMPF R3 #0010 - 0x8C0C0503, // 000A GETMET R3 R2 K3 - 0x7C0C0200, // 000B CALL R3 1 - 0x780E0002, // 000C JMPF R3 #0010 - 0x8C0C0104, // 000D GETMET R3 R0 K4 - 0x5C140400, // 000E MOVE R5 R2 - 0x7C0C0400, // 000F CALL R3 2 - 0x7001FFF3, // 0010 JMP #0005 - 0x58040005, // 0011 LDCONST R1 K5 - 0xAC040200, // 0012 CATCH R1 1 0 - 0xB0080000, // 0013 RAISE 2 R0 R0 - 0x80000000, // 0014 RET 0 + 0x8C080501, // 0002 GETMET R2 R2 K1 + 0x7C080200, // 0003 CALL R2 1 + 0x7C040200, // 0004 CALL R1 1 + 0xA802000B, // 0005 EXBLK 0 #0012 + 0x5C080200, // 0006 MOVE R2 R1 + 0x7C080000, // 0007 CALL R2 0 + 0x8C0C0502, // 0008 GETMET R3 R2 K2 + 0x7C0C0200, // 0009 CALL R3 1 + 0x780E0005, // 000A JMPF R3 #0011 + 0x8C0C0503, // 000B GETMET R3 R2 K3 + 0x7C0C0200, // 000C CALL R3 1 + 0x780E0002, // 000D JMPF R3 #0011 + 0x8C0C0104, // 000E GETMET R3 R0 K4 + 0x5C140400, // 000F MOVE R5 R2 + 0x7C0C0400, // 0010 CALL R3 2 + 0x7001FFF3, // 0011 JMP #0006 + 0x58040005, // 0012 LDCONST R1 K5 + 0xAC040200, // 0013 CATCH R1 1 0 + 0xB0080000, // 0014 RAISE 2 R0 R0 + 0x80000000, // 0015 RET 0 }) ) ); @@ -2478,7 +2547,7 @@ be_local_closure(Matter_Device_init, /* name */ ), }), 1, /* has constants */ - ( &(const bvalue[40]) { /* constants */ + ( &(const bvalue[41]) { /* constants */ /* K0 */ be_nested_str_weak(crypto), /* K1 */ be_nested_str_weak(string), /* K2 */ be_nested_str_weak(tasmota), @@ -2515,10 +2584,11 @@ be_local_closure(Matter_Device_init, /* name */ /* K33 */ be_nested_str_weak(UDP_PORT), /* K34 */ be_nested_str_weak(add_rule), /* K35 */ be_nested_str_weak(Wifi_X23Connected), - /* K36 */ be_nested_str_weak(eth), - /* K37 */ be_nested_str_weak(Eth_X23Connected), - /* K38 */ be_nested_str_weak(init_basic_commissioning), - /* K39 */ be_nested_str_weak(add_driver), + /* K36 */ be_nested_str_weak(matter_device_udp), + /* K37 */ be_nested_str_weak(eth), + /* K38 */ be_nested_str_weak(Eth_X23Connected), + /* K39 */ be_nested_str_weak(init_basic_commissioning), + /* K40 */ be_nested_str_weak(add_driver), }), be_str_weak(init), &be_const_str_solidified, @@ -2607,10 +2677,10 @@ be_local_closure(Matter_Device_init, /* name */ 0x8C0C0722, // 0051 GETMET R3 R3 K34 0x58140023, // 0052 LDCONST R5 K35 0x84180000, // 0053 CLOSURE R6 P0 - 0x5C1C0000, // 0054 MOVE R7 R0 + 0x581C0024, // 0054 LDCONST R7 K36 0x7C0C0800, // 0055 CALL R3 4 0xB80E0400, // 0056 GETNGBL R3 K2 - 0x8C0C0724, // 0057 GETMET R3 R3 K36 + 0x8C0C0725, // 0057 GETMET R3 R3 K37 0x7C0C0200, // 0058 CALL R3 1 0x940C071F, // 0059 GETIDX R3 R3 K31 0x780E0003, // 005A JMPF R3 #005F @@ -2620,14 +2690,14 @@ be_local_closure(Matter_Device_init, /* name */ 0x70020005, // 005E JMP #0065 0xB80E0400, // 005F GETNGBL R3 K2 0x8C0C0722, // 0060 GETMET R3 R3 K34 - 0x58140025, // 0061 LDCONST R5 K37 + 0x58140026, // 0061 LDCONST R5 K38 0x84180001, // 0062 CLOSURE R6 P1 - 0x5C1C0000, // 0063 MOVE R7 R0 + 0x581C0024, // 0063 LDCONST R7 K36 0x7C0C0800, // 0064 CALL R3 4 - 0x8C0C0126, // 0065 GETMET R3 R0 K38 + 0x8C0C0127, // 0065 GETMET R3 R0 K39 0x7C0C0200, // 0066 CALL R3 1 0xB80E0400, // 0067 GETNGBL R3 K2 - 0x8C0C0727, // 0068 GETMET R3 R3 K39 + 0x8C0C0728, // 0068 GETMET R3 R3 K40 0x5C140000, // 0069 MOVE R5 R0 0x7C0C0400, // 006A CALL R3 2 0xA0000000, // 006B CLOSE R0 diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Root.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Root.h index 12d2d48e8..a19f10c78 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Root.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_Root.h @@ -19,7 +19,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[84]) { /* constants */ + ( &(const bvalue[86]) { /* constants */ /* K0 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(matter), /* K2 */ be_nested_str_weak(TLV), @@ -73,7 +73,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ /* K50 */ be_nested_str_weak(local), /* K51 */ be_nested_str_weak(device), /* K52 */ be_nested_str_weak(sessions), - /* K53 */ be_nested_str_weak(sessions_active), + /* K53 */ be_nested_str_weak(active_fabrics), /* K54 */ be_nested_str_weak(B2), /* K55 */ be_nested_str_weak(get_noc), /* K56 */ be_nested_str_weak(get_icac), @@ -87,27 +87,29 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ /* K64 */ be_nested_str_weak(get_fabric_label), /* K65 */ be_nested_str_weak(Fabric), /* K66 */ be_nested_str_weak(_MAX_CASE), - /* K67 */ be_nested_str_weak(Tasmota), - /* K68 */ be_nested_str_weak(vendorid), - /* K69 */ be_nested_str_weak(DeviceName), - /* K70 */ be_nested_str_weak(FriendlyName), - /* K71 */ be_nested_str_weak(FriendlyName1), - /* K72 */ be_nested_str_weak(XX), - /* K73 */ be_nested_str_weak(Status_X202), - /* K74 */ be_nested_str_weak(StatusFWR), - /* K75 */ be_nested_str_weak(Hardware), - /* K76 */ be_nested_str_weak(Version), - /* K77 */ be_nested_str_weak(locale), - /* K78 */ be_nested_str_weak(TYPES), - /* K79 */ be_nested_str_weak(keys), - /* K80 */ be_nested_str_weak(get_cluster_list), - /* K81 */ be_nested_str_weak(get_active_endpoints), - /* K82 */ be_nested_str_weak(status), - /* K83 */ be_nested_str_weak(UNSUPPORTED_CLUSTER), + /* K67 */ be_nested_str_weak(count_active_fabrics), + /* K68 */ be_nested_str_weak(_fabric), + /* K69 */ be_nested_str_weak(Tasmota), + /* K70 */ be_nested_str_weak(vendorid), + /* K71 */ be_nested_str_weak(DeviceName), + /* K72 */ be_nested_str_weak(FriendlyName), + /* K73 */ be_nested_str_weak(FriendlyName1), + /* K74 */ be_nested_str_weak(XX), + /* K75 */ be_nested_str_weak(Status_X202), + /* K76 */ be_nested_str_weak(StatusFWR), + /* K77 */ be_nested_str_weak(Hardware), + /* K78 */ be_nested_str_weak(Version), + /* K79 */ be_nested_str_weak(locale), + /* K80 */ be_nested_str_weak(TYPES), + /* K81 */ be_nested_str_weak(keys), + /* K82 */ be_nested_str_weak(get_cluster_list), + /* K83 */ be_nested_str_weak(get_active_endpoints), + /* K84 */ be_nested_str_weak(status), + /* K85 */ be_nested_str_weak(UNSUPPORTED_CLUSTER), }), be_str_weak(read_attribute), &be_const_str_solidified, - ( &(const binstruction[842]) { /* code */ + ( &(const binstruction[856]) { /* code */ 0xA40E0000, // 0000 IMPORT R3 K0 0xB8120200, // 0001 GETNGBL R4 K1 0x88100902, // 0002 GETMBR R4 R4 K2 @@ -164,11 +166,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ 0x50280000, // 0035 LDBOOL R10 0 0 0x7C1C0600, // 0036 CALL R7 3 0x80040E00, // 0037 RET 1 R7 - 0x7002030F, // 0038 JMP #0349 + 0x7002031D, // 0038 JMP #0357 0x541E0031, // 0039 LDINT R7 50 0x1C1C0A07, // 003A EQ R7 R5 R7 0x781E0000, // 003B JMPF R7 #003D - 0x7002030B, // 003C JMP #0349 + 0x70020319, // 003C JMP #0357 0x541E0032, // 003D LDINT R7 51 0x1C1C0A07, // 003E EQ R7 R5 R7 0x781E00DC, // 003F JMPF R7 #011D @@ -392,11 +394,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ 0x50280000, // 0119 LDBOOL R10 0 0 0x7C1C0600, // 011A CALL R7 3 0x80040E00, // 011B RET 1 R7 - 0x7002022B, // 011C JMP #0349 + 0x70020239, // 011C JMP #0357 0x541E0033, // 011D LDINT R7 52 0x1C1C0A07, // 011E EQ R7 R5 R7 0x781E0000, // 011F JMPF R7 #0121 - 0x70020227, // 0120 JMP #0349 + 0x70020235, // 0120 JMP #0357 0x541E0037, // 0121 LDINT R7 56 0x1C1C0A07, // 0122 EQ R7 R5 R7 0x781E002C, // 0123 JMPF R7 #0151 @@ -444,10 +446,10 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ 0x5C2C0E00, // 014D MOVE R11 R7 0x7C200600, // 014E CALL R8 3 0x80041000, // 014F RET 1 R8 - 0x700201F7, // 0150 JMP #0349 + 0x70020205, // 0150 JMP #0357 0x541E003D, // 0151 LDINT R7 62 0x1C1C0A07, // 0152 EQ R7 R5 R7 - 0x781E008A, // 0153 JMPF R7 #01DF + 0x781E0098, // 0153 JMPF R7 #01ED 0x1C1C0D05, // 0154 EQ R7 R6 K5 0x781E001F, // 0155 JMPF R7 #0176 0x8C1C0911, // 0156 GETMET R7 R4 K17 @@ -481,7 +483,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ 0xAC200200, // 0172 CATCH R8 1 0 0xB0080000, // 0173 RAISE 2 R0 R0 0x80040E00, // 0174 RET 1 R7 - 0x70020067, // 0175 JMP #01DE + 0x70020075, // 0175 JMP #01EC 0x1C1C0D09, // 0176 EQ R7 R6 K9 0x781E0036, // 0177 JMPF R7 #01AF 0x8C1C0911, // 0178 GETMET R7 R4 K17 @@ -538,7 +540,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ 0xAC200200, // 01AB CATCH R8 1 0 0xB0080000, // 01AC RAISE 2 R0 R0 0x80040E00, // 01AD RET 1 R7 - 0x7002002E, // 01AE JMP #01DE + 0x7002003C, // 01AE JMP #01EC 0x1C1C0D0D, // 01AF EQ R7 R6 K13 0x781E0007, // 01B0 JMPF R7 #01B9 0x8C1C0906, // 01B1 GETMET R7 R4 K6 @@ -548,408 +550,422 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */ 0x88281542, // 01B5 GETMBR R10 R10 K66 0x7C1C0600, // 01B6 CALL R7 3 0x80040E00, // 01B7 RET 1 R7 - 0x70020024, // 01B8 JMP #01DE + 0x70020032, // 01B8 JMP #01EC 0x1C1C0D0F, // 01B9 EQ R7 R6 K15 - 0x781E000B, // 01BA JMPF R7 #01C7 + 0x781E0009, // 01BA JMPF R7 #01C5 0x881C0133, // 01BB GETMBR R7 R0 K51 0x881C0F34, // 01BC GETMBR R7 R7 K52 - 0x8C1C0F35, // 01BD GETMET R7 R7 K53 + 0x8C1C0F43, // 01BD GETMET R7 R7 K67 0x7C1C0200, // 01BE CALL R7 1 0x8C200906, // 01BF GETMET R8 R4 K6 0x8828090E, // 01C0 GETMBR R10 R4 K14 - 0x602C000C, // 01C1 GETGBL R11 G12 - 0x5C300E00, // 01C2 MOVE R12 R7 - 0x7C2C0200, // 01C3 CALL R11 1 - 0x7C200600, // 01C4 CALL R8 3 - 0x80041000, // 01C5 RET 1 R8 - 0x70020016, // 01C6 JMP #01DE - 0x541E0003, // 01C7 LDINT R7 4 - 0x1C1C0C07, // 01C8 EQ R7 R6 R7 - 0x781E0000, // 01C9 JMPF R7 #01CB - 0x70020012, // 01CA JMP #01DE - 0x541E0004, // 01CB LDINT R7 5 - 0x1C1C0C07, // 01CC EQ R7 R6 R7 - 0x781E000F, // 01CD JMPF R7 #01DE - 0x881C0133, // 01CE GETMBR R7 R0 K51 - 0x881C0F34, // 01CF GETMBR R7 R7 K52 - 0x8C1C0F35, // 01D0 GETMET R7 R7 K53 - 0x7C1C0200, // 01D1 CALL R7 1 - 0x8C200F1B, // 01D2 GETMET R8 R7 K27 - 0x5C280200, // 01D3 MOVE R10 R1 - 0x7C200400, // 01D4 CALL R8 2 - 0x4C240000, // 01D5 LDNIL R9 - 0x1C241009, // 01D6 EQ R9 R8 R9 - 0x78260000, // 01D7 JMPF R9 #01D9 - 0x5421FFFE, // 01D8 LDINT R8 -1 - 0x8C240906, // 01D9 GETMET R9 R4 K6 - 0x882C090E, // 01DA GETMBR R11 R4 K14 - 0x00301109, // 01DB ADD R12 R8 K9 - 0x7C240600, // 01DC CALL R9 3 - 0x80041200, // 01DD RET 1 R9 - 0x70020169, // 01DE JMP #0349 - 0x541E003B, // 01DF LDINT R7 60 - 0x1C1C0A07, // 01E0 EQ R7 R5 R7 - 0x781E0000, // 01E1 JMPF R7 #01E3 - 0x70020165, // 01E2 JMP #0349 - 0x541E0027, // 01E3 LDINT R7 40 - 0x1C1C0A07, // 01E4 EQ R7 R5 R7 - 0x781E0095, // 01E5 JMPF R7 #027C - 0x1C1C0D05, // 01E6 EQ R7 R6 K5 - 0x781E0005, // 01E7 JMPF R7 #01EE - 0x8C1C0906, // 01E8 GETMET R7 R4 K6 - 0x8824090C, // 01E9 GETMBR R9 R4 K12 - 0x58280005, // 01EA LDCONST R10 K5 - 0x7C1C0600, // 01EB CALL R7 3 - 0x80040E00, // 01EC RET 1 R7 - 0x7002008C, // 01ED JMP #027B - 0x1C1C0D09, // 01EE EQ R7 R6 K9 - 0x781E0005, // 01EF JMPF R7 #01F6 - 0x8C1C0906, // 01F0 GETMET R7 R4 K6 - 0x88240916, // 01F1 GETMBR R9 R4 K22 - 0x58280043, // 01F2 LDCONST R10 K67 - 0x7C1C0600, // 01F3 CALL R7 3 - 0x80040E00, // 01F4 RET 1 R7 - 0x70020084, // 01F5 JMP #027B - 0x1C1C0D0D, // 01F6 EQ R7 R6 K13 - 0x781E0006, // 01F7 JMPF R7 #01FF - 0x8C1C0906, // 01F8 GETMET R7 R4 K6 - 0x8824090C, // 01F9 GETMBR R9 R4 K12 - 0x88280133, // 01FA GETMBR R10 R0 K51 - 0x88281544, // 01FB GETMBR R10 R10 K68 - 0x7C1C0600, // 01FC CALL R7 3 - 0x80040E00, // 01FD RET 1 R7 - 0x7002007B, // 01FE JMP #027B - 0x1C1C0D0F, // 01FF EQ R7 R6 K15 - 0x781E000A, // 0200 JMPF R7 #020C - 0x8C1C0906, // 0201 GETMET R7 R4 K6 - 0x88240916, // 0202 GETMBR R9 R4 K22 - 0xB82A2400, // 0203 GETNGBL R10 K18 - 0x8C281526, // 0204 GETMET R10 R10 K38 - 0x58300045, // 0205 LDCONST R12 K69 - 0x50340200, // 0206 LDBOOL R13 1 0 - 0x7C280600, // 0207 CALL R10 3 - 0x94281545, // 0208 GETIDX R10 R10 K69 - 0x7C1C0600, // 0209 CALL R7 3 - 0x80040E00, // 020A RET 1 R7 - 0x7002006E, // 020B JMP #027B - 0x541E0003, // 020C LDINT R7 4 - 0x1C1C0C07, // 020D EQ R7 R6 R7 - 0x781E0005, // 020E JMPF R7 #0215 + 0x5C2C0E00, // 01C1 MOVE R11 R7 + 0x7C200600, // 01C2 CALL R8 3 + 0x80041000, // 01C3 RET 1 R8 + 0x70020026, // 01C4 JMP #01EC + 0x541E0003, // 01C5 LDINT R7 4 + 0x1C1C0C07, // 01C6 EQ R7 R6 R7 + 0x781E0000, // 01C7 JMPF R7 #01C9 + 0x70020022, // 01C8 JMP #01EC + 0x541E0004, // 01C9 LDINT R7 5 + 0x1C1C0C07, // 01CA EQ R7 R6 R7 + 0x781E001F, // 01CB JMPF R7 #01EC + 0x881C0344, // 01CC GETMBR R7 R1 K68 + 0x58200005, // 01CD LDCONST R8 K5 + 0x50240000, // 01CE LDBOOL R9 0 0 + 0x60280010, // 01CF GETGBL R10 G16 + 0x882C0133, // 01D0 GETMBR R11 R0 K51 + 0x882C1734, // 01D1 GETMBR R11 R11 K52 + 0x8C2C1735, // 01D2 GETMET R11 R11 K53 + 0x7C2C0200, // 01D3 CALL R11 1 + 0x7C280200, // 01D4 CALL R10 1 + 0xA802000A, // 01D5 EXBLK 0 #01E1 + 0x5C2C1400, // 01D6 MOVE R11 R10 + 0x7C2C0000, // 01D7 CALL R11 0 + 0x1C301607, // 01D8 EQ R12 R11 R7 + 0x78320002, // 01D9 JMPF R12 #01DD + 0x50240200, // 01DA LDBOOL R9 1 0 + 0x70020002, // 01DB JMP #01DF + 0x70020000, // 01DC JMP #01DE + 0x00201109, // 01DD ADD R8 R8 K9 + 0x7001FFF6, // 01DE JMP #01D6 + 0xA8040001, // 01DF EXBLK 1 1 + 0x70020002, // 01E0 JMP #01E4 + 0x58280039, // 01E1 LDCONST R10 K57 + 0xAC280200, // 01E2 CATCH R10 1 0 + 0xB0080000, // 01E3 RAISE 2 R0 R0 + 0x5C281200, // 01E4 MOVE R10 R9 + 0x742A0000, // 01E5 JMPT R10 #01E7 + 0x5421FFFE, // 01E6 LDINT R8 -1 + 0x8C280906, // 01E7 GETMET R10 R4 K6 + 0x8830090E, // 01E8 GETMBR R12 R4 K14 + 0x00341109, // 01E9 ADD R13 R8 K9 + 0x7C280600, // 01EA CALL R10 3 + 0x80041400, // 01EB RET 1 R10 + 0x70020169, // 01EC JMP #0357 + 0x541E003B, // 01ED LDINT R7 60 + 0x1C1C0A07, // 01EE EQ R7 R5 R7 + 0x781E0000, // 01EF JMPF R7 #01F1 + 0x70020165, // 01F0 JMP #0357 + 0x541E0027, // 01F1 LDINT R7 40 + 0x1C1C0A07, // 01F2 EQ R7 R5 R7 + 0x781E0095, // 01F3 JMPF R7 #028A + 0x1C1C0D05, // 01F4 EQ R7 R6 K5 + 0x781E0005, // 01F5 JMPF R7 #01FC + 0x8C1C0906, // 01F6 GETMET R7 R4 K6 + 0x8824090C, // 01F7 GETMBR R9 R4 K12 + 0x58280005, // 01F8 LDCONST R10 K5 + 0x7C1C0600, // 01F9 CALL R7 3 + 0x80040E00, // 01FA RET 1 R7 + 0x7002008C, // 01FB JMP #0289 + 0x1C1C0D09, // 01FC EQ R7 R6 K9 + 0x781E0005, // 01FD JMPF R7 #0204 + 0x8C1C0906, // 01FE GETMET R7 R4 K6 + 0x88240916, // 01FF GETMBR R9 R4 K22 + 0x58280045, // 0200 LDCONST R10 K69 + 0x7C1C0600, // 0201 CALL R7 3 + 0x80040E00, // 0202 RET 1 R7 + 0x70020084, // 0203 JMP #0289 + 0x1C1C0D0D, // 0204 EQ R7 R6 K13 + 0x781E0006, // 0205 JMPF R7 #020D + 0x8C1C0906, // 0206 GETMET R7 R4 K6 + 0x8824090C, // 0207 GETMBR R9 R4 K12 + 0x88280133, // 0208 GETMBR R10 R0 K51 + 0x88281546, // 0209 GETMBR R10 R10 K70 + 0x7C1C0600, // 020A CALL R7 3 + 0x80040E00, // 020B RET 1 R7 + 0x7002007B, // 020C JMP #0289 + 0x1C1C0D0F, // 020D EQ R7 R6 K15 + 0x781E000A, // 020E JMPF R7 #021A 0x8C1C0906, // 020F GETMET R7 R4 K6 - 0x8824090C, // 0210 GETMBR R9 R4 K12 - 0x542A7FFF, // 0211 LDINT R10 32768 - 0x7C1C0600, // 0212 CALL R7 3 - 0x80040E00, // 0213 RET 1 R7 - 0x70020065, // 0214 JMP #027B - 0x541E0004, // 0215 LDINT R7 5 - 0x1C1C0C07, // 0216 EQ R7 R6 R7 - 0x781E000A, // 0217 JMPF R7 #0223 - 0x8C1C0906, // 0218 GETMET R7 R4 K6 - 0x88240916, // 0219 GETMBR R9 R4 K22 - 0xB82A2400, // 021A GETNGBL R10 K18 - 0x8C281526, // 021B GETMET R10 R10 K38 - 0x58300046, // 021C LDCONST R12 K70 - 0x50340200, // 021D LDBOOL R13 1 0 - 0x7C280600, // 021E CALL R10 3 - 0x94281547, // 021F GETIDX R10 R10 K71 + 0x88240916, // 0210 GETMBR R9 R4 K22 + 0xB82A2400, // 0211 GETNGBL R10 K18 + 0x8C281526, // 0212 GETMET R10 R10 K38 + 0x58300047, // 0213 LDCONST R12 K71 + 0x50340200, // 0214 LDBOOL R13 1 0 + 0x7C280600, // 0215 CALL R10 3 + 0x94281547, // 0216 GETIDX R10 R10 K71 + 0x7C1C0600, // 0217 CALL R7 3 + 0x80040E00, // 0218 RET 1 R7 + 0x7002006E, // 0219 JMP #0289 + 0x541E0003, // 021A LDINT R7 4 + 0x1C1C0C07, // 021B EQ R7 R6 R7 + 0x781E0005, // 021C JMPF R7 #0223 + 0x8C1C0906, // 021D GETMET R7 R4 K6 + 0x8824090C, // 021E GETMBR R9 R4 K12 + 0x542A7FFF, // 021F LDINT R10 32768 0x7C1C0600, // 0220 CALL R7 3 0x80040E00, // 0221 RET 1 R7 - 0x70020057, // 0222 JMP #027B - 0x541E0005, // 0223 LDINT R7 6 + 0x70020065, // 0222 JMP #0289 + 0x541E0004, // 0223 LDINT R7 5 0x1C1C0C07, // 0224 EQ R7 R6 R7 - 0x781E0005, // 0225 JMPF R7 #022C + 0x781E000A, // 0225 JMPF R7 #0231 0x8C1C0906, // 0226 GETMET R7 R4 K6 0x88240916, // 0227 GETMBR R9 R4 K22 - 0x58280048, // 0228 LDCONST R10 K72 - 0x7C1C0600, // 0229 CALL R7 3 - 0x80040E00, // 022A RET 1 R7 - 0x7002004E, // 022B JMP #027B - 0x541E0006, // 022C LDINT R7 7 - 0x1C1C0C07, // 022D EQ R7 R6 R7 - 0x781E0005, // 022E JMPF R7 #0235 - 0x8C1C0906, // 022F GETMET R7 R4 K6 - 0x8824090C, // 0230 GETMBR R9 R4 K12 - 0x58280005, // 0231 LDCONST R10 K5 - 0x7C1C0600, // 0232 CALL R7 3 - 0x80040E00, // 0233 RET 1 R7 - 0x70020045, // 0234 JMP #027B - 0x541E0007, // 0235 LDINT R7 8 - 0x1C1C0C07, // 0236 EQ R7 R6 R7 - 0x781E000B, // 0237 JMPF R7 #0244 - 0x8C1C0906, // 0238 GETMET R7 R4 K6 - 0x88240916, // 0239 GETMBR R9 R4 K22 - 0xB82A2400, // 023A GETNGBL R10 K18 - 0x8C281526, // 023B GETMET R10 R10 K38 - 0x58300049, // 023C LDCONST R12 K73 - 0x50340200, // 023D LDBOOL R13 1 0 - 0x7C280600, // 023E CALL R10 3 - 0x9428154A, // 023F GETIDX R10 R10 K74 - 0x9428154B, // 0240 GETIDX R10 R10 K75 - 0x7C1C0600, // 0241 CALL R7 3 - 0x80040E00, // 0242 RET 1 R7 - 0x70020036, // 0243 JMP #027B - 0x541E0008, // 0244 LDINT R7 9 - 0x1C1C0C07, // 0245 EQ R7 R6 R7 - 0x781E0005, // 0246 JMPF R7 #024D - 0x8C1C0906, // 0247 GETMET R7 R4 K6 - 0x8824090C, // 0248 GETMBR R9 R4 K12 - 0x58280009, // 0249 LDCONST R10 K9 - 0x7C1C0600, // 024A CALL R7 3 - 0x80040E00, // 024B RET 1 R7 - 0x7002002D, // 024C JMP #027B - 0x541E0009, // 024D LDINT R7 10 - 0x1C1C0C07, // 024E EQ R7 R6 R7 - 0x781E000B, // 024F JMPF R7 #025C - 0x8C1C0906, // 0250 GETMET R7 R4 K6 - 0x88240916, // 0251 GETMBR R9 R4 K22 - 0xB82A2400, // 0252 GETNGBL R10 K18 - 0x8C281526, // 0253 GETMET R10 R10 K38 - 0x58300049, // 0254 LDCONST R12 K73 - 0x50340200, // 0255 LDBOOL R13 1 0 - 0x7C280600, // 0256 CALL R10 3 - 0x9428154A, // 0257 GETIDX R10 R10 K74 - 0x9428154C, // 0258 GETIDX R10 R10 K76 - 0x7C1C0600, // 0259 CALL R7 3 - 0x80040E00, // 025A RET 1 R7 - 0x7002001E, // 025B JMP #027B - 0x541E0011, // 025C LDINT R7 18 - 0x1C1C0C07, // 025D EQ R7 R6 R7 - 0x781E000B, // 025E JMPF R7 #026B - 0x8C1C0906, // 025F GETMET R7 R4 K6 - 0x88240916, // 0260 GETMBR R9 R4 K22 - 0xB82A2400, // 0261 GETNGBL R10 K18 - 0x8C281525, // 0262 GETMET R10 R10 K37 - 0x7C280200, // 0263 CALL R10 1 - 0x8C28151B, // 0264 GETMET R10 R10 K27 - 0x5830001C, // 0265 LDCONST R12 K28 - 0x5834001D, // 0266 LDCONST R13 K29 - 0x7C280600, // 0267 CALL R10 3 - 0x7C1C0600, // 0268 CALL R7 3 - 0x80040E00, // 0269 RET 1 R7 - 0x7002000F, // 026A JMP #027B - 0x541E0012, // 026B LDINT R7 19 - 0x1C1C0C07, // 026C EQ R7 R6 R7 - 0x781E000C, // 026D JMPF R7 #027B - 0x8C1C090A, // 026E GETMET R7 R4 K10 - 0x7C1C0200, // 026F CALL R7 1 - 0x8C200F0B, // 0270 GETMET R8 R7 K11 - 0x58280005, // 0271 LDCONST R10 K5 - 0x882C090C, // 0272 GETMBR R11 R4 K12 - 0x5830000F, // 0273 LDCONST R12 K15 - 0x7C200800, // 0274 CALL R8 4 - 0x8C200F0B, // 0275 GETMET R8 R7 K11 - 0x58280009, // 0276 LDCONST R10 K9 - 0x882C090C, // 0277 GETMBR R11 R4 K12 - 0x5830000F, // 0278 LDCONST R12 K15 - 0x7C200800, // 0279 CALL R8 4 - 0x80040E00, // 027A RET 1 R7 - 0x700200CC, // 027B JMP #0349 - 0x541E003E, // 027C LDINT R7 63 - 0x1C1C0A07, // 027D EQ R7 R5 R7 - 0x781E0000, // 027E JMPF R7 #0280 - 0x700200C8, // 027F JMP #0349 - 0x541E0029, // 0280 LDINT R7 42 - 0x1C1C0A07, // 0281 EQ R7 R5 R7 - 0x781E001D, // 0282 JMPF R7 #02A1 - 0x1C1C0D05, // 0283 EQ R7 R6 K5 - 0x781E0003, // 0284 JMPF R7 #0289 - 0x8C1C0911, // 0285 GETMET R7 R4 K17 - 0x7C1C0200, // 0286 CALL R7 1 - 0x80040E00, // 0287 RET 1 R7 - 0x70020016, // 0288 JMP #02A0 - 0x1C1C0D09, // 0289 EQ R7 R6 K9 - 0x781E0005, // 028A JMPF R7 #0291 - 0x8C1C0906, // 028B GETMET R7 R4 K6 - 0x88240910, // 028C GETMBR R9 R4 K16 - 0x58280005, // 028D LDCONST R10 K5 - 0x7C1C0600, // 028E CALL R7 3 - 0x80040E00, // 028F RET 1 R7 - 0x7002000E, // 0290 JMP #02A0 - 0x1C1C0D0D, // 0291 EQ R7 R6 K13 - 0x781E0005, // 0292 JMPF R7 #0299 - 0x8C1C0906, // 0293 GETMET R7 R4 K6 - 0x8824090E, // 0294 GETMBR R9 R4 K14 - 0x58280009, // 0295 LDCONST R10 K9 - 0x7C1C0600, // 0296 CALL R7 3 - 0x80040E00, // 0297 RET 1 R7 - 0x70020006, // 0298 JMP #02A0 - 0x1C1C0D0F, // 0299 EQ R7 R6 K15 - 0x781E0004, // 029A JMPF R7 #02A0 - 0x8C1C0906, // 029B GETMET R7 R4 K6 - 0x88240918, // 029C GETMBR R9 R4 K24 - 0x4C280000, // 029D LDNIL R10 - 0x7C1C0600, // 029E CALL R7 3 - 0x80040E00, // 029F RET 1 R7 - 0x700200A7, // 02A0 JMP #0349 - 0x541E002A, // 02A1 LDINT R7 43 - 0x1C1C0A07, // 02A2 EQ R7 R5 R7 - 0x781E0016, // 02A3 JMPF R7 #02BB - 0x1C1C0D05, // 02A4 EQ R7 R6 K5 - 0x781E0007, // 02A5 JMPF R7 #02AE - 0x8C1C0906, // 02A6 GETMET R7 R4 K6 - 0x88240916, // 02A7 GETMBR R9 R4 K22 - 0xB82A2400, // 02A8 GETNGBL R10 K18 - 0x8C28154D, // 02A9 GETMET R10 R10 K77 - 0x7C280200, // 02AA CALL R10 1 - 0x7C1C0600, // 02AB CALL R7 3 - 0x80040E00, // 02AC RET 1 R7 - 0x7002000B, // 02AD JMP #02BA - 0x1C1C0D09, // 02AE EQ R7 R6 K9 - 0x781E0009, // 02AF JMPF R7 #02BA - 0x8C1C0911, // 02B0 GETMET R7 R4 K17 - 0x7C1C0200, // 02B1 CALL R7 1 - 0x8C200F0B, // 02B2 GETMET R8 R7 K11 - 0x4C280000, // 02B3 LDNIL R10 - 0x882C0916, // 02B4 GETMBR R11 R4 K22 - 0xB8322400, // 02B5 GETNGBL R12 K18 - 0x8C30194D, // 02B6 GETMET R12 R12 K77 - 0x7C300200, // 02B7 CALL R12 1 - 0x7C200800, // 02B8 CALL R8 4 - 0x80040E00, // 02B9 RET 1 R7 - 0x7002008D, // 02BA JMP #0349 - 0x541E002B, // 02BB LDINT R7 44 - 0x1C1C0A07, // 02BC EQ R7 R5 R7 - 0x781E001C, // 02BD JMPF R7 #02DB - 0x1C1C0D05, // 02BE EQ R7 R6 K5 - 0x781E0005, // 02BF JMPF R7 #02C6 - 0x8C1C0906, // 02C0 GETMET R7 R4 K6 - 0x8824090E, // 02C1 GETMBR R9 R4 K14 - 0x58280009, // 02C2 LDCONST R10 K9 - 0x7C1C0600, // 02C3 CALL R7 3 - 0x80040E00, // 02C4 RET 1 R7 - 0x70020013, // 02C5 JMP #02DA - 0x1C1C0D09, // 02C6 EQ R7 R6 K9 - 0x781E0005, // 02C7 JMPF R7 #02CE - 0x8C1C0906, // 02C8 GETMET R7 R4 K6 - 0x8824090E, // 02C9 GETMBR R9 R4 K14 - 0x542A0003, // 02CA LDINT R10 4 - 0x7C1C0600, // 02CB CALL R7 3 - 0x80040E00, // 02CC RET 1 R7 - 0x7002000B, // 02CD JMP #02DA - 0x1C1C0D0D, // 02CE EQ R7 R6 K13 - 0x781E0009, // 02CF JMPF R7 #02DA - 0x8C1C0911, // 02D0 GETMET R7 R4 K17 - 0x7C1C0200, // 02D1 CALL R7 1 - 0x8C200F0B, // 02D2 GETMET R8 R7 K11 - 0x4C280000, // 02D3 LDNIL R10 - 0x8C2C0906, // 02D4 GETMET R11 R4 K6 - 0x8834090E, // 02D5 GETMBR R13 R4 K14 - 0x543A0003, // 02D6 LDINT R14 4 - 0x7C2C0600, // 02D7 CALL R11 3 - 0x7C200600, // 02D8 CALL R8 3 - 0x80040E00, // 02D9 RET 1 R7 - 0x7002006D, // 02DA JMP #0349 - 0x541E0030, // 02DB LDINT R7 49 - 0x1C1C0A07, // 02DC EQ R7 R5 R7 - 0x781E0010, // 02DD JMPF R7 #02EF - 0x1C1C0D0F, // 02DE EQ R7 R6 K15 - 0x781E0005, // 02DF JMPF R7 #02E6 - 0x8C1C0906, // 02E0 GETMET R7 R4 K6 - 0x8824090E, // 02E1 GETMBR R9 R4 K14 - 0x542A001D, // 02E2 LDINT R10 30 - 0x7C1C0600, // 02E3 CALL R7 3 - 0x80040E00, // 02E4 RET 1 R7 - 0x70020007, // 02E5 JMP #02EE - 0x541EFFFB, // 02E6 LDINT R7 65532 - 0x1C1C0C07, // 02E7 EQ R7 R6 R7 - 0x781E0004, // 02E8 JMPF R7 #02EE - 0x8C1C0906, // 02E9 GETMET R7 R4 K6 - 0x8824092A, // 02EA GETMBR R9 R4 K42 - 0x542A0003, // 02EB LDINT R10 4 - 0x7C1C0600, // 02EC CALL R7 3 - 0x80040E00, // 02ED RET 1 R7 - 0x70020059, // 02EE JMP #0349 - 0x541E001C, // 02EF LDINT R7 29 - 0x1C1C0A07, // 02F0 EQ R7 R5 R7 - 0x781E0053, // 02F1 JMPF R7 #0346 - 0x1C1C0D05, // 02F2 EQ R7 R6 K5 - 0x781E001C, // 02F3 JMPF R7 #0311 - 0x8C1C0911, // 02F4 GETMET R7 R4 K17 - 0x7C1C0200, // 02F5 CALL R7 1 - 0x60200010, // 02F6 GETGBL R8 G16 - 0x8824014E, // 02F7 GETMBR R9 R0 K78 - 0x8C24134F, // 02F8 GETMET R9 R9 K79 - 0x7C240200, // 02F9 CALL R9 1 - 0x7C200200, // 02FA CALL R8 1 - 0xA802000F, // 02FB EXBLK 0 #030C - 0x5C241000, // 02FC MOVE R9 R8 - 0x7C240000, // 02FD CALL R9 0 - 0x8C280F15, // 02FE GETMET R10 R7 K21 - 0x7C280200, // 02FF CALL R10 1 - 0x8C2C150B, // 0300 GETMET R11 R10 K11 - 0x58340005, // 0301 LDCONST R13 K5 - 0x8838090C, // 0302 GETMBR R14 R4 K12 - 0x5C3C1200, // 0303 MOVE R15 R9 - 0x7C2C0800, // 0304 CALL R11 4 - 0x8C2C150B, // 0305 GETMET R11 R10 K11 - 0x58340009, // 0306 LDCONST R13 K9 - 0x8838090C, // 0307 GETMBR R14 R4 K12 - 0x883C014E, // 0308 GETMBR R15 R0 K78 - 0x943C1E09, // 0309 GETIDX R15 R15 R9 - 0x7C2C0800, // 030A CALL R11 4 - 0x7001FFEF, // 030B JMP #02FC - 0x58200039, // 030C LDCONST R8 K57 - 0xAC200200, // 030D CATCH R8 1 0 - 0xB0080000, // 030E RAISE 2 R0 R0 - 0x80040E00, // 030F RET 1 R7 - 0x70020033, // 0310 JMP #0345 - 0x1C1C0D09, // 0311 EQ R7 R6 K9 - 0x781E0013, // 0312 JMPF R7 #0327 - 0x8C1C0911, // 0313 GETMET R7 R4 K17 - 0x7C1C0200, // 0314 CALL R7 1 - 0x60200010, // 0315 GETGBL R8 G16 - 0x8C240150, // 0316 GETMET R9 R0 K80 - 0x7C240200, // 0317 CALL R9 1 - 0x7C200200, // 0318 CALL R8 1 - 0xA8020007, // 0319 EXBLK 0 #0322 - 0x5C241000, // 031A MOVE R9 R8 - 0x7C240000, // 031B CALL R9 0 - 0x8C280F0B, // 031C GETMET R10 R7 K11 - 0x4C300000, // 031D LDNIL R12 - 0x8834092A, // 031E GETMBR R13 R4 K42 - 0x5C381200, // 031F MOVE R14 R9 - 0x7C280800, // 0320 CALL R10 4 - 0x7001FFF7, // 0321 JMP #031A - 0x58200039, // 0322 LDCONST R8 K57 - 0xAC200200, // 0323 CATCH R8 1 0 - 0xB0080000, // 0324 RAISE 2 R0 R0 - 0x80040E00, // 0325 RET 1 R7 - 0x7002001D, // 0326 JMP #0345 - 0x1C1C0D0D, // 0327 EQ R7 R6 K13 - 0x781E0003, // 0328 JMPF R7 #032D - 0x8C1C0911, // 0329 GETMET R7 R4 K17 - 0x7C1C0200, // 032A CALL R7 1 - 0x80040E00, // 032B RET 1 R7 - 0x70020017, // 032C JMP #0345 - 0x1C1C0D0F, // 032D EQ R7 R6 K15 - 0x781E0015, // 032E JMPF R7 #0345 - 0x881C0133, // 032F GETMBR R7 R0 K51 - 0x8C1C0F51, // 0330 GETMET R7 R7 K81 - 0x50240200, // 0331 LDBOOL R9 1 0 - 0x7C1C0400, // 0332 CALL R7 2 - 0x8C200911, // 0333 GETMET R8 R4 K17 - 0x7C200200, // 0334 CALL R8 1 - 0x60240010, // 0335 GETGBL R9 G16 - 0x5C280E00, // 0336 MOVE R10 R7 - 0x7C240200, // 0337 CALL R9 1 - 0xA8020007, // 0338 EXBLK 0 #0341 - 0x5C281200, // 0339 MOVE R10 R9 - 0x7C280000, // 033A CALL R10 0 - 0x8C2C110B, // 033B GETMET R11 R8 K11 - 0x4C340000, // 033C LDNIL R13 - 0x8838090C, // 033D GETMBR R14 R4 K12 - 0x5C3C1400, // 033E MOVE R15 R10 - 0x7C2C0800, // 033F CALL R11 4 - 0x7001FFF7, // 0340 JMP #0339 - 0x58240039, // 0341 LDCONST R9 K57 - 0xAC240200, // 0342 CATCH R9 1 0 - 0xB0080000, // 0343 RAISE 2 R0 R0 - 0x80041000, // 0344 RET 1 R8 - 0x70020002, // 0345 JMP #0349 - 0xB81E0200, // 0346 GETNGBL R7 K1 - 0x881C0F53, // 0347 GETMBR R7 R7 K83 - 0x900AA407, // 0348 SETMBR R2 K82 R7 - 0x80000000, // 0349 RET 0 + 0xB82A2400, // 0228 GETNGBL R10 K18 + 0x8C281526, // 0229 GETMET R10 R10 K38 + 0x58300048, // 022A LDCONST R12 K72 + 0x50340200, // 022B LDBOOL R13 1 0 + 0x7C280600, // 022C CALL R10 3 + 0x94281549, // 022D GETIDX R10 R10 K73 + 0x7C1C0600, // 022E CALL R7 3 + 0x80040E00, // 022F RET 1 R7 + 0x70020057, // 0230 JMP #0289 + 0x541E0005, // 0231 LDINT R7 6 + 0x1C1C0C07, // 0232 EQ R7 R6 R7 + 0x781E0005, // 0233 JMPF R7 #023A + 0x8C1C0906, // 0234 GETMET R7 R4 K6 + 0x88240916, // 0235 GETMBR R9 R4 K22 + 0x5828004A, // 0236 LDCONST R10 K74 + 0x7C1C0600, // 0237 CALL R7 3 + 0x80040E00, // 0238 RET 1 R7 + 0x7002004E, // 0239 JMP #0289 + 0x541E0006, // 023A LDINT R7 7 + 0x1C1C0C07, // 023B EQ R7 R6 R7 + 0x781E0005, // 023C JMPF R7 #0243 + 0x8C1C0906, // 023D GETMET R7 R4 K6 + 0x8824090C, // 023E GETMBR R9 R4 K12 + 0x58280005, // 023F LDCONST R10 K5 + 0x7C1C0600, // 0240 CALL R7 3 + 0x80040E00, // 0241 RET 1 R7 + 0x70020045, // 0242 JMP #0289 + 0x541E0007, // 0243 LDINT R7 8 + 0x1C1C0C07, // 0244 EQ R7 R6 R7 + 0x781E000B, // 0245 JMPF R7 #0252 + 0x8C1C0906, // 0246 GETMET R7 R4 K6 + 0x88240916, // 0247 GETMBR R9 R4 K22 + 0xB82A2400, // 0248 GETNGBL R10 K18 + 0x8C281526, // 0249 GETMET R10 R10 K38 + 0x5830004B, // 024A LDCONST R12 K75 + 0x50340200, // 024B LDBOOL R13 1 0 + 0x7C280600, // 024C CALL R10 3 + 0x9428154C, // 024D GETIDX R10 R10 K76 + 0x9428154D, // 024E GETIDX R10 R10 K77 + 0x7C1C0600, // 024F CALL R7 3 + 0x80040E00, // 0250 RET 1 R7 + 0x70020036, // 0251 JMP #0289 + 0x541E0008, // 0252 LDINT R7 9 + 0x1C1C0C07, // 0253 EQ R7 R6 R7 + 0x781E0005, // 0254 JMPF R7 #025B + 0x8C1C0906, // 0255 GETMET R7 R4 K6 + 0x8824090C, // 0256 GETMBR R9 R4 K12 + 0x58280009, // 0257 LDCONST R10 K9 + 0x7C1C0600, // 0258 CALL R7 3 + 0x80040E00, // 0259 RET 1 R7 + 0x7002002D, // 025A JMP #0289 + 0x541E0009, // 025B LDINT R7 10 + 0x1C1C0C07, // 025C EQ R7 R6 R7 + 0x781E000B, // 025D JMPF R7 #026A + 0x8C1C0906, // 025E GETMET R7 R4 K6 + 0x88240916, // 025F GETMBR R9 R4 K22 + 0xB82A2400, // 0260 GETNGBL R10 K18 + 0x8C281526, // 0261 GETMET R10 R10 K38 + 0x5830004B, // 0262 LDCONST R12 K75 + 0x50340200, // 0263 LDBOOL R13 1 0 + 0x7C280600, // 0264 CALL R10 3 + 0x9428154C, // 0265 GETIDX R10 R10 K76 + 0x9428154E, // 0266 GETIDX R10 R10 K78 + 0x7C1C0600, // 0267 CALL R7 3 + 0x80040E00, // 0268 RET 1 R7 + 0x7002001E, // 0269 JMP #0289 + 0x541E0011, // 026A LDINT R7 18 + 0x1C1C0C07, // 026B EQ R7 R6 R7 + 0x781E000B, // 026C JMPF R7 #0279 + 0x8C1C0906, // 026D GETMET R7 R4 K6 + 0x88240916, // 026E GETMBR R9 R4 K22 + 0xB82A2400, // 026F GETNGBL R10 K18 + 0x8C281525, // 0270 GETMET R10 R10 K37 + 0x7C280200, // 0271 CALL R10 1 + 0x8C28151B, // 0272 GETMET R10 R10 K27 + 0x5830001C, // 0273 LDCONST R12 K28 + 0x5834001D, // 0274 LDCONST R13 K29 + 0x7C280600, // 0275 CALL R10 3 + 0x7C1C0600, // 0276 CALL R7 3 + 0x80040E00, // 0277 RET 1 R7 + 0x7002000F, // 0278 JMP #0289 + 0x541E0012, // 0279 LDINT R7 19 + 0x1C1C0C07, // 027A EQ R7 R6 R7 + 0x781E000C, // 027B JMPF R7 #0289 + 0x8C1C090A, // 027C GETMET R7 R4 K10 + 0x7C1C0200, // 027D CALL R7 1 + 0x8C200F0B, // 027E GETMET R8 R7 K11 + 0x58280005, // 027F LDCONST R10 K5 + 0x882C090C, // 0280 GETMBR R11 R4 K12 + 0x5830000F, // 0281 LDCONST R12 K15 + 0x7C200800, // 0282 CALL R8 4 + 0x8C200F0B, // 0283 GETMET R8 R7 K11 + 0x58280009, // 0284 LDCONST R10 K9 + 0x882C090C, // 0285 GETMBR R11 R4 K12 + 0x5830000F, // 0286 LDCONST R12 K15 + 0x7C200800, // 0287 CALL R8 4 + 0x80040E00, // 0288 RET 1 R7 + 0x700200CC, // 0289 JMP #0357 + 0x541E003E, // 028A LDINT R7 63 + 0x1C1C0A07, // 028B EQ R7 R5 R7 + 0x781E0000, // 028C JMPF R7 #028E + 0x700200C8, // 028D JMP #0357 + 0x541E0029, // 028E LDINT R7 42 + 0x1C1C0A07, // 028F EQ R7 R5 R7 + 0x781E001D, // 0290 JMPF R7 #02AF + 0x1C1C0D05, // 0291 EQ R7 R6 K5 + 0x781E0003, // 0292 JMPF R7 #0297 + 0x8C1C0911, // 0293 GETMET R7 R4 K17 + 0x7C1C0200, // 0294 CALL R7 1 + 0x80040E00, // 0295 RET 1 R7 + 0x70020016, // 0296 JMP #02AE + 0x1C1C0D09, // 0297 EQ R7 R6 K9 + 0x781E0005, // 0298 JMPF R7 #029F + 0x8C1C0906, // 0299 GETMET R7 R4 K6 + 0x88240910, // 029A GETMBR R9 R4 K16 + 0x58280005, // 029B LDCONST R10 K5 + 0x7C1C0600, // 029C CALL R7 3 + 0x80040E00, // 029D RET 1 R7 + 0x7002000E, // 029E JMP #02AE + 0x1C1C0D0D, // 029F EQ R7 R6 K13 + 0x781E0005, // 02A0 JMPF R7 #02A7 + 0x8C1C0906, // 02A1 GETMET R7 R4 K6 + 0x8824090E, // 02A2 GETMBR R9 R4 K14 + 0x58280009, // 02A3 LDCONST R10 K9 + 0x7C1C0600, // 02A4 CALL R7 3 + 0x80040E00, // 02A5 RET 1 R7 + 0x70020006, // 02A6 JMP #02AE + 0x1C1C0D0F, // 02A7 EQ R7 R6 K15 + 0x781E0004, // 02A8 JMPF R7 #02AE + 0x8C1C0906, // 02A9 GETMET R7 R4 K6 + 0x88240918, // 02AA GETMBR R9 R4 K24 + 0x4C280000, // 02AB LDNIL R10 + 0x7C1C0600, // 02AC CALL R7 3 + 0x80040E00, // 02AD RET 1 R7 + 0x700200A7, // 02AE JMP #0357 + 0x541E002A, // 02AF LDINT R7 43 + 0x1C1C0A07, // 02B0 EQ R7 R5 R7 + 0x781E0016, // 02B1 JMPF R7 #02C9 + 0x1C1C0D05, // 02B2 EQ R7 R6 K5 + 0x781E0007, // 02B3 JMPF R7 #02BC + 0x8C1C0906, // 02B4 GETMET R7 R4 K6 + 0x88240916, // 02B5 GETMBR R9 R4 K22 + 0xB82A2400, // 02B6 GETNGBL R10 K18 + 0x8C28154F, // 02B7 GETMET R10 R10 K79 + 0x7C280200, // 02B8 CALL R10 1 + 0x7C1C0600, // 02B9 CALL R7 3 + 0x80040E00, // 02BA RET 1 R7 + 0x7002000B, // 02BB JMP #02C8 + 0x1C1C0D09, // 02BC EQ R7 R6 K9 + 0x781E0009, // 02BD JMPF R7 #02C8 + 0x8C1C0911, // 02BE GETMET R7 R4 K17 + 0x7C1C0200, // 02BF CALL R7 1 + 0x8C200F0B, // 02C0 GETMET R8 R7 K11 + 0x4C280000, // 02C1 LDNIL R10 + 0x882C0916, // 02C2 GETMBR R11 R4 K22 + 0xB8322400, // 02C3 GETNGBL R12 K18 + 0x8C30194F, // 02C4 GETMET R12 R12 K79 + 0x7C300200, // 02C5 CALL R12 1 + 0x7C200800, // 02C6 CALL R8 4 + 0x80040E00, // 02C7 RET 1 R7 + 0x7002008D, // 02C8 JMP #0357 + 0x541E002B, // 02C9 LDINT R7 44 + 0x1C1C0A07, // 02CA EQ R7 R5 R7 + 0x781E001C, // 02CB JMPF R7 #02E9 + 0x1C1C0D05, // 02CC EQ R7 R6 K5 + 0x781E0005, // 02CD JMPF R7 #02D4 + 0x8C1C0906, // 02CE GETMET R7 R4 K6 + 0x8824090E, // 02CF GETMBR R9 R4 K14 + 0x58280009, // 02D0 LDCONST R10 K9 + 0x7C1C0600, // 02D1 CALL R7 3 + 0x80040E00, // 02D2 RET 1 R7 + 0x70020013, // 02D3 JMP #02E8 + 0x1C1C0D09, // 02D4 EQ R7 R6 K9 + 0x781E0005, // 02D5 JMPF R7 #02DC + 0x8C1C0906, // 02D6 GETMET R7 R4 K6 + 0x8824090E, // 02D7 GETMBR R9 R4 K14 + 0x542A0003, // 02D8 LDINT R10 4 + 0x7C1C0600, // 02D9 CALL R7 3 + 0x80040E00, // 02DA RET 1 R7 + 0x7002000B, // 02DB JMP #02E8 + 0x1C1C0D0D, // 02DC EQ R7 R6 K13 + 0x781E0009, // 02DD JMPF R7 #02E8 + 0x8C1C0911, // 02DE GETMET R7 R4 K17 + 0x7C1C0200, // 02DF CALL R7 1 + 0x8C200F0B, // 02E0 GETMET R8 R7 K11 + 0x4C280000, // 02E1 LDNIL R10 + 0x8C2C0906, // 02E2 GETMET R11 R4 K6 + 0x8834090E, // 02E3 GETMBR R13 R4 K14 + 0x543A0003, // 02E4 LDINT R14 4 + 0x7C2C0600, // 02E5 CALL R11 3 + 0x7C200600, // 02E6 CALL R8 3 + 0x80040E00, // 02E7 RET 1 R7 + 0x7002006D, // 02E8 JMP #0357 + 0x541E0030, // 02E9 LDINT R7 49 + 0x1C1C0A07, // 02EA EQ R7 R5 R7 + 0x781E0010, // 02EB JMPF R7 #02FD + 0x1C1C0D0F, // 02EC EQ R7 R6 K15 + 0x781E0005, // 02ED JMPF R7 #02F4 + 0x8C1C0906, // 02EE GETMET R7 R4 K6 + 0x8824090E, // 02EF GETMBR R9 R4 K14 + 0x542A001D, // 02F0 LDINT R10 30 + 0x7C1C0600, // 02F1 CALL R7 3 + 0x80040E00, // 02F2 RET 1 R7 + 0x70020007, // 02F3 JMP #02FC + 0x541EFFFB, // 02F4 LDINT R7 65532 + 0x1C1C0C07, // 02F5 EQ R7 R6 R7 + 0x781E0004, // 02F6 JMPF R7 #02FC + 0x8C1C0906, // 02F7 GETMET R7 R4 K6 + 0x8824092A, // 02F8 GETMBR R9 R4 K42 + 0x542A0003, // 02F9 LDINT R10 4 + 0x7C1C0600, // 02FA CALL R7 3 + 0x80040E00, // 02FB RET 1 R7 + 0x70020059, // 02FC JMP #0357 + 0x541E001C, // 02FD LDINT R7 29 + 0x1C1C0A07, // 02FE EQ R7 R5 R7 + 0x781E0053, // 02FF JMPF R7 #0354 + 0x1C1C0D05, // 0300 EQ R7 R6 K5 + 0x781E001C, // 0301 JMPF R7 #031F + 0x8C1C0911, // 0302 GETMET R7 R4 K17 + 0x7C1C0200, // 0303 CALL R7 1 + 0x60200010, // 0304 GETGBL R8 G16 + 0x88240150, // 0305 GETMBR R9 R0 K80 + 0x8C241351, // 0306 GETMET R9 R9 K81 + 0x7C240200, // 0307 CALL R9 1 + 0x7C200200, // 0308 CALL R8 1 + 0xA802000F, // 0309 EXBLK 0 #031A + 0x5C241000, // 030A MOVE R9 R8 + 0x7C240000, // 030B CALL R9 0 + 0x8C280F15, // 030C GETMET R10 R7 K21 + 0x7C280200, // 030D CALL R10 1 + 0x8C2C150B, // 030E GETMET R11 R10 K11 + 0x58340005, // 030F LDCONST R13 K5 + 0x8838090C, // 0310 GETMBR R14 R4 K12 + 0x5C3C1200, // 0311 MOVE R15 R9 + 0x7C2C0800, // 0312 CALL R11 4 + 0x8C2C150B, // 0313 GETMET R11 R10 K11 + 0x58340009, // 0314 LDCONST R13 K9 + 0x8838090C, // 0315 GETMBR R14 R4 K12 + 0x883C0150, // 0316 GETMBR R15 R0 K80 + 0x943C1E09, // 0317 GETIDX R15 R15 R9 + 0x7C2C0800, // 0318 CALL R11 4 + 0x7001FFEF, // 0319 JMP #030A + 0x58200039, // 031A LDCONST R8 K57 + 0xAC200200, // 031B CATCH R8 1 0 + 0xB0080000, // 031C RAISE 2 R0 R0 + 0x80040E00, // 031D RET 1 R7 + 0x70020033, // 031E JMP #0353 + 0x1C1C0D09, // 031F EQ R7 R6 K9 + 0x781E0013, // 0320 JMPF R7 #0335 + 0x8C1C0911, // 0321 GETMET R7 R4 K17 + 0x7C1C0200, // 0322 CALL R7 1 + 0x60200010, // 0323 GETGBL R8 G16 + 0x8C240152, // 0324 GETMET R9 R0 K82 + 0x7C240200, // 0325 CALL R9 1 + 0x7C200200, // 0326 CALL R8 1 + 0xA8020007, // 0327 EXBLK 0 #0330 + 0x5C241000, // 0328 MOVE R9 R8 + 0x7C240000, // 0329 CALL R9 0 + 0x8C280F0B, // 032A GETMET R10 R7 K11 + 0x4C300000, // 032B LDNIL R12 + 0x8834092A, // 032C GETMBR R13 R4 K42 + 0x5C381200, // 032D MOVE R14 R9 + 0x7C280800, // 032E CALL R10 4 + 0x7001FFF7, // 032F JMP #0328 + 0x58200039, // 0330 LDCONST R8 K57 + 0xAC200200, // 0331 CATCH R8 1 0 + 0xB0080000, // 0332 RAISE 2 R0 R0 + 0x80040E00, // 0333 RET 1 R7 + 0x7002001D, // 0334 JMP #0353 + 0x1C1C0D0D, // 0335 EQ R7 R6 K13 + 0x781E0003, // 0336 JMPF R7 #033B + 0x8C1C0911, // 0337 GETMET R7 R4 K17 + 0x7C1C0200, // 0338 CALL R7 1 + 0x80040E00, // 0339 RET 1 R7 + 0x70020017, // 033A JMP #0353 + 0x1C1C0D0F, // 033B EQ R7 R6 K15 + 0x781E0015, // 033C JMPF R7 #0353 + 0x881C0133, // 033D GETMBR R7 R0 K51 + 0x8C1C0F53, // 033E GETMET R7 R7 K83 + 0x50240200, // 033F LDBOOL R9 1 0 + 0x7C1C0400, // 0340 CALL R7 2 + 0x8C200911, // 0341 GETMET R8 R4 K17 + 0x7C200200, // 0342 CALL R8 1 + 0x60240010, // 0343 GETGBL R9 G16 + 0x5C280E00, // 0344 MOVE R10 R7 + 0x7C240200, // 0345 CALL R9 1 + 0xA8020007, // 0346 EXBLK 0 #034F + 0x5C281200, // 0347 MOVE R10 R9 + 0x7C280000, // 0348 CALL R10 0 + 0x8C2C110B, // 0349 GETMET R11 R8 K11 + 0x4C340000, // 034A LDNIL R13 + 0x8838090C, // 034B GETMBR R14 R4 K12 + 0x5C3C1400, // 034C MOVE R15 R10 + 0x7C2C0800, // 034D CALL R11 4 + 0x7001FFF7, // 034E JMP #0347 + 0x58240039, // 034F LDCONST R9 K57 + 0xAC240200, // 0350 CATCH R9 1 0 + 0xB0080000, // 0351 RAISE 2 R0 R0 + 0x80041000, // 0352 RET 1 R8 + 0x70020002, // 0353 JMP #0357 + 0xB81E0200, // 0354 GETNGBL R7 K1 + 0x881C0F55, // 0355 GETMBR R7 R7 K85 + 0x900AA807, // 0356 SETMBR R2 K84 R7 + 0x80000000, // 0357 RET 0 }) ) ); @@ -1150,7 +1166,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[79]) { /* constants */ + ( &(const bvalue[80]) { /* constants */ /* K0 */ be_nested_str_weak(crypto), /* K1 */ be_nested_str_weak(matter), /* K2 */ be_nested_str_weak(TLV), @@ -1207,33 +1223,34 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */ /* K53 */ be_nested_str_weak(MTR_X3A_X20Error_X3A_X20no_X20fabricid_X20nor_X20deviceid_X20in_X20NOC_X20certificate), /* K54 */ be_nested_str_weak(int), /* K55 */ be_nested_str_weak(int64), - /* K56 */ be_nested_str_weak(tobytes), - /* K57 */ be_const_int(2147483647), - /* K58 */ be_nested_str_weak(fromstring), - /* K59 */ be_nested_str_weak(CompressedFabric), - /* K60 */ be_nested_str_weak(HKDF_SHA256), - /* K61 */ be_nested_str_weak(copy), - /* K62 */ be_nested_str_weak(reverse), - /* K63 */ be_nested_str_weak(derive), - /* K64 */ be_nested_str_weak(set_fabric_device), - /* K65 */ be_nested_str_weak(persist_to_fabric), - /* K66 */ be_nested_str_weak(fabric_candidate), - /* K67 */ be_nested_str_weak(start_operational_discovery_deferred), - /* K68 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D), - /* K69 */ be_nested_str_weak(MTR_X3A_X20fabric_X3D), - /* K70 */ be_nested_str_weak(inspect), - /* K71 */ be_nested_str_weak(_fabric), - /* K72 */ be_nested_str_weak(set_fabric_label), - /* K73 */ be_nested_str_weak(sessions), - /* K74 */ be_nested_str_weak(sessions_active), - /* K75 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20), - /* K76 */ be_nested_str_weak(get_fabric_id), - /* K77 */ be_nested_str_weak(remove_session), - /* K78 */ be_nested_str_weak(save_fabrics), + /* K56 */ be_nested_str_weak(fromu32), + /* K57 */ be_nested_str_weak(tobytes), + /* K58 */ be_const_int(2147483647), + /* K59 */ be_nested_str_weak(fromstring), + /* K60 */ be_nested_str_weak(CompressedFabric), + /* K61 */ be_nested_str_weak(HKDF_SHA256), + /* K62 */ be_nested_str_weak(copy), + /* K63 */ be_nested_str_weak(reverse), + /* K64 */ be_nested_str_weak(derive), + /* K65 */ be_nested_str_weak(set_fabric_device), + /* K66 */ be_nested_str_weak(persist_to_fabric), + /* K67 */ be_nested_str_weak(fabric_candidate), + /* K68 */ be_nested_str_weak(start_operational_discovery_deferred), + /* K69 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D_X2D), + /* K70 */ be_nested_str_weak(MTR_X3A_X20fabric_X3D), + /* K71 */ be_nested_str_weak(inspect), + /* K72 */ be_nested_str_weak(_fabric), + /* K73 */ be_nested_str_weak(set_fabric_label), + /* K74 */ be_nested_str_weak(sessions), + /* K75 */ be_nested_str_weak(sessions_active), + /* K76 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20), + /* K77 */ be_nested_str_weak(get_fabric_id), + /* K78 */ be_nested_str_weak(remove_session), + /* K79 */ be_nested_str_weak(save_fabrics), }), be_str_weak(invoke_request), &be_const_str_solidified, - ( &(const binstruction[532]) { /* code */ + ( &(const binstruction[540]) { /* code */ 0xA4120000, // 0000 IMPORT R4 K0 0xB8160200, // 0001 GETNGBL R5 K1 0x88140B02, // 0002 GETMBR R5 R5 K2 @@ -1326,10 +1343,10 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */ 0x5C2C0200, // 0059 MOVE R11 R1 0x7C240400, // 005A CALL R9 2 0x80041000, // 005B RET 1 R8 - 0x700201B5, // 005C JMP #0213 + 0x700201BD, // 005C JMP #021B 0x5422003D, // 005D LDINT R8 62 0x1C200C08, // 005E EQ R8 R6 R8 - 0x782201AB, // 005F JMPF R8 #020C + 0x782201B3, // 005F JMPF R8 #0214 0x1C200F0E, // 0060 EQ R8 R7 K14 0x7822001D, // 0061 JMPF R8 #0080 0x8C200506, // 0062 GETMET R8 R2 K6 @@ -1361,7 +1378,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */ 0x7C280800, // 007C CALL R10 4 0x900E0910, // 007D SETMBR R3 K4 K16 0x80041200, // 007E RET 1 R9 - 0x7002018A, // 007F JMP #020B + 0x70020192, // 007F JMP #0213 0x1C200F05, // 0080 EQ R8 R7 K5 0x78220044, // 0081 JMPF R8 #00C7 0x8C200506, // 0082 GETMET R8 R2 K6 @@ -1432,7 +1449,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */ 0x7C3C0800, // 00C3 CALL R15 4 0x900E0907, // 00C4 SETMBR R3 K4 K7 0x80041C00, // 00C5 RET 1 R14 - 0x70020143, // 00C6 JMP #020B + 0x7002014B, // 00C6 JMP #0213 0x54220003, // 00C7 LDINT R8 4 0x1C200E08, // 00C8 EQ R8 R7 R8 0x78220040, // 00C9 JMPF R8 #010B @@ -1500,7 +1517,7 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */ 0x54420004, // 0107 LDINT R16 5 0x900E0810, // 0108 SETMBR R3 K4 R16 0x80041E00, // 0109 RET 1 R15 - 0x700200FF, // 010A JMP #020B + 0x70020107, // 010A JMP #0213 0x5422000A, // 010B LDINT R8 11 0x1C200E08, // 010C EQ R8 R7 R8 0x78220012, // 010D JMPF R8 #0121 @@ -1522,250 +1539,258 @@ be_local_closure(Matter_Plugin_Root_invoke_request, /* name */ 0x900E2C09, // 011D SETMBR R3 K22 R9 0x4C240000, // 011E LDNIL R9 0x80041200, // 011F RET 1 R9 - 0x700200E9, // 0120 JMP #020B + 0x700200F1, // 0120 JMP #0213 0x54220005, // 0121 LDINT R8 6 0x1C200E08, // 0122 EQ R8 R7 R8 - 0x782200AA, // 0123 JMPF R8 #01CF + 0x782200B2, // 0123 JMPF R8 #01D7 0x8C200506, // 0124 GETMET R8 R2 K6 0x58280005, // 0125 LDCONST R10 K5 0x7C200400, // 0126 CALL R8 2 0x8C240506, // 0127 GETMET R9 R2 K6 0x582C0007, // 0128 LDCONST R11 K7 0x7C240400, // 0129 CALL R9 2 - 0x8C280506, // 012A GETMET R10 R2 K6 - 0x5830000E, // 012B LDCONST R12 K14 - 0x7C280400, // 012C CALL R10 2 - 0x8C2C0506, // 012D GETMET R11 R2 K6 - 0x58340010, // 012E LDCONST R13 K16 - 0x7C2C0400, // 012F CALL R11 2 - 0x8C300506, // 0130 GETMET R12 R2 K6 - 0x543A0003, // 0131 LDINT R14 4 - 0x7C300400, // 0132 CALL R12 2 - 0x8C34032E, // 0133 GETMET R13 R1 K46 - 0x7C340200, // 0134 CALL R13 1 - 0x4C380000, // 0135 LDNIL R14 - 0x1C341A0E, // 0136 EQ R13 R13 R14 - 0x78360006, // 0137 JMPF R13 #013F - 0xB8363C00, // 0138 GETNGBL R13 K30 - 0x8C341B23, // 0139 GETMET R13 R13 K35 - 0x583C002F, // 013A LDCONST R15 K47 - 0x5840000E, // 013B LDCONST R16 K14 - 0x7C340600, // 013C CALL R13 3 - 0x4C340000, // 013D LDNIL R13 - 0x80041A00, // 013E RET 1 R13 - 0x8C340330, // 013F GETMET R13 R1 K48 - 0x5C3C1000, // 0140 MOVE R15 R8 - 0x5C401200, // 0141 MOVE R16 R9 + 0x6028000C, // 012A GETGBL R10 G12 + 0x5C2C1200, // 012B MOVE R11 R9 + 0x7C280200, // 012C CALL R10 1 + 0x1C281505, // 012D EQ R10 R10 K5 + 0x782A0000, // 012E JMPF R10 #0130 + 0x4C240000, // 012F LDNIL R9 + 0x8C280506, // 0130 GETMET R10 R2 K6 + 0x5830000E, // 0131 LDCONST R12 K14 + 0x7C280400, // 0132 CALL R10 2 + 0x8C2C0506, // 0133 GETMET R11 R2 K6 + 0x58340010, // 0134 LDCONST R13 K16 + 0x7C2C0400, // 0135 CALL R11 2 + 0x8C300506, // 0136 GETMET R12 R2 K6 + 0x543A0003, // 0137 LDINT R14 4 + 0x7C300400, // 0138 CALL R12 2 + 0x8C34032E, // 0139 GETMET R13 R1 K46 + 0x7C340200, // 013A CALL R13 1 + 0x4C380000, // 013B LDNIL R14 + 0x1C341A0E, // 013C EQ R13 R13 R14 + 0x78360006, // 013D JMPF R13 #0145 + 0xB8363C00, // 013E GETNGBL R13 K30 + 0x8C341B23, // 013F GETMET R13 R13 K35 + 0x583C002F, // 0140 LDCONST R15 K47 + 0x5840000E, // 0141 LDCONST R16 K14 0x7C340600, // 0142 CALL R13 3 - 0x8C340331, // 0143 GETMET R13 R1 K49 - 0x5C3C1400, // 0144 MOVE R15 R10 - 0x7C340400, // 0145 CALL R13 2 - 0x8C340332, // 0146 GETMET R13 R1 K50 - 0x5C3C1600, // 0147 MOVE R15 R11 - 0x5C401800, // 0148 MOVE R16 R12 - 0x7C340600, // 0149 CALL R13 3 - 0xB8360200, // 014A GETNGBL R13 K1 - 0x88341B02, // 014B GETMBR R13 R13 K2 - 0x8C341B33, // 014C GETMET R13 R13 K51 - 0x5C3C1000, // 014D MOVE R15 R8 - 0x7C340400, // 014E CALL R13 2 - 0x8C381B34, // 014F GETMET R14 R13 K52 - 0x54420005, // 0150 LDINT R16 6 - 0x7C380400, // 0151 CALL R14 2 - 0x8C3C1D06, // 0152 GETMET R15 R14 K6 - 0x54460014, // 0153 LDINT R17 21 - 0x7C3C0400, // 0154 CALL R15 2 - 0x8C401D06, // 0155 GETMET R16 R14 K6 - 0x544A0010, // 0156 LDINT R18 17 - 0x7C400400, // 0157 CALL R16 2 - 0x5C441E00, // 0158 MOVE R17 R15 - 0x78460001, // 0159 JMPF R17 #015C - 0x5C442000, // 015A MOVE R17 R16 - 0x74460006, // 015B JMPT R17 #0163 - 0xB8463C00, // 015C GETNGBL R17 K30 - 0x8C442323, // 015D GETMET R17 R17 K35 - 0x584C0035, // 015E LDCONST R19 K53 - 0x5850000E, // 015F LDCONST R20 K14 - 0x7C440600, // 0160 CALL R17 3 - 0x50440000, // 0161 LDBOOL R17 0 0 - 0x80042200, // 0162 RET 1 R17 - 0x60440004, // 0163 GETGBL R17 G4 - 0x5C481E00, // 0164 MOVE R18 R15 - 0x7C440200, // 0165 CALL R17 1 - 0x1C442336, // 0166 EQ R17 R17 K54 - 0x78460006, // 0167 JMPF R17 #016F - 0xB8466E00, // 0168 GETNGBL R17 K55 - 0x5C481E00, // 0169 MOVE R18 R15 - 0x7C440200, // 016A CALL R17 1 - 0x8C442338, // 016B GETMET R17 R17 K56 - 0x7C440200, // 016C CALL R17 1 - 0x5C3C2200, // 016D MOVE R15 R17 - 0x70020002, // 016E JMP #0172 - 0x8C441F38, // 016F GETMET R17 R15 K56 - 0x7C440200, // 0170 CALL R17 1 - 0x5C3C2200, // 0171 MOVE R15 R17 - 0x60440004, // 0172 GETGBL R17 G4 - 0x5C482000, // 0173 MOVE R18 R16 - 0x7C440200, // 0174 CALL R17 1 - 0x1C442336, // 0175 EQ R17 R17 K54 - 0x78460006, // 0176 JMPF R17 #017E - 0xB8466E00, // 0177 GETNGBL R17 K55 - 0x5C482000, // 0178 MOVE R18 R16 - 0x7C440200, // 0179 CALL R17 1 - 0x8C442338, // 017A GETMET R17 R17 K56 + 0x4C340000, // 0143 LDNIL R13 + 0x80041A00, // 0144 RET 1 R13 + 0x8C340330, // 0145 GETMET R13 R1 K48 + 0x5C3C1000, // 0146 MOVE R15 R8 + 0x5C401200, // 0147 MOVE R16 R9 + 0x7C340600, // 0148 CALL R13 3 + 0x8C340331, // 0149 GETMET R13 R1 K49 + 0x5C3C1400, // 014A MOVE R15 R10 + 0x7C340400, // 014B CALL R13 2 + 0x8C340332, // 014C GETMET R13 R1 K50 + 0x5C3C1600, // 014D MOVE R15 R11 + 0x5C401800, // 014E MOVE R16 R12 + 0x7C340600, // 014F CALL R13 3 + 0xB8360200, // 0150 GETNGBL R13 K1 + 0x88341B02, // 0151 GETMBR R13 R13 K2 + 0x8C341B33, // 0152 GETMET R13 R13 K51 + 0x5C3C1000, // 0153 MOVE R15 R8 + 0x7C340400, // 0154 CALL R13 2 + 0x8C381B34, // 0155 GETMET R14 R13 K52 + 0x54420005, // 0156 LDINT R16 6 + 0x7C380400, // 0157 CALL R14 2 + 0x8C3C1D06, // 0158 GETMET R15 R14 K6 + 0x54460014, // 0159 LDINT R17 21 + 0x7C3C0400, // 015A CALL R15 2 + 0x8C401D06, // 015B GETMET R16 R14 K6 + 0x544A0010, // 015C LDINT R18 17 + 0x7C400400, // 015D CALL R16 2 + 0x5C441E00, // 015E MOVE R17 R15 + 0x78460001, // 015F JMPF R17 #0162 + 0x5C442000, // 0160 MOVE R17 R16 + 0x74460006, // 0161 JMPT R17 #0169 + 0xB8463C00, // 0162 GETNGBL R17 K30 + 0x8C442323, // 0163 GETMET R17 R17 K35 + 0x584C0035, // 0164 LDCONST R19 K53 + 0x5850000E, // 0165 LDCONST R20 K14 + 0x7C440600, // 0166 CALL R17 3 + 0x50440000, // 0167 LDBOOL R17 0 0 + 0x80042200, // 0168 RET 1 R17 + 0x60440004, // 0169 GETGBL R17 G4 + 0x5C481E00, // 016A MOVE R18 R15 + 0x7C440200, // 016B CALL R17 1 + 0x1C442336, // 016C EQ R17 R17 K54 + 0x78460007, // 016D JMPF R17 #0176 + 0xB8466E00, // 016E GETNGBL R17 K55 + 0x8C442338, // 016F GETMET R17 R17 K56 + 0x5C4C1E00, // 0170 MOVE R19 R15 + 0x7C440400, // 0171 CALL R17 2 + 0x8C442339, // 0172 GETMET R17 R17 K57 + 0x7C440200, // 0173 CALL R17 1 + 0x5C3C2200, // 0174 MOVE R15 R17 + 0x70020002, // 0175 JMP #0179 + 0x8C441F39, // 0176 GETMET R17 R15 K57 + 0x7C440200, // 0177 CALL R17 1 + 0x5C3C2200, // 0178 MOVE R15 R17 + 0x60440004, // 0179 GETGBL R17 G4 + 0x5C482000, // 017A MOVE R18 R16 0x7C440200, // 017B CALL R17 1 - 0x5C402200, // 017C MOVE R16 R17 - 0x70020002, // 017D JMP #0181 - 0x8C442138, // 017E GETMET R17 R16 K56 - 0x7C440200, // 017F CALL R17 1 - 0x5C402200, // 0180 MOVE R16 R17 - 0xB8460200, // 0181 GETNGBL R17 K1 - 0x88442302, // 0182 GETMBR R17 R17 K2 - 0x8C442333, // 0183 GETMET R17 R17 K51 - 0x8C4C032E, // 0184 GETMET R19 R1 K46 - 0x7C4C0200, // 0185 CALL R19 1 - 0x7C440400, // 0186 CALL R17 2 - 0x8C442306, // 0187 GETMET R17 R17 K6 - 0x544E0008, // 0188 LDINT R19 9 - 0x7C440400, // 0189 CALL R17 2 - 0x404A0F39, // 018A CONNECT R18 K7 K57 - 0x94442212, // 018B GETIDX R17 R17 R18 - 0x604C0015, // 018C GETGBL R19 G21 - 0x7C4C0000, // 018D CALL R19 0 - 0x8C4C273A, // 018E GETMET R19 R19 K58 - 0x5854003B, // 018F LDCONST R21 K59 - 0x7C4C0400, // 0190 CALL R19 2 - 0x5C482600, // 0191 MOVE R18 R19 - 0x8C4C093C, // 0192 GETMET R19 R4 K60 - 0x7C4C0200, // 0193 CALL R19 1 - 0x8C501F3D, // 0194 GETMET R20 R15 K61 - 0x7C500200, // 0195 CALL R20 1 - 0x8C50293E, // 0196 GETMET R20 R20 K62 - 0x7C500200, // 0197 CALL R20 1 - 0x8C54273F, // 0198 GETMET R21 R19 K63 - 0x5C5C2200, // 0199 MOVE R23 R17 - 0x5C602800, // 019A MOVE R24 R20 - 0x5C642400, // 019B MOVE R25 R18 - 0x546A0007, // 019C LDINT R26 8 - 0x7C540A00, // 019D CALL R21 5 - 0x8C580340, // 019E GETMET R22 R1 K64 - 0x5C601E00, // 019F MOVE R24 R15 - 0x5C642000, // 01A0 MOVE R25 R16 - 0x5C682A00, // 01A1 MOVE R26 R21 - 0x7C580800, // 01A2 CALL R22 4 - 0x8C580341, // 01A3 GETMET R22 R1 K65 - 0x7C580200, // 01A4 CALL R22 1 - 0x8C580342, // 01A5 GETMET R22 R1 K66 - 0x7C580200, // 01A6 CALL R22 1 - 0x88580114, // 01A7 GETMBR R22 R0 K20 - 0x8C582D43, // 01A8 GETMET R22 R22 K67 - 0x5C600200, // 01A9 MOVE R24 R1 - 0x7C580400, // 01AA CALL R22 2 - 0xB85A3C00, // 01AB GETNGBL R22 K30 - 0x8C582D23, // 01AC GETMET R22 R22 K35 - 0x58600044, // 01AD LDCONST R24 K68 - 0x58640010, // 01AE LDCONST R25 K16 - 0x7C580600, // 01AF CALL R22 3 - 0xB85A3C00, // 01B0 GETNGBL R22 K30 - 0x8C582D23, // 01B1 GETMET R22 R22 K35 - 0xB8620200, // 01B2 GETNGBL R24 K1 - 0x8C603146, // 01B3 GETMET R24 R24 K70 - 0x88680347, // 01B4 GETMBR R26 R1 K71 - 0x7C600400, // 01B5 CALL R24 2 - 0x00628A18, // 01B6 ADD R24 K69 R24 - 0x58640010, // 01B7 LDCONST R25 K16 - 0x7C580600, // 01B8 CALL R22 3 - 0xB85A3C00, // 01B9 GETNGBL R22 K30 - 0x8C582D23, // 01BA GETMET R22 R22 K35 - 0x58600044, // 01BB LDCONST R24 K68 - 0x58640010, // 01BC LDCONST R25 K16 - 0x7C580600, // 01BD CALL R22 3 - 0x8C580B09, // 01BE GETMET R22 R5 K9 - 0x7C580200, // 01BF CALL R22 1 - 0x8C5C2D0A, // 01C0 GETMET R23 R22 K10 - 0x58640005, // 01C1 LDCONST R25 K5 - 0x88680B0B, // 01C2 GETMBR R26 R5 K11 - 0xB86E0200, // 01C3 GETNGBL R27 K1 - 0x886C372D, // 01C4 GETMBR R27 R27 K45 - 0x7C5C0800, // 01C5 CALL R23 4 - 0x8C5C2D0A, // 01C6 GETMET R23 R22 K10 - 0x58640007, // 01C7 LDCONST R25 K7 - 0x88680B0B, // 01C8 GETMBR R26 R5 K11 - 0x586C0007, // 01C9 LDCONST R27 K7 - 0x7C5C0800, // 01CA CALL R23 4 - 0x545E0007, // 01CB LDINT R23 8 - 0x900E0817, // 01CC SETMBR R3 K4 R23 - 0x80042C00, // 01CD RET 1 R22 - 0x7002003B, // 01CE JMP #020B - 0x54220008, // 01CF LDINT R8 9 - 0x1C200E08, // 01D0 EQ R8 R7 R8 - 0x7822000B, // 01D1 JMPF R8 #01DE - 0x8C200506, // 01D2 GETMET R8 R2 K6 - 0x58280005, // 01D3 LDCONST R10 K5 - 0x7C200400, // 01D4 CALL R8 2 - 0x8C240348, // 01D5 GETMET R9 R1 K72 - 0x5C2C1000, // 01D6 MOVE R11 R8 - 0x7C240400, // 01D7 CALL R9 2 - 0xB8260200, // 01D8 GETNGBL R9 K1 - 0x8824132D, // 01D9 GETMBR R9 R9 K45 - 0x900E2C09, // 01DA SETMBR R3 K22 R9 - 0x4C240000, // 01DB LDNIL R9 - 0x80041200, // 01DC RET 1 R9 - 0x7002002C, // 01DD JMP #020B - 0x54220009, // 01DE LDINT R8 10 - 0x1C200E08, // 01DF EQ R8 R7 R8 - 0x78220029, // 01E0 JMPF R8 #020B - 0x8C200506, // 01E1 GETMET R8 R2 K6 - 0x58280005, // 01E2 LDCONST R10 K5 - 0x7C200400, // 01E3 CALL R8 2 - 0x88240114, // 01E4 GETMBR R9 R0 K20 - 0x88241349, // 01E5 GETMBR R9 R9 K73 - 0x8C24134A, // 01E6 GETMET R9 R9 K74 - 0x7C240200, // 01E7 CALL R9 1 - 0x28281107, // 01E8 GE R10 R8 K7 - 0x782A001B, // 01E9 JMPF R10 #0206 - 0x6028000C, // 01EA GETGBL R10 G12 - 0x5C2C1200, // 01EB MOVE R11 R9 - 0x7C280200, // 01EC CALL R10 1 - 0x1828100A, // 01ED LE R10 R8 R10 - 0x782A0016, // 01EE JMPF R10 #0206 - 0x04281107, // 01EF SUB R10 R8 K7 - 0x9428120A, // 01F0 GETIDX R10 R9 R10 - 0xB82E3C00, // 01F1 GETNGBL R11 K30 - 0x8C2C1723, // 01F2 GETMET R11 R11 K35 - 0x8C34034C, // 01F3 GETMET R13 R1 K76 - 0x7C340200, // 01F4 CALL R13 1 - 0x8C341B3D, // 01F5 GETMET R13 R13 K61 - 0x7C340200, // 01F6 CALL R13 1 - 0x8C341B3E, // 01F7 GETMET R13 R13 K62 - 0x7C340200, // 01F8 CALL R13 1 - 0x8C341B25, // 01F9 GETMET R13 R13 K37 - 0x7C340200, // 01FA CALL R13 1 - 0x0036960D, // 01FB ADD R13 K75 R13 - 0x7C2C0400, // 01FC CALL R11 2 - 0x882C0114, // 01FD GETMBR R11 R0 K20 - 0x882C1749, // 01FE GETMBR R11 R11 K73 - 0x8C2C174D, // 01FF GETMET R11 R11 K77 - 0x7C2C0200, // 0200 CALL R11 1 - 0x882C0114, // 0201 GETMBR R11 R0 K20 - 0x882C1749, // 0202 GETMBR R11 R11 K73 - 0x8C2C174E, // 0203 GETMET R11 R11 K78 - 0x7C2C0200, // 0204 CALL R11 1 - 0x7001FFFF, // 0205 JMP #0206 - 0xB82A0200, // 0206 GETNGBL R10 K1 - 0x8828152D, // 0207 GETMBR R10 R10 K45 - 0x900E2C0A, // 0208 SETMBR R3 K22 R10 - 0x4C280000, // 0209 LDNIL R10 - 0x80041400, // 020A RET 1 R10 - 0x70020006, // 020B JMP #0213 - 0x54220029, // 020C LDINT R8 42 - 0x1C200C08, // 020D EQ R8 R6 R8 - 0x78220003, // 020E JMPF R8 #0213 - 0x1C200F05, // 020F EQ R8 R7 K5 - 0x78220001, // 0210 JMPF R8 #0213 - 0x50200200, // 0211 LDBOOL R8 1 0 - 0x80041000, // 0212 RET 1 R8 - 0x80000000, // 0213 RET 0 + 0x1C442336, // 017C EQ R17 R17 K54 + 0x78460007, // 017D JMPF R17 #0186 + 0xB8466E00, // 017E GETNGBL R17 K55 + 0x8C442338, // 017F GETMET R17 R17 K56 + 0x5C4C2000, // 0180 MOVE R19 R16 + 0x7C440400, // 0181 CALL R17 2 + 0x8C442339, // 0182 GETMET R17 R17 K57 + 0x7C440200, // 0183 CALL R17 1 + 0x5C402200, // 0184 MOVE R16 R17 + 0x70020002, // 0185 JMP #0189 + 0x8C442139, // 0186 GETMET R17 R16 K57 + 0x7C440200, // 0187 CALL R17 1 + 0x5C402200, // 0188 MOVE R16 R17 + 0xB8460200, // 0189 GETNGBL R17 K1 + 0x88442302, // 018A GETMBR R17 R17 K2 + 0x8C442333, // 018B GETMET R17 R17 K51 + 0x8C4C032E, // 018C GETMET R19 R1 K46 + 0x7C4C0200, // 018D CALL R19 1 + 0x7C440400, // 018E CALL R17 2 + 0x8C442306, // 018F GETMET R17 R17 K6 + 0x544E0008, // 0190 LDINT R19 9 + 0x7C440400, // 0191 CALL R17 2 + 0x404A0F3A, // 0192 CONNECT R18 K7 K58 + 0x94442212, // 0193 GETIDX R17 R17 R18 + 0x604C0015, // 0194 GETGBL R19 G21 + 0x7C4C0000, // 0195 CALL R19 0 + 0x8C4C273B, // 0196 GETMET R19 R19 K59 + 0x5854003C, // 0197 LDCONST R21 K60 + 0x7C4C0400, // 0198 CALL R19 2 + 0x5C482600, // 0199 MOVE R18 R19 + 0x8C4C093D, // 019A GETMET R19 R4 K61 + 0x7C4C0200, // 019B CALL R19 1 + 0x8C501F3E, // 019C GETMET R20 R15 K62 + 0x7C500200, // 019D CALL R20 1 + 0x8C50293F, // 019E GETMET R20 R20 K63 + 0x7C500200, // 019F CALL R20 1 + 0x8C542740, // 01A0 GETMET R21 R19 K64 + 0x5C5C2200, // 01A1 MOVE R23 R17 + 0x5C602800, // 01A2 MOVE R24 R20 + 0x5C642400, // 01A3 MOVE R25 R18 + 0x546A0007, // 01A4 LDINT R26 8 + 0x7C540A00, // 01A5 CALL R21 5 + 0x8C580341, // 01A6 GETMET R22 R1 K65 + 0x5C601E00, // 01A7 MOVE R24 R15 + 0x5C642000, // 01A8 MOVE R25 R16 + 0x5C682A00, // 01A9 MOVE R26 R21 + 0x7C580800, // 01AA CALL R22 4 + 0x8C580342, // 01AB GETMET R22 R1 K66 + 0x7C580200, // 01AC CALL R22 1 + 0x8C580343, // 01AD GETMET R22 R1 K67 + 0x7C580200, // 01AE CALL R22 1 + 0x88580114, // 01AF GETMBR R22 R0 K20 + 0x8C582D44, // 01B0 GETMET R22 R22 K68 + 0x5C600200, // 01B1 MOVE R24 R1 + 0x7C580400, // 01B2 CALL R22 2 + 0xB85A3C00, // 01B3 GETNGBL R22 K30 + 0x8C582D23, // 01B4 GETMET R22 R22 K35 + 0x58600045, // 01B5 LDCONST R24 K69 + 0x58640010, // 01B6 LDCONST R25 K16 + 0x7C580600, // 01B7 CALL R22 3 + 0xB85A3C00, // 01B8 GETNGBL R22 K30 + 0x8C582D23, // 01B9 GETMET R22 R22 K35 + 0xB8620200, // 01BA GETNGBL R24 K1 + 0x8C603147, // 01BB GETMET R24 R24 K71 + 0x88680348, // 01BC GETMBR R26 R1 K72 + 0x7C600400, // 01BD CALL R24 2 + 0x00628C18, // 01BE ADD R24 K70 R24 + 0x58640010, // 01BF LDCONST R25 K16 + 0x7C580600, // 01C0 CALL R22 3 + 0xB85A3C00, // 01C1 GETNGBL R22 K30 + 0x8C582D23, // 01C2 GETMET R22 R22 K35 + 0x58600045, // 01C3 LDCONST R24 K69 + 0x58640010, // 01C4 LDCONST R25 K16 + 0x7C580600, // 01C5 CALL R22 3 + 0x8C580B09, // 01C6 GETMET R22 R5 K9 + 0x7C580200, // 01C7 CALL R22 1 + 0x8C5C2D0A, // 01C8 GETMET R23 R22 K10 + 0x58640005, // 01C9 LDCONST R25 K5 + 0x88680B0B, // 01CA GETMBR R26 R5 K11 + 0xB86E0200, // 01CB GETNGBL R27 K1 + 0x886C372D, // 01CC GETMBR R27 R27 K45 + 0x7C5C0800, // 01CD CALL R23 4 + 0x8C5C2D0A, // 01CE GETMET R23 R22 K10 + 0x58640007, // 01CF LDCONST R25 K7 + 0x88680B0B, // 01D0 GETMBR R26 R5 K11 + 0x586C0007, // 01D1 LDCONST R27 K7 + 0x7C5C0800, // 01D2 CALL R23 4 + 0x545E0007, // 01D3 LDINT R23 8 + 0x900E0817, // 01D4 SETMBR R3 K4 R23 + 0x80042C00, // 01D5 RET 1 R22 + 0x7002003B, // 01D6 JMP #0213 + 0x54220008, // 01D7 LDINT R8 9 + 0x1C200E08, // 01D8 EQ R8 R7 R8 + 0x7822000B, // 01D9 JMPF R8 #01E6 + 0x8C200506, // 01DA GETMET R8 R2 K6 + 0x58280005, // 01DB LDCONST R10 K5 + 0x7C200400, // 01DC CALL R8 2 + 0x8C240349, // 01DD GETMET R9 R1 K73 + 0x5C2C1000, // 01DE MOVE R11 R8 + 0x7C240400, // 01DF CALL R9 2 + 0xB8260200, // 01E0 GETNGBL R9 K1 + 0x8824132D, // 01E1 GETMBR R9 R9 K45 + 0x900E2C09, // 01E2 SETMBR R3 K22 R9 + 0x4C240000, // 01E3 LDNIL R9 + 0x80041200, // 01E4 RET 1 R9 + 0x7002002C, // 01E5 JMP #0213 + 0x54220009, // 01E6 LDINT R8 10 + 0x1C200E08, // 01E7 EQ R8 R7 R8 + 0x78220029, // 01E8 JMPF R8 #0213 + 0x8C200506, // 01E9 GETMET R8 R2 K6 + 0x58280005, // 01EA LDCONST R10 K5 + 0x7C200400, // 01EB CALL R8 2 + 0x88240114, // 01EC GETMBR R9 R0 K20 + 0x8824134A, // 01ED GETMBR R9 R9 K74 + 0x8C24134B, // 01EE GETMET R9 R9 K75 + 0x7C240200, // 01EF CALL R9 1 + 0x28281107, // 01F0 GE R10 R8 K7 + 0x782A001B, // 01F1 JMPF R10 #020E + 0x6028000C, // 01F2 GETGBL R10 G12 + 0x5C2C1200, // 01F3 MOVE R11 R9 + 0x7C280200, // 01F4 CALL R10 1 + 0x1828100A, // 01F5 LE R10 R8 R10 + 0x782A0016, // 01F6 JMPF R10 #020E + 0x04281107, // 01F7 SUB R10 R8 K7 + 0x9428120A, // 01F8 GETIDX R10 R9 R10 + 0xB82E3C00, // 01F9 GETNGBL R11 K30 + 0x8C2C1723, // 01FA GETMET R11 R11 K35 + 0x8C34034D, // 01FB GETMET R13 R1 K77 + 0x7C340200, // 01FC CALL R13 1 + 0x8C341B3E, // 01FD GETMET R13 R13 K62 + 0x7C340200, // 01FE CALL R13 1 + 0x8C341B3F, // 01FF GETMET R13 R13 K63 + 0x7C340200, // 0200 CALL R13 1 + 0x8C341B25, // 0201 GETMET R13 R13 K37 + 0x7C340200, // 0202 CALL R13 1 + 0x0036980D, // 0203 ADD R13 K76 R13 + 0x7C2C0400, // 0204 CALL R11 2 + 0x882C0114, // 0205 GETMBR R11 R0 K20 + 0x882C174A, // 0206 GETMBR R11 R11 K74 + 0x8C2C174E, // 0207 GETMET R11 R11 K78 + 0x7C2C0200, // 0208 CALL R11 1 + 0x882C0114, // 0209 GETMBR R11 R0 K20 + 0x882C174A, // 020A GETMBR R11 R11 K74 + 0x8C2C174F, // 020B GETMET R11 R11 K79 + 0x7C2C0200, // 020C CALL R11 1 + 0x7001FFFF, // 020D JMP #020E + 0xB82A0200, // 020E GETNGBL R10 K1 + 0x8828152D, // 020F GETMBR R10 R10 K45 + 0x900E2C0A, // 0210 SETMBR R3 K22 R10 + 0x4C280000, // 0211 LDNIL R10 + 0x80041400, // 0212 RET 1 R10 + 0x70020006, // 0213 JMP #021B + 0x54220029, // 0214 LDINT R8 42 + 0x1C200C08, // 0215 EQ R8 R6 R8 + 0x78220003, // 0216 JMPF R8 #021B + 0x1C200F05, // 0217 EQ R8 R7 K5 + 0x78220001, // 0218 JMPF R8 #021B + 0x50200200, // 0219 LDBOOL R8 1 0 + 0x80041000, // 021A RET 1 R8 + 0x80000000, // 021B RET 0 }) ) ); diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h index 83206ce5e..3368c3f89 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h @@ -6,33 +6,6 @@ extern const bclass be_class_Matter_Fabric; -/******************************************************************** -** Solidified function: get_admin_subject -********************************************************************/ -be_local_closure(Matter_Fabric_get_admin_subject, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(admin_subject), - }), - be_str_weak(get_admin_subject), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: tojson ********************************************************************/ @@ -201,65 +174,9 @@ be_local_closure(Matter_Fabric_tojson, /* name */ /******************************************************************** -** Solidified function: get_ipk_group_key +** Solidified function: get_fabric_compressed ********************************************************************/ -be_local_closure(Matter_Fabric_get_ipk_group_key, /* name */ - be_nested_proto( - 10, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str_weak(ipk_epoch_key), - /* K1 */ be_nested_str_weak(fabric_compressed), - /* K2 */ be_nested_str_weak(crypto), - /* K3 */ be_nested_str_weak(HKDF_SHA256), - /* K4 */ be_nested_str_weak(fromstring), - /* K5 */ be_nested_str_weak(_GROUP_KEY), - /* K6 */ be_nested_str_weak(derive), - }), - be_str_weak(get_ipk_group_key), - &be_const_str_solidified, - ( &(const binstruction[25]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x4C080000, // 0001 LDNIL R2 - 0x1C040202, // 0002 EQ R1 R1 R2 - 0x74060003, // 0003 JMPT R1 #0008 - 0x88040101, // 0004 GETMBR R1 R0 K1 - 0x4C080000, // 0005 LDNIL R2 - 0x1C040202, // 0006 EQ R1 R1 R2 - 0x78060001, // 0007 JMPF R1 #000A - 0x4C040000, // 0008 LDNIL R1 - 0x80040200, // 0009 RET 1 R1 - 0xA4060400, // 000A IMPORT R1 K2 - 0x8C080303, // 000B GETMET R2 R1 K3 - 0x7C080200, // 000C CALL R2 1 - 0x600C0015, // 000D GETGBL R3 G21 - 0x7C0C0000, // 000E CALL R3 0 - 0x8C0C0704, // 000F GETMET R3 R3 K4 - 0x88140105, // 0010 GETMBR R5 R0 K5 - 0x7C0C0400, // 0011 CALL R3 2 - 0x8C100506, // 0012 GETMET R4 R2 K6 - 0x88180100, // 0013 GETMBR R6 R0 K0 - 0x881C0101, // 0014 GETMBR R7 R0 K1 - 0x5C200600, // 0015 MOVE R8 R3 - 0x5426000F, // 0016 LDINT R9 16 - 0x7C100A00, // 0017 CALL R4 5 - 0x80040800, // 0018 RET 1 R4 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_icac -********************************************************************/ -be_local_closure(Matter_Fabric_get_icac, /* name */ +be_local_closure(Matter_Fabric_get_fabric_compressed, /* name */ be_nested_proto( 2, /* nstack */ 1, /* argc */ @@ -270,9 +187,9 @@ be_local_closure(Matter_Fabric_get_icac, /* name */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(icac), + /* K0 */ be_nested_str_weak(fabric_compressed), }), - be_str_weak(get_icac), + be_str_weak(get_fabric_compressed), &be_const_str_solidified, ( &(const binstruction[ 2]) { /* code */ 0x88040100, // 0000 GETMBR R1 R0 K0 @@ -331,341 +248,6 @@ be_local_closure(Matter_Fabric_init, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: get_old_recent_session -********************************************************************/ -be_local_closure(Matter_Fabric_get_old_recent_session, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(_sessions), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(last_used), - /* K3 */ be_const_int(1), - }), - be_str_weak(get_old_recent_session), - &be_const_str_solidified, - ( &(const binstruction[30]) { /* code */ - 0x6008000C, // 0000 GETGBL R2 G12 - 0x880C0100, // 0001 GETMBR R3 R0 K0 - 0x7C080200, // 0002 CALL R2 1 - 0x1C080501, // 0003 EQ R2 R2 K1 - 0x780A0001, // 0004 JMPF R2 #0007 - 0x4C080000, // 0005 LDNIL R2 - 0x80040400, // 0006 RET 1 R2 - 0x88080100, // 0007 GETMBR R2 R0 K0 - 0x94080501, // 0008 GETIDX R2 R2 K1 - 0x880C0502, // 0009 GETMBR R3 R2 K2 - 0x58100003, // 000A LDCONST R4 K3 - 0x6014000C, // 000B GETGBL R5 G12 - 0x88180100, // 000C GETMBR R6 R0 K0 - 0x7C140200, // 000D CALL R5 1 - 0x14140805, // 000E LT R5 R4 R5 - 0x7816000C, // 000F JMPF R5 #001D - 0x88140100, // 0010 GETMBR R5 R0 K0 - 0x94140A04, // 0011 GETIDX R5 R5 R4 - 0x88140B02, // 0012 GETMBR R5 R5 K2 - 0x78060001, // 0013 JMPF R1 #0016 - 0x14180A03, // 0014 LT R6 R5 R3 - 0x70020000, // 0015 JMP #0017 - 0x24180A03, // 0016 GT R6 R5 R3 - 0x781A0002, // 0017 JMPF R6 #001B - 0x88180100, // 0018 GETMBR R6 R0 K0 - 0x94080C04, // 0019 GETIDX R2 R6 R4 - 0x5C0C0A00, // 001A MOVE R3 R5 - 0x00100903, // 001B ADD R4 R4 K3 - 0x7001FFED, // 001C JMP #000B - 0x80040400, // 001D RET 1 R2 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_noc -********************************************************************/ -be_local_closure(Matter_Fabric_get_noc, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(noc), - }), - be_str_weak(get_noc), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_newest_session -********************************************************************/ -be_local_closure(Matter_Fabric_get_newest_session, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(get_old_recent_session), - }), - be_str_weak(get_newest_session), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x500C0000, // 0001 LDBOOL R3 0 0 - 0x7C040400, // 0002 CALL R1 2 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_fabric_id -********************************************************************/ -be_local_closure(Matter_Fabric_get_fabric_id, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(fabric_id), - }), - be_str_weak(get_fabric_id), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_admin_vendor -********************************************************************/ -be_local_closure(Matter_Fabric_get_admin_vendor, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(admin_vendor), - }), - be_str_weak(get_admin_vendor), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_fabric_compressed -********************************************************************/ -be_local_closure(Matter_Fabric_get_fabric_compressed, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(fabric_compressed), - }), - be_str_weak(get_fabric_compressed), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_fabric_label -********************************************************************/ -be_local_closure(Matter_Fabric_get_fabric_label, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(fabric_label), - }), - be_str_weak(get_fabric_label), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_oldest_session -********************************************************************/ -be_local_closure(Matter_Fabric_get_oldest_session, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(get_old_recent_session), - }), - be_str_weak(get_oldest_session), - &be_const_str_solidified, - ( &(const binstruction[ 4]) { /* code */ - 0x8C040100, // 0000 GETMET R1 R0 K0 - 0x500C0200, // 0001 LDBOOL R3 1 0 - 0x7C040400, // 0002 CALL R1 2 - 0x80040200, // 0003 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add_session -********************************************************************/ -be_local_closure(Matter_Fabric_add_session, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(_sessions), - /* K1 */ be_nested_str_weak(find), - /* K2 */ be_nested_str_weak(_MAX_CASE), - /* K3 */ be_nested_str_weak(remove), - /* K4 */ be_nested_str_weak(get_oldest_session), - /* K5 */ be_nested_str_weak(push), - }), - be_str_weak(add_session), - &be_const_str_solidified, - ( &(const binstruction[27]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x8C080501, // 0001 GETMET R2 R2 K1 - 0x5C100200, // 0002 MOVE R4 R1 - 0x7C080400, // 0003 CALL R2 2 - 0x4C0C0000, // 0004 LDNIL R3 - 0x1C080403, // 0005 EQ R2 R2 R3 - 0x780A0012, // 0006 JMPF R2 #001A - 0x6008000C, // 0007 GETGBL R2 G12 - 0x880C0100, // 0008 GETMBR R3 R0 K0 - 0x7C080200, // 0009 CALL R2 1 - 0x880C0102, // 000A GETMBR R3 R0 K2 - 0x28080403, // 000B GE R2 R2 R3 - 0x780A0008, // 000C JMPF R2 #0016 - 0x88080100, // 000D GETMBR R2 R0 K0 - 0x8C080503, // 000E GETMET R2 R2 K3 - 0x88100100, // 000F GETMBR R4 R0 K0 - 0x8C100901, // 0010 GETMET R4 R4 K1 - 0x8C180104, // 0011 GETMET R6 R0 K4 - 0x7C180200, // 0012 CALL R6 1 - 0x7C100400, // 0013 CALL R4 2 - 0x7C080400, // 0014 CALL R2 2 - 0x7001FFF0, // 0015 JMP #0007 - 0x88080100, // 0016 GETMBR R2 R0 K0 - 0x8C080505, // 0017 GETMET R2 R2 K5 - 0x5C100200, // 0018 MOVE R4 R1 - 0x7C080400, // 0019 CALL R2 2 - 0x80000000, // 001A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_device_id -********************************************************************/ -be_local_closure(Matter_Fabric_get_device_id, /* name */ - be_nested_proto( - 2, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ - /* K0 */ be_nested_str_weak(device_id), - }), - be_str_weak(get_device_id), - &be_const_str_solidified, - ( &(const binstruction[ 2]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x80040200, // 0001 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: fromjson ********************************************************************/ @@ -781,6 +363,174 @@ be_local_closure(Matter_Fabric_fromjson, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: get_oldest_session +********************************************************************/ +be_local_closure(Matter_Fabric_get_oldest_session, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(get_old_recent_session), + }), + be_str_weak(get_oldest_session), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x500C0200, // 0001 LDBOOL R3 1 0 + 0x7C040400, // 0002 CALL R1 2 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_ipk_group_key +********************************************************************/ +be_local_closure(Matter_Fabric_get_ipk_group_key, /* name */ + be_nested_proto( + 10, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 7]) { /* constants */ + /* K0 */ be_nested_str_weak(ipk_epoch_key), + /* K1 */ be_nested_str_weak(fabric_compressed), + /* K2 */ be_nested_str_weak(crypto), + /* K3 */ be_nested_str_weak(HKDF_SHA256), + /* K4 */ be_nested_str_weak(fromstring), + /* K5 */ be_nested_str_weak(_GROUP_KEY), + /* K6 */ be_nested_str_weak(derive), + }), + be_str_weak(get_ipk_group_key), + &be_const_str_solidified, + ( &(const binstruction[25]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x4C080000, // 0001 LDNIL R2 + 0x1C040202, // 0002 EQ R1 R1 R2 + 0x74060003, // 0003 JMPT R1 #0008 + 0x88040101, // 0004 GETMBR R1 R0 K1 + 0x4C080000, // 0005 LDNIL R2 + 0x1C040202, // 0006 EQ R1 R1 R2 + 0x78060001, // 0007 JMPF R1 #000A + 0x4C040000, // 0008 LDNIL R1 + 0x80040200, // 0009 RET 1 R1 + 0xA4060400, // 000A IMPORT R1 K2 + 0x8C080303, // 000B GETMET R2 R1 K3 + 0x7C080200, // 000C CALL R2 1 + 0x600C0015, // 000D GETGBL R3 G21 + 0x7C0C0000, // 000E CALL R3 0 + 0x8C0C0704, // 000F GETMET R3 R3 K4 + 0x88140105, // 0010 GETMBR R5 R0 K5 + 0x7C0C0400, // 0011 CALL R3 2 + 0x8C100506, // 0012 GETMET R4 R2 K6 + 0x88180100, // 0013 GETMBR R6 R0 K0 + 0x881C0101, // 0014 GETMBR R7 R0 K1 + 0x5C200600, // 0015 MOVE R8 R3 + 0x5426000F, // 0016 LDINT R9 16 + 0x7C100A00, // 0017 CALL R4 5 + 0x80040800, // 0018 RET 1 R4 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_noc +********************************************************************/ +be_local_closure(Matter_Fabric_get_noc, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(noc), + }), + be_str_weak(get_noc), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_icac +********************************************************************/ +be_local_closure(Matter_Fabric_get_icac, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(icac), + }), + be_str_weak(get_icac), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_newest_session +********************************************************************/ +be_local_closure(Matter_Fabric_get_newest_session, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(get_old_recent_session), + }), + be_str_weak(get_newest_session), + &be_const_str_solidified, + ( &(const binstruction[ 4]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x500C0000, // 0001 LDBOOL R3 0 0 + 0x7C040400, // 0002 CALL R1 2 + 0x80040200, // 0003 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: get_ca_pub ********************************************************************/ @@ -822,6 +572,91 @@ be_local_closure(Matter_Fabric_get_ca_pub, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: get_admin_vendor +********************************************************************/ +be_local_closure(Matter_Fabric_get_admin_vendor, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(admin_vendor), + }), + be_str_weak(get_admin_vendor), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_old_recent_session +********************************************************************/ +be_local_closure(Matter_Fabric_get_old_recent_session, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(_sessions), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(last_used), + /* K3 */ be_const_int(1), + }), + be_str_weak(get_old_recent_session), + &be_const_str_solidified, + ( &(const binstruction[30]) { /* code */ + 0x6008000C, // 0000 GETGBL R2 G12 + 0x880C0100, // 0001 GETMBR R3 R0 K0 + 0x7C080200, // 0002 CALL R2 1 + 0x1C080501, // 0003 EQ R2 R2 K1 + 0x780A0001, // 0004 JMPF R2 #0007 + 0x4C080000, // 0005 LDNIL R2 + 0x80040400, // 0006 RET 1 R2 + 0x88080100, // 0007 GETMBR R2 R0 K0 + 0x94080501, // 0008 GETIDX R2 R2 K1 + 0x880C0502, // 0009 GETMBR R3 R2 K2 + 0x58100003, // 000A LDCONST R4 K3 + 0x6014000C, // 000B GETGBL R5 G12 + 0x88180100, // 000C GETMBR R6 R0 K0 + 0x7C140200, // 000D CALL R5 1 + 0x14140805, // 000E LT R5 R4 R5 + 0x7816000C, // 000F JMPF R5 #001D + 0x88140100, // 0010 GETMBR R5 R0 K0 + 0x94140A04, // 0011 GETIDX R5 R5 R4 + 0x88140B02, // 0012 GETMBR R5 R5 K2 + 0x78060001, // 0013 JMPF R1 #0016 + 0x14180A03, // 0014 LT R6 R5 R3 + 0x70020000, // 0015 JMP #0017 + 0x24180A03, // 0016 GT R6 R5 R3 + 0x781A0002, // 0017 JMPF R6 #001B + 0x88180100, // 0018 GETMBR R6 R0 K0 + 0x94080C04, // 0019 GETIDX R2 R6 R4 + 0x5C0C0A00, // 001A MOVE R3 R5 + 0x00100903, // 001B ADD R4 R4 K3 + 0x7001FFED, // 001C JMP #000B + 0x80040400, // 001D RET 1 R2 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified function: get_ipk_epoch_key ********************************************************************/ @@ -849,6 +684,198 @@ be_local_closure(Matter_Fabric_get_ipk_epoch_key, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: get_device_id +********************************************************************/ +be_local_closure(Matter_Fabric_get_device_id, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(device_id), + }), + be_str_weak(get_device_id), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_fabric_id +********************************************************************/ +be_local_closure(Matter_Fabric_get_fabric_id, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(fabric_id), + }), + be_str_weak(get_fabric_id), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_admin_subject +********************************************************************/ +be_local_closure(Matter_Fabric_get_admin_subject, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(admin_subject), + }), + be_str_weak(get_admin_subject), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: add_session +********************************************************************/ +be_local_closure(Matter_Fabric_add_session, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(_sessions), + /* K1 */ be_nested_str_weak(find), + /* K2 */ be_nested_str_weak(_MAX_CASE), + /* K3 */ be_nested_str_weak(remove), + /* K4 */ be_nested_str_weak(get_oldest_session), + /* K5 */ be_nested_str_weak(push), + }), + be_str_weak(add_session), + &be_const_str_solidified, + ( &(const binstruction[27]) { /* code */ + 0x88080100, // 0000 GETMBR R2 R0 K0 + 0x8C080501, // 0001 GETMET R2 R2 K1 + 0x5C100200, // 0002 MOVE R4 R1 + 0x7C080400, // 0003 CALL R2 2 + 0x4C0C0000, // 0004 LDNIL R3 + 0x1C080403, // 0005 EQ R2 R2 R3 + 0x780A0012, // 0006 JMPF R2 #001A + 0x6008000C, // 0007 GETGBL R2 G12 + 0x880C0100, // 0008 GETMBR R3 R0 K0 + 0x7C080200, // 0009 CALL R2 1 + 0x880C0102, // 000A GETMBR R3 R0 K2 + 0x28080403, // 000B GE R2 R2 R3 + 0x780A0008, // 000C JMPF R2 #0016 + 0x88080100, // 000D GETMBR R2 R0 K0 + 0x8C080503, // 000E GETMET R2 R2 K3 + 0x88100100, // 000F GETMBR R4 R0 K0 + 0x8C100901, // 0010 GETMET R4 R4 K1 + 0x8C180104, // 0011 GETMET R6 R0 K4 + 0x7C180200, // 0012 CALL R6 1 + 0x7C100400, // 0013 CALL R4 2 + 0x7C080400, // 0014 CALL R2 2 + 0x7001FFF0, // 0015 JMP #0007 + 0x88080100, // 0016 GETMBR R2 R0 K0 + 0x8C080505, // 0017 GETMET R2 R2 K5 + 0x5C100200, // 0018 MOVE R4 R1 + 0x7C080400, // 0019 CALL R2 2 + 0x80000000, // 001A RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_fabric_label +********************************************************************/ +be_local_closure(Matter_Fabric_get_fabric_label, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(fabric_label), + }), + be_str_weak(get_fabric_label), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_ca +********************************************************************/ +be_local_closure(Matter_Fabric_get_ca, /* name */ + be_nested_proto( + 2, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(root_ca_certificate), + }), + be_str_weak(get_ca), + &be_const_str_solidified, + ( &(const binstruction[ 2]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x80040200, // 0001 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified class: Matter_Fabric ********************************************************************/ @@ -856,42 +883,43 @@ extern const bclass be_class_Matter_Expirable; be_local_class(Matter_Fabric, 14, &be_class_Matter_Expirable, - be_nested_map(34, + be_nested_map(35, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(get_admin_subject, 33), be_const_closure(Matter_Fabric_get_admin_subject_closure) }, - { be_const_key_weak(get_ipk_epoch_key, 21), be_const_closure(Matter_Fabric_get_ipk_epoch_key_closure) }, - { be_const_key_weak(fabric_id, -1), be_const_var(8) }, - { be_const_key_weak(ipk_epoch_key, -1), be_const_var(7) }, - { be_const_key_weak(get_noc, -1), be_const_closure(Matter_Fabric_get_noc_closure) }, - { be_const_key_weak(admin_subject, -1), be_const_var(12) }, - { be_const_key_weak(root_ca_certificate, -1), be_const_var(4) }, - { be_const_key_weak(_sessions, 29), be_const_var(2) }, - { be_const_key_weak(get_old_recent_session, -1), be_const_closure(Matter_Fabric_get_old_recent_session_closure) }, - { be_const_key_weak(icac, 30), be_const_var(6) }, - { be_const_key_weak(get_ipk_group_key, 4), be_const_closure(Matter_Fabric_get_ipk_group_key_closure) }, - { be_const_key_weak(created, -1), be_const_var(1) }, - { be_const_key_weak(_store, 24), be_const_var(0) }, - { be_const_key_weak(get_newest_session, -1), be_const_closure(Matter_Fabric_get_newest_session_closure) }, - { be_const_key_weak(_MAX_CASE, -1), be_const_int(5) }, - { be_const_key_weak(init, 7), be_const_closure(Matter_Fabric_init_closure) }, - { be_const_key_weak(get_admin_vendor, 25), be_const_closure(Matter_Fabric_get_admin_vendor_closure) }, + { be_const_key_weak(no_private_key, -1), be_const_var(3) }, + { be_const_key_weak(tojson, 11), be_const_closure(Matter_Fabric_tojson_closure) }, { be_const_key_weak(fabric_label, -1), be_const_var(11) }, - { be_const_key_weak(get_icac, 1), be_const_closure(Matter_Fabric_get_icac_closure) }, - { be_const_key_weak(get_fabric_compressed, 12), be_const_closure(Matter_Fabric_get_fabric_compressed_closure) }, + { be_const_key_weak(get_fabric_compressed, 33), be_const_closure(Matter_Fabric_get_fabric_compressed_closure) }, + { be_const_key_weak(_sessions, -1), be_const_var(2) }, + { be_const_key_weak(init, -1), be_const_closure(Matter_Fabric_init_closure) }, { be_const_key_weak(fromjson, -1), be_const_static_closure(Matter_Fabric_fromjson_closure) }, - { be_const_key_weak(get_device_id, 28), be_const_closure(Matter_Fabric_get_device_id_closure) }, - { be_const_key_weak(no_private_key, 26), be_const_var(3) }, - { be_const_key_weak(device_id, -1), be_const_var(10) }, + { be_const_key_weak(get_ca, -1), be_const_closure(Matter_Fabric_get_ca_closure) }, + { be_const_key_weak(get_ipk_group_key, -1), be_const_closure(Matter_Fabric_get_ipk_group_key_closure) }, + { be_const_key_weak(_store, 29), be_const_var(0) }, + { be_const_key_weak(_GROUP_KEY, -1), be_nested_str_weak(GroupKey_X20v1_X2E0) }, + { be_const_key_weak(icac, 32), be_const_var(6) }, + { be_const_key_weak(ipk_epoch_key, 34), be_const_var(7) }, + { be_const_key_weak(get_newest_session, -1), be_const_closure(Matter_Fabric_get_newest_session_closure) }, + { be_const_key_weak(get_fabric_label, 30), be_const_closure(Matter_Fabric_get_fabric_label_closure) }, { be_const_key_weak(add_session, -1), be_const_closure(Matter_Fabric_add_session_closure) }, - { be_const_key_weak(get_oldest_session, -1), be_const_closure(Matter_Fabric_get_oldest_session_closure) }, - { be_const_key_weak(get_fabric_label, -1), be_const_closure(Matter_Fabric_get_fabric_label_closure) }, - { be_const_key_weak(admin_vendor, 20), be_const_var(13) }, - { be_const_key_weak(fabric_compressed, -1), be_const_var(9) }, + { be_const_key_weak(admin_subject, 7), be_const_var(12) }, + { be_const_key_weak(get_device_id, -1), be_const_closure(Matter_Fabric_get_device_id_closure) }, + { be_const_key_weak(get_oldest_session, 12), be_const_closure(Matter_Fabric_get_oldest_session_closure) }, + { be_const_key_weak(get_ca_pub, 14), be_const_closure(Matter_Fabric_get_ca_pub_closure) }, { be_const_key_weak(get_fabric_id, -1), be_const_closure(Matter_Fabric_get_fabric_id_closure) }, - { be_const_key_weak(noc, 14), be_const_var(5) }, - { be_const_key_weak(_GROUP_KEY, 5), be_nested_str_weak(GroupKey_X20v1_X2E0) }, - { be_const_key_weak(get_ca_pub, -1), be_const_closure(Matter_Fabric_get_ca_pub_closure) }, - { be_const_key_weak(tojson, -1), be_const_closure(Matter_Fabric_tojson_closure) }, + { be_const_key_weak(get_admin_vendor, -1), be_const_closure(Matter_Fabric_get_admin_vendor_closure) }, + { be_const_key_weak(fabric_id, 15), be_const_var(8) }, + { be_const_key_weak(_MAX_CASE, 9), be_const_int(5) }, + { be_const_key_weak(get_ipk_epoch_key, -1), be_const_closure(Matter_Fabric_get_ipk_epoch_key_closure) }, + { be_const_key_weak(fabric_compressed, -1), be_const_var(9) }, + { be_const_key_weak(get_noc, 17), be_const_closure(Matter_Fabric_get_noc_closure) }, + { be_const_key_weak(root_ca_certificate, 20), be_const_var(4) }, + { be_const_key_weak(get_admin_subject, -1), be_const_closure(Matter_Fabric_get_admin_subject_closure) }, + { be_const_key_weak(get_old_recent_session, -1), be_const_closure(Matter_Fabric_get_old_recent_session_closure) }, + { be_const_key_weak(created, -1), be_const_var(1) }, + { be_const_key_weak(admin_vendor, -1), be_const_var(13) }, + { be_const_key_weak(noc, -1), be_const_var(5) }, + { be_const_key_weak(get_icac, -1), be_const_closure(Matter_Fabric_get_icac_closure) }, + { be_const_key_weak(device_id, -1), be_const_var(10) }, })), be_str_weak(Matter_Fabric) ); @@ -2741,9 +2769,9 @@ void be_load_Matter_Session_class(bvm *vm) { extern const bclass be_class_Matter_Session_Store; /******************************************************************** -** Solidified function: remove_expired +** Solidified function: count_active_fabrics ********************************************************************/ -be_local_closure(Matter_Session_Store_remove_expired, /* name */ +be_local_closure(Matter_Session_Store_count_active_fabrics, /* name */ be_nested_proto( 3, /* nstack */ 1, /* argc */ @@ -2754,274 +2782,19 @@ be_local_closure(Matter_Session_Store_remove_expired, /* name */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(sessions), - /* K1 */ be_nested_str_weak(every_second), - /* K2 */ be_nested_str_weak(fabrics), - }), - be_str_weak(remove_expired), - &be_const_str_solidified, - ( &(const binstruction[ 7]) { /* code */ - 0x88040100, // 0000 GETMBR R1 R0 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x7C040200, // 0002 CALL R1 1 - 0x88040102, // 0003 GETMBR R1 R0 K2 - 0x8C040301, // 0004 GETMET R1 R1 K1 - 0x7C040200, // 0005 CALL R1 1 - 0x80000000, // 0006 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add_session -********************************************************************/ -be_local_closure(Matter_Session_Store_add_session, /* name */ - be_nested_proto( - 6, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(set_expire_in_seconds), - /* K1 */ be_nested_str_weak(sessions), - /* K2 */ be_nested_str_weak(push), - }), - be_str_weak(add_session), - &be_const_str_solidified, - ( &(const binstruction[11]) { /* code */ - 0x4C0C0000, // 0000 LDNIL R3 - 0x200C0403, // 0001 NE R3 R2 R3 - 0x780E0002, // 0002 JMPF R3 #0006 - 0x8C0C0300, // 0003 GETMET R3 R1 K0 - 0x5C140400, // 0004 MOVE R5 R2 - 0x7C0C0400, // 0005 CALL R3 2 - 0x880C0101, // 0006 GETMBR R3 R0 K1 - 0x8C0C0702, // 0007 GETMET R3 R3 K2 - 0x5C140200, // 0008 MOVE R5 R1 - 0x7C0C0400, // 0009 CALL R3 2 - 0x80000000, // 000A RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_session_by_local_session_id -********************************************************************/ -be_local_closure(Matter_Session_Store_get_session_by_local_session_id, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(sessions), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(local_session_id), - /* K3 */ be_nested_str_weak(update), - /* K4 */ be_const_int(1), - }), - be_str_weak(get_session_by_local_session_id), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x1C080202, // 0001 EQ R2 R1 R2 - 0x780A0001, // 0002 JMPF R2 #0005 - 0x4C080000, // 0003 LDNIL R2 - 0x80040400, // 0004 RET 1 R2 - 0x6008000C, // 0005 GETGBL R2 G12 - 0x880C0100, // 0006 GETMBR R3 R0 K0 - 0x7C080200, // 0007 CALL R2 1 - 0x580C0001, // 0008 LDCONST R3 K1 - 0x88100100, // 0009 GETMBR R4 R0 K0 - 0x14140602, // 000A LT R5 R3 R2 - 0x78160008, // 000B JMPF R5 #0015 - 0x94140803, // 000C GETIDX R5 R4 R3 - 0x88180B02, // 000D GETMBR R6 R5 K2 - 0x1C180C01, // 000E EQ R6 R6 R1 - 0x781A0002, // 000F JMPF R6 #0013 - 0x8C180B03, // 0010 GETMET R6 R5 K3 - 0x7C180200, // 0011 CALL R6 1 - 0x80040A00, // 0012 RET 1 R5 - 0x000C0704, // 0013 ADD R3 R3 K4 - 0x7001FFF4, // 0014 JMP #000A - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: every_second -********************************************************************/ -be_local_closure(Matter_Session_Store_every_second, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 1]) { /* constants */ /* K0 */ be_nested_str_weak(remove_expired), + /* K1 */ be_nested_str_weak(fabrics), + /* K2 */ be_nested_str_weak(count_persistables), }), - be_str_weak(every_second), + be_str_weak(count_active_fabrics), &be_const_str_solidified, - ( &(const binstruction[ 3]) { /* code */ + ( &(const binstruction[ 6]) { /* code */ 0x8C040100, // 0000 GETMET R1 R0 K0 0x7C040200, // 0001 CALL R1 1 - 0x80000000, // 0002 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: create_fabric -********************************************************************/ -be_local_closure(Matter_Session_Store_create_fabric, /* name */ - be_nested_proto( - 4, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 2]) { /* constants */ - /* K0 */ be_nested_str_weak(matter), - /* K1 */ be_nested_str_weak(Fabric), - }), - be_str_weak(create_fabric), - &be_const_str_solidified, - ( &(const binstruction[ 5]) { /* code */ - 0xB8060000, // 0000 GETNGBL R1 K0 - 0x8C040301, // 0001 GETMET R1 R1 K1 - 0x5C0C0000, // 0002 MOVE R3 R0 - 0x7C040400, // 0003 CALL R1 2 - 0x80040200, // 0004 RET 1 R1 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: find_session_by_resumption_id -********************************************************************/ -be_local_closure(Matter_Session_Store_find_session_by_resumption_id, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_const_int(0), - /* K1 */ be_nested_str_weak(sessions), - /* K2 */ be_nested_str_weak(resumption_id), - /* K3 */ be_nested_str_weak(shared_secret), - /* K4 */ be_nested_str_weak(update), - /* K5 */ be_const_int(1), - }), - be_str_weak(find_session_by_resumption_id), - &be_const_str_solidified, - ( &(const binstruction[25]) { /* code */ - 0x5C080200, // 0000 MOVE R2 R1 - 0x740A0001, // 0001 JMPT R2 #0004 - 0x4C080000, // 0002 LDNIL R2 - 0x80040400, // 0003 RET 1 R2 - 0x58080000, // 0004 LDCONST R2 K0 - 0x880C0101, // 0005 GETMBR R3 R0 K1 - 0x6010000C, // 0006 GETGBL R4 G12 - 0x5C140600, // 0007 MOVE R5 R3 - 0x7C100200, // 0008 CALL R4 1 - 0x14100404, // 0009 LT R4 R2 R4 - 0x7812000C, // 000A JMPF R4 #0018 - 0x94100602, // 000B GETIDX R4 R3 R2 - 0x88140902, // 000C GETMBR R5 R4 K2 - 0x1C140A01, // 000D EQ R5 R5 R1 - 0x78160006, // 000E JMPF R5 #0016 - 0x88140903, // 000F GETMBR R5 R4 K3 - 0x4C180000, // 0010 LDNIL R6 - 0x20140A06, // 0011 NE R5 R5 R6 - 0x78160002, // 0012 JMPF R5 #0016 - 0x8C140904, // 0013 GETMET R5 R4 K4 - 0x7C140200, // 0014 CALL R5 1 - 0x80040800, // 0015 RET 1 R4 - 0x00080505, // 0016 ADD R2 R2 K5 - 0x7001FFED, // 0017 JMP #0006 - 0x80000000, // 0018 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: get_session_by_source_node_id -********************************************************************/ -be_local_closure(Matter_Session_Store_get_session_by_source_node_id, /* name */ - be_nested_proto( - 8, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 5]) { /* constants */ - /* K0 */ be_nested_str_weak(sessions), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str_weak(source_node_id), - /* K3 */ be_nested_str_weak(update), - /* K4 */ be_const_int(1), - }), - be_str_weak(get_session_by_source_node_id), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x4C080000, // 0000 LDNIL R2 - 0x1C080202, // 0001 EQ R2 R1 R2 - 0x780A0001, // 0002 JMPF R2 #0005 - 0x4C080000, // 0003 LDNIL R2 - 0x80040400, // 0004 RET 1 R2 - 0x6008000C, // 0005 GETGBL R2 G12 - 0x880C0100, // 0006 GETMBR R3 R0 K0 - 0x7C080200, // 0007 CALL R2 1 - 0x580C0001, // 0008 LDCONST R3 K1 - 0x88100100, // 0009 GETMBR R4 R0 K0 - 0x14140602, // 000A LT R5 R3 R2 - 0x78160008, // 000B JMPF R5 #0015 - 0x94140803, // 000C GETIDX R5 R4 R3 - 0x88180B02, // 000D GETMBR R6 R5 K2 - 0x1C180C01, // 000E EQ R6 R6 R1 - 0x781A0002, // 000F JMPF R6 #0013 - 0x8C180B03, // 0010 GETMET R6 R5 K3 - 0x7C180200, // 0011 CALL R6 1 - 0x80040A00, // 0012 RET 1 R5 - 0x000C0704, // 0013 ADD R3 R3 K4 - 0x7001FFF4, // 0014 JMP #000A - 0x80000000, // 0015 RET 0 + 0x88040101, // 0002 GETMBR R1 R0 K1 + 0x8C040302, // 0003 GETMET R1 R1 K2 + 0x7C040200, // 0004 CALL R1 1 + 0x80040200, // 0005 RET 1 R1 }) ) ); @@ -3073,338 +2846,6 @@ be_local_closure(Matter_Session_Store_remove_session, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: create_session -********************************************************************/ -be_local_closure(Matter_Session_Store_create_session, /* name */ - be_nested_proto( - 9, /* nstack */ - 3, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(get_session_by_local_session_id), - /* K1 */ be_nested_str_weak(remove_session), - /* K2 */ be_nested_str_weak(matter), - /* K3 */ be_nested_str_weak(Session), - /* K4 */ be_nested_str_weak(sessions), - /* K5 */ be_nested_str_weak(push), - }), - be_str_weak(create_session), - &be_const_str_solidified, - ( &(const binstruction[21]) { /* code */ - 0x8C0C0100, // 0000 GETMET R3 R0 K0 - 0x5C140200, // 0001 MOVE R5 R1 - 0x7C0C0400, // 0002 CALL R3 2 - 0x4C100000, // 0003 LDNIL R4 - 0x20100604, // 0004 NE R4 R3 R4 - 0x78120002, // 0005 JMPF R4 #0009 - 0x8C100101, // 0006 GETMET R4 R0 K1 - 0x5C180600, // 0007 MOVE R6 R3 - 0x7C100400, // 0008 CALL R4 2 - 0xB8120400, // 0009 GETNGBL R4 K2 - 0x8C100903, // 000A GETMET R4 R4 K3 - 0x5C180000, // 000B MOVE R6 R0 - 0x5C1C0200, // 000C MOVE R7 R1 - 0x5C200400, // 000D MOVE R8 R2 - 0x7C100800, // 000E CALL R4 4 - 0x5C0C0800, // 000F MOVE R3 R4 - 0x88100104, // 0010 GETMBR R4 R0 K4 - 0x8C100905, // 0011 GETMET R4 R4 K5 - 0x5C180600, // 0012 MOVE R6 R3 - 0x7C100400, // 0013 CALL R4 2 - 0x80040600, // 0014 RET 1 R3 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: init -********************************************************************/ -be_local_closure(Matter_Session_Store_init, /* name */ - be_nested_proto( - 3, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 4]) { /* constants */ - /* K0 */ be_nested_str_weak(sessions), - /* K1 */ be_nested_str_weak(matter), - /* K2 */ be_nested_str_weak(Expirable_list), - /* K3 */ be_nested_str_weak(fabrics), - }), - be_str_weak(init), - &be_const_str_solidified, - ( &(const binstruction[ 9]) { /* code */ - 0xB8060200, // 0000 GETNGBL R1 K1 - 0x8C040302, // 0001 GETMET R1 R1 K2 - 0x7C040200, // 0002 CALL R1 1 - 0x90020001, // 0003 SETMBR R0 K0 R1 - 0xB8060200, // 0004 GETNGBL R1 K1 - 0x8C040302, // 0005 GETMET R1 R1 K2 - 0x7C040200, // 0006 CALL R1 1 - 0x90020601, // 0007 SETMBR R0 K3 R1 - 0x80000000, // 0008 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: add_fabric -********************************************************************/ -be_local_closure(Matter_Session_Store_add_fabric, /* name */ - be_nested_proto( - 5, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 8]) { /* constants */ - /* K0 */ be_nested_str_weak(matter), - /* K1 */ be_nested_str_weak(Fabric), - /* K2 */ be_nested_str_weak(value_error), - /* K3 */ be_nested_str_weak(must_X20be_X20of_X20class_X20matter_X2EFabric), - /* K4 */ be_nested_str_weak(fabrics), - /* K5 */ be_nested_str_weak(find), - /* K6 */ be_nested_str_weak(remove_redundant_fabric), - /* K7 */ be_nested_str_weak(push), - }), - be_str_weak(add_fabric), - &be_const_str_solidified, - ( &(const binstruction[22]) { /* code */ - 0x6008000F, // 0000 GETGBL R2 G15 - 0x5C0C0200, // 0001 MOVE R3 R1 - 0xB8120000, // 0002 GETNGBL R4 K0 - 0x88100901, // 0003 GETMBR R4 R4 K1 - 0x7C080400, // 0004 CALL R2 2 - 0x740A0000, // 0005 JMPT R2 #0007 - 0xB0060503, // 0006 RAISE 1 K2 K3 - 0x88080104, // 0007 GETMBR R2 R0 K4 - 0x8C080505, // 0008 GETMET R2 R2 K5 - 0x5C100200, // 0009 MOVE R4 R1 - 0x7C080400, // 000A CALL R2 2 - 0x4C0C0000, // 000B LDNIL R3 - 0x1C080403, // 000C EQ R2 R2 R3 - 0x780A0006, // 000D JMPF R2 #0015 - 0x8C080106, // 000E GETMET R2 R0 K6 - 0x5C100200, // 000F MOVE R4 R1 - 0x7C080400, // 0010 CALL R2 2 - 0x88080104, // 0011 GETMBR R2 R0 K4 - 0x8C080507, // 0012 GETMET R2 R2 K7 - 0x5C100200, // 0013 MOVE R4 R1 - 0x7C080400, // 0014 CALL R2 2 - 0x80000000, // 0015 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: remove_redundant_fabric -********************************************************************/ -be_local_closure(Matter_Session_Store_remove_redundant_fabric, /* name */ - be_nested_proto( - 7, /* nstack */ - 2, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_const_int(0), - /* K1 */ be_nested_str_weak(fabrics), - /* K2 */ be_nested_str_weak(fabric_id), - /* K3 */ be_nested_str_weak(device_id), - /* K4 */ be_nested_str_weak(remove), - /* K5 */ be_const_int(1), - }), - be_str_weak(remove_redundant_fabric), - &be_const_str_solidified, - ( &(const binstruction[26]) { /* code */ - 0x58080000, // 0000 LDCONST R2 K0 - 0x600C000C, // 0001 GETGBL R3 G12 - 0x88100101, // 0002 GETMBR R4 R0 K1 - 0x7C0C0200, // 0003 CALL R3 1 - 0x140C0403, // 0004 LT R3 R2 R3 - 0x780E0012, // 0005 JMPF R3 #0019 - 0x880C0101, // 0006 GETMBR R3 R0 K1 - 0x940C0602, // 0007 GETIDX R3 R3 R2 - 0x20100601, // 0008 NE R4 R3 R1 - 0x7812000C, // 0009 JMPF R4 #0017 - 0x88100702, // 000A GETMBR R4 R3 K2 - 0x88140302, // 000B GETMBR R5 R1 K2 - 0x1C100805, // 000C EQ R4 R4 R5 - 0x78120008, // 000D JMPF R4 #0017 - 0x88100703, // 000E GETMBR R4 R3 K3 - 0x88140303, // 000F GETMBR R5 R1 K3 - 0x1C100805, // 0010 EQ R4 R4 R5 - 0x78120004, // 0011 JMPF R4 #0017 - 0x88100101, // 0012 GETMBR R4 R0 K1 - 0x8C100904, // 0013 GETMET R4 R4 K4 - 0x5C180400, // 0014 MOVE R6 R2 - 0x7C100400, // 0015 CALL R4 2 - 0x70020000, // 0016 JMP #0018 - 0x00080505, // 0017 ADD R2 R2 K5 - 0x7001FFE7, // 0018 JMP #0001 - 0x80000000, // 0019 RET 0 - }) - ) -); -/*******************************************************************/ - - -/******************************************************************** -** Solidified function: save_fabrics -********************************************************************/ -be_local_closure(Matter_Session_Store_save_fabrics, /* name */ - be_nested_proto( - 14, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[26]) { /* constants */ - /* K0 */ be_nested_str_weak(json), - /* K1 */ be_nested_str_weak(remove_expired), - /* K2 */ be_const_int(0), - /* K3 */ be_nested_str_weak(fabrics), - /* K4 */ be_nested_str_weak(persistables), - /* K5 */ be_nested_str_weak(_sessions), - /* K6 */ be_const_int(1), - /* K7 */ be_nested_str_weak(stop_iteration), - /* K8 */ be_nested_str_weak(push), - /* K9 */ be_nested_str_weak(tojson), - /* K10 */ be_nested_str_weak(_X5B), - /* K11 */ be_nested_str_weak(concat), - /* K12 */ be_nested_str_weak(_X2C), - /* K13 */ be_nested_str_weak(_X5D), - /* K14 */ be_nested_str_weak(string), - /* K15 */ be_nested_str_weak(_FABRICS), - /* K16 */ be_nested_str_weak(w), - /* K17 */ be_nested_str_weak(write), - /* K18 */ be_nested_str_weak(close), - /* K19 */ be_nested_str_weak(tasmota), - /* K20 */ be_nested_str_weak(log), - /* K21 */ be_nested_str_weak(format), - /* K22 */ be_nested_str_weak(MTR_X3A_X20Saved_X20_X25i_X20fabric_X28s_X29_X20and_X20_X25i_X20session_X28s_X29), - /* K23 */ be_const_int(2), - /* K24 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A), - /* K25 */ be_nested_str_weak(_X7C), - }), - be_str_weak(save_fabrics), - &be_const_str_solidified, - ( &(const binstruction[84]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x8C080101, // 0001 GETMET R2 R0 K1 - 0x7C080200, // 0002 CALL R2 1 - 0x58080002, // 0003 LDCONST R2 K2 - 0x600C0012, // 0004 GETGBL R3 G18 - 0x7C0C0000, // 0005 CALL R3 0 - 0x60100010, // 0006 GETGBL R4 G16 - 0x88140103, // 0007 GETMBR R5 R0 K3 - 0x8C140B04, // 0008 GETMET R5 R5 K4 - 0x7C140200, // 0009 CALL R5 1 - 0x7C100200, // 000A CALL R4 1 - 0xA8020013, // 000B EXBLK 0 #0020 - 0x5C140800, // 000C MOVE R5 R4 - 0x7C140000, // 000D CALL R5 0 - 0x60180010, // 000E GETGBL R6 G16 - 0x881C0B05, // 000F GETMBR R7 R5 K5 - 0x8C1C0F04, // 0010 GETMET R7 R7 K4 - 0x7C1C0200, // 0011 CALL R7 1 - 0x7C180200, // 0012 CALL R6 1 - 0xA8020003, // 0013 EXBLK 0 #0018 - 0x5C1C0C00, // 0014 MOVE R7 R6 - 0x7C1C0000, // 0015 CALL R7 0 - 0x00080506, // 0016 ADD R2 R2 K6 - 0x7001FFFB, // 0017 JMP #0014 - 0x58180007, // 0018 LDCONST R6 K7 - 0xAC180200, // 0019 CATCH R6 1 0 - 0xB0080000, // 001A RAISE 2 R0 R0 - 0x8C180708, // 001B GETMET R6 R3 K8 - 0x8C200B09, // 001C GETMET R8 R5 K9 - 0x7C200200, // 001D CALL R8 1 - 0x7C180400, // 001E CALL R6 2 - 0x7001FFEB, // 001F JMP #000C - 0x58100007, // 0020 LDCONST R4 K7 - 0xAC100200, // 0021 CATCH R4 1 0 - 0xB0080000, // 0022 RAISE 2 R0 R0 - 0x6010000C, // 0023 GETGBL R4 G12 - 0x5C140600, // 0024 MOVE R5 R3 - 0x7C100200, // 0025 CALL R4 1 - 0x8C14070B, // 0026 GETMET R5 R3 K11 - 0x581C000C, // 0027 LDCONST R7 K12 - 0x7C140400, // 0028 CALL R5 2 - 0x00161405, // 0029 ADD R5 K10 R5 - 0x00140B0D, // 002A ADD R5 R5 K13 - 0x5C0C0A00, // 002B MOVE R3 R5 - 0xA8020014, // 002C EXBLK 0 #0042 - 0xA4161C00, // 002D IMPORT R5 K14 - 0x60180011, // 002E GETGBL R6 G17 - 0x881C010F, // 002F GETMBR R7 R0 K15 - 0x58200010, // 0030 LDCONST R8 K16 - 0x7C180400, // 0031 CALL R6 2 - 0x8C1C0D11, // 0032 GETMET R7 R6 K17 - 0x5C240600, // 0033 MOVE R9 R3 - 0x7C1C0400, // 0034 CALL R7 2 - 0x8C1C0D12, // 0035 GETMET R7 R6 K18 - 0x7C1C0200, // 0036 CALL R7 1 - 0xB81E2600, // 0037 GETNGBL R7 K19 - 0x8C1C0F14, // 0038 GETMET R7 R7 K20 - 0x8C240B15, // 0039 GETMET R9 R5 K21 - 0x582C0016, // 003A LDCONST R11 K22 - 0x5C300800, // 003B MOVE R12 R4 - 0x5C340400, // 003C MOVE R13 R2 - 0x7C240800, // 003D CALL R9 4 - 0x58280017, // 003E LDCONST R10 K23 - 0x7C1C0600, // 003F CALL R7 3 - 0xA8040001, // 0040 EXBLK 1 1 - 0x70020010, // 0041 JMP #0053 - 0xAC140002, // 0042 CATCH R5 0 2 - 0x7002000D, // 0043 JMP #0052 - 0xB81E2600, // 0044 GETNGBL R7 K19 - 0x8C1C0F14, // 0045 GETMET R7 R7 K20 - 0x60240008, // 0046 GETGBL R9 G8 - 0x5C280A00, // 0047 MOVE R10 R5 - 0x7C240200, // 0048 CALL R9 1 - 0x00263009, // 0049 ADD R9 K24 R9 - 0x00241319, // 004A ADD R9 R9 K25 - 0x60280008, // 004B GETGBL R10 G8 - 0x5C2C0C00, // 004C MOVE R11 R6 - 0x7C280200, // 004D CALL R10 1 - 0x0024120A, // 004E ADD R9 R9 R10 - 0x58280017, // 004F LDCONST R10 K23 - 0x7C1C0600, // 0050 CALL R7 3 - 0x70020000, // 0051 JMP #0053 - 0xB0080000, // 0052 RAISE 2 R0 R0 - 0x80000000, // 0053 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: find_session_source_id_unsecure ********************************************************************/ @@ -3462,55 +2903,6 @@ be_local_closure(Matter_Session_Store_find_session_source_id_unsecure, /* name /*******************************************************************/ -/******************************************************************** -** Solidified function: gen_local_session_id -********************************************************************/ -be_local_closure(Matter_Session_Store_gen_local_session_id, /* name */ - be_nested_proto( - 6, /* nstack */ - 1, /* argc */ - 2, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 6]) { /* constants */ - /* K0 */ be_nested_str_weak(crypto), - /* K1 */ be_nested_str_weak(random), - /* K2 */ be_const_int(2), - /* K3 */ be_nested_str_weak(get), - /* K4 */ be_const_int(0), - /* K5 */ be_nested_str_weak(get_session_by_local_session_id), - }), - be_str_weak(gen_local_session_id), - &be_const_str_solidified, - ( &(const binstruction[19]) { /* code */ - 0xA4060000, // 0000 IMPORT R1 K0 - 0x50080200, // 0001 LDBOOL R2 1 0 - 0x780A000E, // 0002 JMPF R2 #0012 - 0x8C080301, // 0003 GETMET R2 R1 K1 - 0x58100002, // 0004 LDCONST R4 K2 - 0x7C080400, // 0005 CALL R2 2 - 0x8C080503, // 0006 GETMET R2 R2 K3 - 0x58100004, // 0007 LDCONST R4 K4 - 0x58140002, // 0008 LDCONST R5 K2 - 0x7C080600, // 0009 CALL R2 3 - 0x8C0C0105, // 000A GETMET R3 R0 K5 - 0x5C140400, // 000B MOVE R5 R2 - 0x7C0C0400, // 000C CALL R3 2 - 0x4C100000, // 000D LDNIL R4 - 0x1C0C0604, // 000E EQ R3 R3 R4 - 0x780E0000, // 000F JMPF R3 #0011 - 0x80040400, // 0010 RET 1 R2 - 0x7001FFEE, // 0011 JMP #0001 - 0x80000000, // 0012 RET 0 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: load_fabrics ********************************************************************/ @@ -3683,12 +3075,12 @@ be_local_closure(Matter_Session_Store_load_fabrics, /* name */ /******************************************************************** -** Solidified function: count_active_fabrics +** Solidified function: add_session ********************************************************************/ -be_local_closure(Matter_Session_Store_count_active_fabrics, /* name */ +be_local_closure(Matter_Session_Store_add_session, /* name */ be_nested_proto( - 4, /* nstack */ - 2, /* argc */ + 6, /* nstack */ + 3, /* argc */ 2, /* varg */ 0, /* has upvals */ NULL, /* no upvals */ @@ -3696,19 +3088,24 @@ be_local_closure(Matter_Session_Store_count_active_fabrics, /* name */ NULL, /* no sub protos */ 1, /* has constants */ ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str_weak(remove_expired), - /* K1 */ be_nested_str_weak(fabrics), - /* K2 */ be_nested_str_weak(count_persistables), + /* K0 */ be_nested_str_weak(set_expire_in_seconds), + /* K1 */ be_nested_str_weak(sessions), + /* K2 */ be_nested_str_weak(push), }), - be_str_weak(count_active_fabrics), + be_str_weak(add_session), &be_const_str_solidified, - ( &(const binstruction[ 6]) { /* code */ - 0x8C080100, // 0000 GETMET R2 R0 K0 - 0x7C080200, // 0001 CALL R2 1 - 0x88080101, // 0002 GETMBR R2 R0 K1 - 0x8C080502, // 0003 GETMET R2 R2 K2 - 0x7C080200, // 0004 CALL R2 1 - 0x80040400, // 0005 RET 1 R2 + ( &(const binstruction[11]) { /* code */ + 0x4C0C0000, // 0000 LDNIL R3 + 0x200C0403, // 0001 NE R3 R2 R3 + 0x780E0002, // 0002 JMPF R3 #0006 + 0x8C0C0300, // 0003 GETMET R3 R1 K0 + 0x5C140400, // 0004 MOVE R5 R2 + 0x7C0C0400, // 0005 CALL R3 2 + 0x880C0101, // 0006 GETMBR R3 R0 K1 + 0x8C0C0702, // 0007 GETMET R3 R3 K2 + 0x5C140200, // 0008 MOVE R5 R1 + 0x7C0C0400, // 0009 CALL R3 2 + 0x80000000, // 000A RET 0 }) ) ); @@ -3767,35 +3164,700 @@ be_local_closure(Matter_Session_Store_sessions_active, /* name */ /*******************************************************************/ +/******************************************************************** +** Solidified function: active_fabrics +********************************************************************/ +be_local_closure(Matter_Session_Store_active_fabrics, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(remove_expired), + /* K1 */ be_nested_str_weak(fabrics), + /* K2 */ be_nested_str_weak(persistables), + }), + be_str_weak(active_fabrics), + &be_const_str_solidified, + ( &(const binstruction[ 6]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x88040101, // 0002 GETMBR R1 R0 K1 + 0x8C040302, // 0003 GETMET R1 R1 K2 + 0x7C040200, // 0004 CALL R1 1 + 0x80040200, // 0005 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: init +********************************************************************/ +be_local_closure(Matter_Session_Store_init, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 4]) { /* constants */ + /* K0 */ be_nested_str_weak(sessions), + /* K1 */ be_nested_str_weak(matter), + /* K2 */ be_nested_str_weak(Expirable_list), + /* K3 */ be_nested_str_weak(fabrics), + }), + be_str_weak(init), + &be_const_str_solidified, + ( &(const binstruction[ 9]) { /* code */ + 0xB8060200, // 0000 GETNGBL R1 K1 + 0x8C040302, // 0001 GETMET R1 R1 K2 + 0x7C040200, // 0002 CALL R1 1 + 0x90020001, // 0003 SETMBR R0 K0 R1 + 0xB8060200, // 0004 GETNGBL R1 K1 + 0x8C040302, // 0005 GETMET R1 R1 K2 + 0x7C040200, // 0006 CALL R1 1 + 0x90020601, // 0007 SETMBR R0 K3 R1 + 0x80000000, // 0008 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: find_session_by_resumption_id +********************************************************************/ +be_local_closure(Matter_Session_Store_find_session_by_resumption_id, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_const_int(0), + /* K1 */ be_nested_str_weak(sessions), + /* K2 */ be_nested_str_weak(resumption_id), + /* K3 */ be_nested_str_weak(shared_secret), + /* K4 */ be_nested_str_weak(update), + /* K5 */ be_const_int(1), + }), + be_str_weak(find_session_by_resumption_id), + &be_const_str_solidified, + ( &(const binstruction[25]) { /* code */ + 0x5C080200, // 0000 MOVE R2 R1 + 0x740A0001, // 0001 JMPT R2 #0004 + 0x4C080000, // 0002 LDNIL R2 + 0x80040400, // 0003 RET 1 R2 + 0x58080000, // 0004 LDCONST R2 K0 + 0x880C0101, // 0005 GETMBR R3 R0 K1 + 0x6010000C, // 0006 GETGBL R4 G12 + 0x5C140600, // 0007 MOVE R5 R3 + 0x7C100200, // 0008 CALL R4 1 + 0x14100404, // 0009 LT R4 R2 R4 + 0x7812000C, // 000A JMPF R4 #0018 + 0x94100602, // 000B GETIDX R4 R3 R2 + 0x88140902, // 000C GETMBR R5 R4 K2 + 0x1C140A01, // 000D EQ R5 R5 R1 + 0x78160006, // 000E JMPF R5 #0016 + 0x88140903, // 000F GETMBR R5 R4 K3 + 0x4C180000, // 0010 LDNIL R6 + 0x20140A06, // 0011 NE R5 R5 R6 + 0x78160002, // 0012 JMPF R5 #0016 + 0x8C140904, // 0013 GETMET R5 R4 K4 + 0x7C140200, // 0014 CALL R5 1 + 0x80040800, // 0015 RET 1 R4 + 0x00080505, // 0016 ADD R2 R2 K5 + 0x7001FFED, // 0017 JMP #0006 + 0x80000000, // 0018 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_session_by_source_node_id +********************************************************************/ +be_local_closure(Matter_Session_Store_get_session_by_source_node_id, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(sessions), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(source_node_id), + /* K3 */ be_nested_str_weak(update), + /* K4 */ be_const_int(1), + }), + be_str_weak(get_session_by_source_node_id), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x1C080202, // 0001 EQ R2 R1 R2 + 0x780A0001, // 0002 JMPF R2 #0005 + 0x4C080000, // 0003 LDNIL R2 + 0x80040400, // 0004 RET 1 R2 + 0x6008000C, // 0005 GETGBL R2 G12 + 0x880C0100, // 0006 GETMBR R3 R0 K0 + 0x7C080200, // 0007 CALL R2 1 + 0x580C0001, // 0008 LDCONST R3 K1 + 0x88100100, // 0009 GETMBR R4 R0 K0 + 0x14140602, // 000A LT R5 R3 R2 + 0x78160008, // 000B JMPF R5 #0015 + 0x94140803, // 000C GETIDX R5 R4 R3 + 0x88180B02, // 000D GETMBR R6 R5 K2 + 0x1C180C01, // 000E EQ R6 R6 R1 + 0x781A0002, // 000F JMPF R6 #0013 + 0x8C180B03, // 0010 GETMET R6 R5 K3 + 0x7C180200, // 0011 CALL R6 1 + 0x80040A00, // 0012 RET 1 R5 + 0x000C0704, // 0013 ADD R3 R3 K4 + 0x7001FFF4, // 0014 JMP #000A + 0x80000000, // 0015 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: remove_expired +********************************************************************/ +be_local_closure(Matter_Session_Store_remove_expired, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 3]) { /* constants */ + /* K0 */ be_nested_str_weak(sessions), + /* K1 */ be_nested_str_weak(every_second), + /* K2 */ be_nested_str_weak(fabrics), + }), + be_str_weak(remove_expired), + &be_const_str_solidified, + ( &(const binstruction[ 7]) { /* code */ + 0x88040100, // 0000 GETMBR R1 R0 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x7C040200, // 0002 CALL R1 1 + 0x88040102, // 0003 GETMBR R1 R0 K2 + 0x8C040301, // 0004 GETMET R1 R1 K1 + 0x7C040200, // 0005 CALL R1 1 + 0x80000000, // 0006 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: remove_redundant_fabric +********************************************************************/ +be_local_closure(Matter_Session_Store_remove_redundant_fabric, /* name */ + be_nested_proto( + 7, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_const_int(0), + /* K1 */ be_nested_str_weak(fabrics), + /* K2 */ be_nested_str_weak(fabric_id), + /* K3 */ be_nested_str_weak(device_id), + /* K4 */ be_nested_str_weak(remove), + /* K5 */ be_const_int(1), + }), + be_str_weak(remove_redundant_fabric), + &be_const_str_solidified, + ( &(const binstruction[26]) { /* code */ + 0x58080000, // 0000 LDCONST R2 K0 + 0x600C000C, // 0001 GETGBL R3 G12 + 0x88100101, // 0002 GETMBR R4 R0 K1 + 0x7C0C0200, // 0003 CALL R3 1 + 0x140C0403, // 0004 LT R3 R2 R3 + 0x780E0012, // 0005 JMPF R3 #0019 + 0x880C0101, // 0006 GETMBR R3 R0 K1 + 0x940C0602, // 0007 GETIDX R3 R3 R2 + 0x20100601, // 0008 NE R4 R3 R1 + 0x7812000C, // 0009 JMPF R4 #0017 + 0x88100702, // 000A GETMBR R4 R3 K2 + 0x88140302, // 000B GETMBR R5 R1 K2 + 0x1C100805, // 000C EQ R4 R4 R5 + 0x78120008, // 000D JMPF R4 #0017 + 0x88100703, // 000E GETMBR R4 R3 K3 + 0x88140303, // 000F GETMBR R5 R1 K3 + 0x1C100805, // 0010 EQ R4 R4 R5 + 0x78120004, // 0011 JMPF R4 #0017 + 0x88100101, // 0012 GETMBR R4 R0 K1 + 0x8C100904, // 0013 GETMET R4 R4 K4 + 0x5C180400, // 0014 MOVE R6 R2 + 0x7C100400, // 0015 CALL R4 2 + 0x70020000, // 0016 JMP #0018 + 0x00080505, // 0017 ADD R2 R2 K5 + 0x7001FFE7, // 0018 JMP #0001 + 0x80000000, // 0019 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: add_fabric +********************************************************************/ +be_local_closure(Matter_Session_Store_add_fabric, /* name */ + be_nested_proto( + 5, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 8]) { /* constants */ + /* K0 */ be_nested_str_weak(matter), + /* K1 */ be_nested_str_weak(Fabric), + /* K2 */ be_nested_str_weak(value_error), + /* K3 */ be_nested_str_weak(must_X20be_X20of_X20class_X20matter_X2EFabric), + /* K4 */ be_nested_str_weak(fabrics), + /* K5 */ be_nested_str_weak(find), + /* K6 */ be_nested_str_weak(remove_redundant_fabric), + /* K7 */ be_nested_str_weak(push), + }), + be_str_weak(add_fabric), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x6008000F, // 0000 GETGBL R2 G15 + 0x5C0C0200, // 0001 MOVE R3 R1 + 0xB8120000, // 0002 GETNGBL R4 K0 + 0x88100901, // 0003 GETMBR R4 R4 K1 + 0x7C080400, // 0004 CALL R2 2 + 0x740A0000, // 0005 JMPT R2 #0007 + 0xB0060503, // 0006 RAISE 1 K2 K3 + 0x88080104, // 0007 GETMBR R2 R0 K4 + 0x8C080505, // 0008 GETMET R2 R2 K5 + 0x5C100200, // 0009 MOVE R4 R1 + 0x7C080400, // 000A CALL R2 2 + 0x4C0C0000, // 000B LDNIL R3 + 0x1C080403, // 000C EQ R2 R2 R3 + 0x780A0006, // 000D JMPF R2 #0015 + 0x8C080106, // 000E GETMET R2 R0 K6 + 0x5C100200, // 000F MOVE R4 R1 + 0x7C080400, // 0010 CALL R2 2 + 0x88080104, // 0011 GETMBR R2 R0 K4 + 0x8C080507, // 0012 GETMET R2 R2 K7 + 0x5C100200, // 0013 MOVE R4 R1 + 0x7C080400, // 0014 CALL R2 2 + 0x80000000, // 0015 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: save_fabrics +********************************************************************/ +be_local_closure(Matter_Session_Store_save_fabrics, /* name */ + be_nested_proto( + 14, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[26]) { /* constants */ + /* K0 */ be_nested_str_weak(json), + /* K1 */ be_nested_str_weak(remove_expired), + /* K2 */ be_const_int(0), + /* K3 */ be_nested_str_weak(fabrics), + /* K4 */ be_nested_str_weak(persistables), + /* K5 */ be_nested_str_weak(_sessions), + /* K6 */ be_const_int(1), + /* K7 */ be_nested_str_weak(stop_iteration), + /* K8 */ be_nested_str_weak(push), + /* K9 */ be_nested_str_weak(tojson), + /* K10 */ be_nested_str_weak(_X5B), + /* K11 */ be_nested_str_weak(concat), + /* K12 */ be_nested_str_weak(_X2C), + /* K13 */ be_nested_str_weak(_X5D), + /* K14 */ be_nested_str_weak(string), + /* K15 */ be_nested_str_weak(_FABRICS), + /* K16 */ be_nested_str_weak(w), + /* K17 */ be_nested_str_weak(write), + /* K18 */ be_nested_str_weak(close), + /* K19 */ be_nested_str_weak(tasmota), + /* K20 */ be_nested_str_weak(log), + /* K21 */ be_nested_str_weak(format), + /* K22 */ be_nested_str_weak(MTR_X3A_X20Saved_X20_X25i_X20fabric_X28s_X29_X20and_X20_X25i_X20session_X28s_X29), + /* K23 */ be_const_int(2), + /* K24 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A), + /* K25 */ be_nested_str_weak(_X7C), + }), + be_str_weak(save_fabrics), + &be_const_str_solidified, + ( &(const binstruction[84]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x8C080101, // 0001 GETMET R2 R0 K1 + 0x7C080200, // 0002 CALL R2 1 + 0x58080002, // 0003 LDCONST R2 K2 + 0x600C0012, // 0004 GETGBL R3 G18 + 0x7C0C0000, // 0005 CALL R3 0 + 0x60100010, // 0006 GETGBL R4 G16 + 0x88140103, // 0007 GETMBR R5 R0 K3 + 0x8C140B04, // 0008 GETMET R5 R5 K4 + 0x7C140200, // 0009 CALL R5 1 + 0x7C100200, // 000A CALL R4 1 + 0xA8020013, // 000B EXBLK 0 #0020 + 0x5C140800, // 000C MOVE R5 R4 + 0x7C140000, // 000D CALL R5 0 + 0x60180010, // 000E GETGBL R6 G16 + 0x881C0B05, // 000F GETMBR R7 R5 K5 + 0x8C1C0F04, // 0010 GETMET R7 R7 K4 + 0x7C1C0200, // 0011 CALL R7 1 + 0x7C180200, // 0012 CALL R6 1 + 0xA8020003, // 0013 EXBLK 0 #0018 + 0x5C1C0C00, // 0014 MOVE R7 R6 + 0x7C1C0000, // 0015 CALL R7 0 + 0x00080506, // 0016 ADD R2 R2 K6 + 0x7001FFFB, // 0017 JMP #0014 + 0x58180007, // 0018 LDCONST R6 K7 + 0xAC180200, // 0019 CATCH R6 1 0 + 0xB0080000, // 001A RAISE 2 R0 R0 + 0x8C180708, // 001B GETMET R6 R3 K8 + 0x8C200B09, // 001C GETMET R8 R5 K9 + 0x7C200200, // 001D CALL R8 1 + 0x7C180400, // 001E CALL R6 2 + 0x7001FFEB, // 001F JMP #000C + 0x58100007, // 0020 LDCONST R4 K7 + 0xAC100200, // 0021 CATCH R4 1 0 + 0xB0080000, // 0022 RAISE 2 R0 R0 + 0x6010000C, // 0023 GETGBL R4 G12 + 0x5C140600, // 0024 MOVE R5 R3 + 0x7C100200, // 0025 CALL R4 1 + 0x8C14070B, // 0026 GETMET R5 R3 K11 + 0x581C000C, // 0027 LDCONST R7 K12 + 0x7C140400, // 0028 CALL R5 2 + 0x00161405, // 0029 ADD R5 K10 R5 + 0x00140B0D, // 002A ADD R5 R5 K13 + 0x5C0C0A00, // 002B MOVE R3 R5 + 0xA8020014, // 002C EXBLK 0 #0042 + 0xA4161C00, // 002D IMPORT R5 K14 + 0x60180011, // 002E GETGBL R6 G17 + 0x881C010F, // 002F GETMBR R7 R0 K15 + 0x58200010, // 0030 LDCONST R8 K16 + 0x7C180400, // 0031 CALL R6 2 + 0x8C1C0D11, // 0032 GETMET R7 R6 K17 + 0x5C240600, // 0033 MOVE R9 R3 + 0x7C1C0400, // 0034 CALL R7 2 + 0x8C1C0D12, // 0035 GETMET R7 R6 K18 + 0x7C1C0200, // 0036 CALL R7 1 + 0xB81E2600, // 0037 GETNGBL R7 K19 + 0x8C1C0F14, // 0038 GETMET R7 R7 K20 + 0x8C240B15, // 0039 GETMET R9 R5 K21 + 0x582C0016, // 003A LDCONST R11 K22 + 0x5C300800, // 003B MOVE R12 R4 + 0x5C340400, // 003C MOVE R13 R2 + 0x7C240800, // 003D CALL R9 4 + 0x58280017, // 003E LDCONST R10 K23 + 0x7C1C0600, // 003F CALL R7 3 + 0xA8040001, // 0040 EXBLK 1 1 + 0x70020010, // 0041 JMP #0053 + 0xAC140002, // 0042 CATCH R5 0 2 + 0x7002000D, // 0043 JMP #0052 + 0xB81E2600, // 0044 GETNGBL R7 K19 + 0x8C1C0F14, // 0045 GETMET R7 R7 K20 + 0x60240008, // 0046 GETGBL R9 G8 + 0x5C280A00, // 0047 MOVE R10 R5 + 0x7C240200, // 0048 CALL R9 1 + 0x00263009, // 0049 ADD R9 K24 R9 + 0x00241319, // 004A ADD R9 R9 K25 + 0x60280008, // 004B GETGBL R10 G8 + 0x5C2C0C00, // 004C MOVE R11 R6 + 0x7C280200, // 004D CALL R10 1 + 0x0024120A, // 004E ADD R9 R9 R10 + 0x58280017, // 004F LDCONST R10 K23 + 0x7C1C0600, // 0050 CALL R7 3 + 0x70020000, // 0051 JMP #0053 + 0xB0080000, // 0052 RAISE 2 R0 R0 + 0x80000000, // 0053 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: gen_local_session_id +********************************************************************/ +be_local_closure(Matter_Session_Store_gen_local_session_id, /* name */ + be_nested_proto( + 6, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(crypto), + /* K1 */ be_nested_str_weak(random), + /* K2 */ be_const_int(2), + /* K3 */ be_nested_str_weak(get), + /* K4 */ be_const_int(0), + /* K5 */ be_nested_str_weak(get_session_by_local_session_id), + }), + be_str_weak(gen_local_session_id), + &be_const_str_solidified, + ( &(const binstruction[19]) { /* code */ + 0xA4060000, // 0000 IMPORT R1 K0 + 0x50080200, // 0001 LDBOOL R2 1 0 + 0x780A000E, // 0002 JMPF R2 #0012 + 0x8C080301, // 0003 GETMET R2 R1 K1 + 0x58100002, // 0004 LDCONST R4 K2 + 0x7C080400, // 0005 CALL R2 2 + 0x8C080503, // 0006 GETMET R2 R2 K3 + 0x58100004, // 0007 LDCONST R4 K4 + 0x58140002, // 0008 LDCONST R5 K2 + 0x7C080600, // 0009 CALL R2 3 + 0x8C0C0105, // 000A GETMET R3 R0 K5 + 0x5C140400, // 000B MOVE R5 R2 + 0x7C0C0400, // 000C CALL R3 2 + 0x4C100000, // 000D LDNIL R4 + 0x1C0C0604, // 000E EQ R3 R3 R4 + 0x780E0000, // 000F JMPF R3 #0011 + 0x80040400, // 0010 RET 1 R2 + 0x7001FFEE, // 0011 JMP #0001 + 0x80000000, // 0012 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: get_session_by_local_session_id +********************************************************************/ +be_local_closure(Matter_Session_Store_get_session_by_local_session_id, /* name */ + be_nested_proto( + 8, /* nstack */ + 2, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 5]) { /* constants */ + /* K0 */ be_nested_str_weak(sessions), + /* K1 */ be_const_int(0), + /* K2 */ be_nested_str_weak(local_session_id), + /* K3 */ be_nested_str_weak(update), + /* K4 */ be_const_int(1), + }), + be_str_weak(get_session_by_local_session_id), + &be_const_str_solidified, + ( &(const binstruction[22]) { /* code */ + 0x4C080000, // 0000 LDNIL R2 + 0x1C080202, // 0001 EQ R2 R1 R2 + 0x780A0001, // 0002 JMPF R2 #0005 + 0x4C080000, // 0003 LDNIL R2 + 0x80040400, // 0004 RET 1 R2 + 0x6008000C, // 0005 GETGBL R2 G12 + 0x880C0100, // 0006 GETMBR R3 R0 K0 + 0x7C080200, // 0007 CALL R2 1 + 0x580C0001, // 0008 LDCONST R3 K1 + 0x88100100, // 0009 GETMBR R4 R0 K0 + 0x14140602, // 000A LT R5 R3 R2 + 0x78160008, // 000B JMPF R5 #0015 + 0x94140803, // 000C GETIDX R5 R4 R3 + 0x88180B02, // 000D GETMBR R6 R5 K2 + 0x1C180C01, // 000E EQ R6 R6 R1 + 0x781A0002, // 000F JMPF R6 #0013 + 0x8C180B03, // 0010 GETMET R6 R5 K3 + 0x7C180200, // 0011 CALL R6 1 + 0x80040A00, // 0012 RET 1 R5 + 0x000C0704, // 0013 ADD R3 R3 K4 + 0x7001FFF4, // 0014 JMP #000A + 0x80000000, // 0015 RET 0 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_fabric +********************************************************************/ +be_local_closure(Matter_Session_Store_create_fabric, /* name */ + be_nested_proto( + 4, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str_weak(matter), + /* K1 */ be_nested_str_weak(Fabric), + }), + be_str_weak(create_fabric), + &be_const_str_solidified, + ( &(const binstruction[ 5]) { /* code */ + 0xB8060000, // 0000 GETNGBL R1 K0 + 0x8C040301, // 0001 GETMET R1 R1 K1 + 0x5C0C0000, // 0002 MOVE R3 R0 + 0x7C040400, // 0003 CALL R1 2 + 0x80040200, // 0004 RET 1 R1 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: create_session +********************************************************************/ +be_local_closure(Matter_Session_Store_create_session, /* name */ + be_nested_proto( + 9, /* nstack */ + 3, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 6]) { /* constants */ + /* K0 */ be_nested_str_weak(get_session_by_local_session_id), + /* K1 */ be_nested_str_weak(remove_session), + /* K2 */ be_nested_str_weak(matter), + /* K3 */ be_nested_str_weak(Session), + /* K4 */ be_nested_str_weak(sessions), + /* K5 */ be_nested_str_weak(push), + }), + be_str_weak(create_session), + &be_const_str_solidified, + ( &(const binstruction[21]) { /* code */ + 0x8C0C0100, // 0000 GETMET R3 R0 K0 + 0x5C140200, // 0001 MOVE R5 R1 + 0x7C0C0400, // 0002 CALL R3 2 + 0x4C100000, // 0003 LDNIL R4 + 0x20100604, // 0004 NE R4 R3 R4 + 0x78120002, // 0005 JMPF R4 #0009 + 0x8C100101, // 0006 GETMET R4 R0 K1 + 0x5C180600, // 0007 MOVE R6 R3 + 0x7C100400, // 0008 CALL R4 2 + 0xB8120400, // 0009 GETNGBL R4 K2 + 0x8C100903, // 000A GETMET R4 R4 K3 + 0x5C180000, // 000B MOVE R6 R0 + 0x5C1C0200, // 000C MOVE R7 R1 + 0x5C200400, // 000D MOVE R8 R2 + 0x7C100800, // 000E CALL R4 4 + 0x5C0C0800, // 000F MOVE R3 R4 + 0x88100104, // 0010 GETMBR R4 R0 K4 + 0x8C100905, // 0011 GETMET R4 R4 K5 + 0x5C180600, // 0012 MOVE R6 R3 + 0x7C100400, // 0013 CALL R4 2 + 0x80040600, // 0014 RET 1 R3 + }) + ) +); +/*******************************************************************/ + + +/******************************************************************** +** Solidified function: every_second +********************************************************************/ +be_local_closure(Matter_Session_Store_every_second, /* name */ + be_nested_proto( + 3, /* nstack */ + 1, /* argc */ + 2, /* varg */ + 0, /* has upvals */ + NULL, /* no upvals */ + 0, /* has sup protos */ + NULL, /* no sub protos */ + 1, /* has constants */ + ( &(const bvalue[ 1]) { /* constants */ + /* K0 */ be_nested_str_weak(remove_expired), + }), + be_str_weak(every_second), + &be_const_str_solidified, + ( &(const binstruction[ 3]) { /* code */ + 0x8C040100, // 0000 GETMET R1 R0 K0 + 0x7C040200, // 0001 CALL R1 1 + 0x80000000, // 0002 RET 0 + }) + ) +); +/*******************************************************************/ + + /******************************************************************** ** Solidified class: Matter_Session_Store ********************************************************************/ be_local_class(Matter_Session_Store, 2, NULL, - be_nested_map(21, + be_nested_map(22, ( (struct bmapnode*) &(const bmapnode[]) { - { be_const_key_weak(remove_expired, 20), be_const_closure(Matter_Session_Store_remove_expired_closure) }, - { be_const_key_weak(add_session, -1), be_const_closure(Matter_Session_Store_add_session_closure) }, - { be_const_key_weak(sessions_active, -1), be_const_closure(Matter_Session_Store_sessions_active_closure) }, - { be_const_key_weak(every_second, -1), be_const_closure(Matter_Session_Store_every_second_closure) }, - { be_const_key_weak(create_fabric, 15), be_const_closure(Matter_Session_Store_create_fabric_closure) }, - { be_const_key_weak(fabrics, 19), be_const_var(1) }, { be_const_key_weak(count_active_fabrics, -1), be_const_closure(Matter_Session_Store_count_active_fabrics_closure) }, - { be_const_key_weak(sessions, 6), be_const_var(0) }, - { be_const_key_weak(get_session_by_source_node_id, -1), be_const_closure(Matter_Session_Store_get_session_by_source_node_id_closure) }, - { be_const_key_weak(remove_session, -1), be_const_closure(Matter_Session_Store_remove_session_closure) }, - { be_const_key_weak(init, -1), be_const_closure(Matter_Session_Store_init_closure) }, - { be_const_key_weak(add_fabric, -1), be_const_closure(Matter_Session_Store_add_fabric_closure) }, - { be_const_key_weak(create_session, 10), be_const_closure(Matter_Session_Store_create_session_closure) }, - { be_const_key_weak(remove_redundant_fabric, -1), be_const_closure(Matter_Session_Store_remove_redundant_fabric_closure) }, - { be_const_key_weak(get_session_by_local_session_id, 13), be_const_closure(Matter_Session_Store_get_session_by_local_session_id_closure) }, - { be_const_key_weak(save_fabrics, 11), be_const_closure(Matter_Session_Store_save_fabrics_closure) }, { be_const_key_weak(find_session_source_id_unsecure, -1), be_const_closure(Matter_Session_Store_find_session_source_id_unsecure_closure) }, - { be_const_key_weak(gen_local_session_id, -1), be_const_closure(Matter_Session_Store_gen_local_session_id_closure) }, - { be_const_key_weak(load_fabrics, 2), be_const_closure(Matter_Session_Store_load_fabrics_closure) }, - { be_const_key_weak(_FABRICS, -1), be_nested_str_weak(_matter_fabrics_X2Ejson) }, + { be_const_key_weak(load_fabrics, 1), be_const_closure(Matter_Session_Store_load_fabrics_closure) }, + { be_const_key_weak(get_session_by_source_node_id, -1), be_const_closure(Matter_Session_Store_get_session_by_source_node_id_closure) }, + { be_const_key_weak(remove_session, 2), be_const_closure(Matter_Session_Store_remove_session_closure) }, + { be_const_key_weak(remove_expired, -1), be_const_closure(Matter_Session_Store_remove_expired_closure) }, + { be_const_key_weak(get_session_by_local_session_id, -1), be_const_closure(Matter_Session_Store_get_session_by_local_session_id_closure) }, + { be_const_key_weak(sessions_active, -1), be_const_closure(Matter_Session_Store_sessions_active_closure) }, + { be_const_key_weak(active_fabrics, -1), be_const_closure(Matter_Session_Store_active_fabrics_closure) }, + { be_const_key_weak(init, -1), be_const_closure(Matter_Session_Store_init_closure) }, { be_const_key_weak(find_session_by_resumption_id, -1), be_const_closure(Matter_Session_Store_find_session_by_resumption_id_closure) }, + { be_const_key_weak(add_session, 3), be_const_closure(Matter_Session_Store_add_session_closure) }, + { be_const_key_weak(gen_local_session_id, -1), be_const_closure(Matter_Session_Store_gen_local_session_id_closure) }, + { be_const_key_weak(fabrics, 15), be_const_var(1) }, + { be_const_key_weak(add_fabric, -1), be_const_closure(Matter_Session_Store_add_fabric_closure) }, + { be_const_key_weak(remove_redundant_fabric, 5), be_const_closure(Matter_Session_Store_remove_redundant_fabric_closure) }, + { be_const_key_weak(_FABRICS, 12), be_nested_str_weak(_matter_fabrics_X2Ejson) }, + { be_const_key_weak(save_fabrics, 6), be_const_closure(Matter_Session_Store_save_fabrics_closure) }, + { be_const_key_weak(sessions, -1), be_const_var(0) }, + { be_const_key_weak(create_fabric, -1), be_const_closure(Matter_Session_Store_create_fabric_closure) }, + { be_const_key_weak(create_session, -1), be_const_closure(Matter_Session_Store_create_session_closure) }, + { be_const_key_weak(every_second, -1), be_const_closure(Matter_Session_Store_every_second_closure) }, })), be_str_weak(Matter_Session_Store) ); diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h index 66a6c3e61..dc8c1fc97 100644 --- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h +++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h @@ -525,7 +525,7 @@ be_local_closure(Matter_UDPServer_every_50ms, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[14]) { /* constants */ + ( &(const bvalue[15]) { /* constants */ /* K0 */ be_nested_str_weak(string), /* K1 */ be_const_int(0), /* K2 */ be_nested_str_weak(udp_socket), @@ -537,9 +537,10 @@ be_local_closure(Matter_UDPServer_every_50ms, /* name */ /* K8 */ be_nested_str_weak(log), /* K9 */ be_nested_str_weak(format), /* K10 */ be_nested_str_weak(MTR_X3A_X20UDP_X20received_X20from_X20_X5B_X25s_X5D_X3A_X25i), - /* K11 */ be_nested_str_weak(dispatch_cb), - /* K12 */ be_nested_str_weak(MAX_PACKETS_READ), - /* K13 */ be_nested_str_weak(resend_packets), + /* K11 */ be_const_int(3), + /* K12 */ be_nested_str_weak(dispatch_cb), + /* K13 */ be_nested_str_weak(MAX_PACKETS_READ), + /* K14 */ be_nested_str_weak(resend_packets), }), be_str_weak(every_50ms), &be_const_str_solidified, @@ -569,16 +570,16 @@ be_local_closure(Matter_UDPServer_every_50ms, /* name */ 0x5C2C0800, // 0016 MOVE R11 R4 0x5C300A00, // 0017 MOVE R12 R5 0x7C200800, // 0018 CALL R8 4 - 0x54260003, // 0019 LDINT R9 4 + 0x5824000B, // 0019 LDCONST R9 K11 0x7C180600, // 001A CALL R6 3 - 0x8818010B, // 001B GETMBR R6 R0 K11 + 0x8818010C, // 001B GETMBR R6 R0 K12 0x781A0004, // 001C JMPF R6 #0022 - 0x8C18010B, // 001D GETMET R6 R0 K11 + 0x8C18010C, // 001D GETMET R6 R0 K12 0x5C200600, // 001E MOVE R8 R3 0x5C240800, // 001F MOVE R9 R4 0x5C280A00, // 0020 MOVE R10 R5 0x7C180800, // 0021 CALL R6 4 - 0x8818010C, // 0022 GETMBR R6 R0 K12 + 0x8818010D, // 0022 GETMBR R6 R0 K13 0x14180406, // 0023 LT R6 R2 R6 0x781A0004, // 0024 JMPF R6 #002A 0x88180102, // 0025 GETMBR R6 R0 K2 @@ -588,7 +589,7 @@ be_local_closure(Matter_UDPServer_every_50ms, /* name */ 0x70020000, // 0029 JMP #002B 0x4C0C0000, // 002A LDNIL R3 0x7001FFDD, // 002B JMP #000A - 0x8C10010D, // 002C GETMET R4 R0 K13 + 0x8C10010E, // 002C GETMET R4 R0 K14 0x7C100200, // 002D CALL R4 1 0x80000000, // 002E RET 0 })