yo-moss-ai 0.0.21 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/bin/bootstrap-deps.mjs +7 -6
  2. package/bin/runtime-manifest.json +1 -1
  3. package/dist/assets/esp-flasher-CLKzE7JE.js +2 -2
  4. package/dist/assets/index-BTL1clBe.js +45 -0
  5. package/dist/assets/{index-CzQKR67c.css → index-Bcf5kQZF.css} +1 -1
  6. package/dist/index.html +2 -2
  7. package/dist/models/mediapipe/blaze_face_full_range.tflite +0 -0
  8. package/dist/models/mediapipe/blaze_face_short_range.tflite +0 -0
  9. package/dist/models/mediapipe/wasm/vision_wasm_internal.js +8841 -0
  10. package/dist/models/mediapipe/wasm/vision_wasm_internal.wasm +0 -0
  11. package/dist/models/mediapipe/wasm/vision_wasm_nosimd_internal.js +8832 -0
  12. package/dist/models/mediapipe/wasm/vision_wasm_nosimd_internal.wasm +0 -0
  13. package/dist/stl/moss.stl +0 -0
  14. package/dist/stl/planetary_engine.stl +0 -0
  15. package/dist/textures/earth-lights.png +0 -0
  16. package/dist/textures/earth-night.jpg +0 -0
  17. package/dist/textures/earth_clouds.jpg +0 -0
  18. package/dist/textures/moon-base.jpg +0 -0
  19. package/dist/textures/moon-bump.jpg +0 -0
  20. package/dist/textures/wandering.png +0 -0
  21. package/dist-server/board-presets.mjs +1 -1
  22. package/dist-server/camera.mjs +1 -1
  23. package/dist-server/dev-ui.mjs +1 -1
  24. package/dist-server/device-chat-sync.mjs +1 -1
  25. package/dist-server/device-config-view.mjs +1 -1
  26. package/dist-server/device-focus.mjs +1 -1
  27. package/dist-server/device-http.mjs +1 -1
  28. package/dist-server/device-identity.mjs +1 -1
  29. package/dist-server/device-presence.mjs +1 -1
  30. package/dist-server/device-probe.mjs +1 -1
  31. package/dist-server/device-registry.mjs +1 -1
  32. package/dist-server/device-routes.mjs +1 -1
  33. package/dist-server/device-runtime.mjs +1 -1
  34. package/dist-server/device-session.mjs +1 -1
  35. package/dist-server/ffmpeg.mjs +1 -1
  36. package/dist-server/gimbal-control.mjs +1 -1
  37. package/dist-server/home-path.mjs +1 -1
  38. package/dist-server/index.mjs +1 -1
  39. package/dist-server/ir-import-validate.mjs +1 -1
  40. package/dist-server/known-scan-device.mjs +1 -1
  41. package/dist-server/lan-discover.mjs +1 -1
  42. package/dist-server/listen-port.mjs +1 -1
  43. package/dist-server/mcp/backoff.mjs +1 -1
  44. package/dist-server/mcp/bridge-manager.mjs +1 -1
  45. package/dist-server/mcp/builtin-tools.mjs +1 -1
  46. package/dist-server/mcp/dedupe-servers.mjs +1 -1
  47. package/dist-server/mcp/doctor.mjs +1 -1
  48. package/dist-server/mcp/fixtures/echo-mcp.mjs +1 -1
  49. package/dist-server/mcp/fixtures/hotkey-mcp.mjs +1 -1
  50. package/dist-server/mcp/fixtures/mihome-mcp.mjs +1 -1
  51. package/dist-server/mcp/fixtures/onvif-mcp.mjs +1 -1
  52. package/dist-server/mcp/fixtures/shell-mcp.mjs +1 -1
  53. package/dist-server/mcp/fixtures/yunxiangji-mcp.mjs +1 -1
  54. package/dist-server/mcp/hotkey-agent-docs.mjs +1 -1
  55. package/dist-server/mcp/hotkey-driver.mjs +1 -1
  56. package/dist-server/mcp/hotkey-handlers.mjs +1 -1
  57. package/dist-server/mcp/hotkey-import-validate.mjs +1 -1
  58. package/dist-server/mcp/hotkey-store.mjs +1 -1
  59. package/dist-server/mcp/http-client.mjs +1 -1
  60. package/dist-server/mcp/http-pipe.mjs +1 -1
  61. package/dist-server/mcp/local-probe.mjs +1 -1
  62. package/dist-server/mcp/marketplace.mjs +1 -1
  63. package/dist-server/mcp/onvif-handlers.mjs +1 -1
  64. package/dist-server/mcp/parse-server-json.mjs +1 -1
  65. package/dist-server/mcp/paths.mjs +1 -1
  66. package/dist-server/mcp/routes.mjs +1 -1
  67. package/dist-server/mcp/schema.mjs +1 -1
  68. package/dist-server/mcp/settings.mjs +1 -1
  69. package/dist-server/mcp/shell-approval.mjs +1 -1
  70. package/dist-server/mcp/shell-policy.mjs +1 -1
  71. package/dist-server/mcp/shell-trash.mjs +1 -1
  72. package/dist-server/mcp/stdio-pipe.mjs +1 -1
  73. package/dist-server/mcp/store.mjs +1 -1
  74. package/dist-server/mcp/task-notify.mjs +1 -1
  75. package/dist-server/mcp/ws-connect.mjs +1 -1
  76. package/dist-server/mcp/yunxiangji.mjs +1 -1
  77. package/dist-server/media-cache.mjs +1 -1
  78. package/dist-server/mihome/cloud.mjs +1 -1
  79. package/dist-server/mihome/devices.mjs +1 -1
  80. package/dist-server/mihome/local.mjs +1 -1
  81. package/dist-server/mihome/mcp-desc.mjs +1 -1
  82. package/dist-server/mihome/queue.mjs +1 -1
  83. package/dist-server/mihome/rc4.mjs +1 -1
  84. package/dist-server/mihome/routes.mjs +1 -1
  85. package/dist-server/mihome/service.mjs +1 -1
  86. package/dist-server/mihome/sign.mjs +1 -1
  87. package/dist-server/mihome/spec.mjs +1 -1
  88. package/dist-server/mihome/store.mjs +1 -1
  89. package/dist-server/onboard-preview.mjs +1 -1
  90. package/dist-server/tab-focus.mjs +1 -1
  91. package/dist-server/voice-wake.mjs +1 -1
  92. package/package.json +2 -4
  93. package/dist/assets/index-C1bPuFAs.js +0 -45
@@ -1 +1 @@
1
- const _0x4a0894=_0x23fa;(function(_0x3d7a19,_0x31e760){const _0x114fe1=_0x23fa,_0x295cb1=_0x3d7a19();while(!![]){try{const _0x3642f8=parseInt(_0x114fe1(0x1a4))/0x1+-parseInt(_0x114fe1(0x196))/0x2+parseInt(_0x114fe1(0x195))/0x3*(-parseInt(_0x114fe1(0x19b))/0x4)+-parseInt(_0x114fe1(0x19a))/0x5*(parseInt(_0x114fe1(0x199))/0x6)+parseInt(_0x114fe1(0x191))/0x7+parseInt(_0x114fe1(0x19e))/0x8*(parseInt(_0x114fe1(0x190))/0x9)+parseInt(_0x114fe1(0x19c))/0xa;if(_0x3642f8===_0x31e760)break;else _0x295cb1['push'](_0x295cb1['shift']());}catch(_0x2ea8f9){_0x295cb1['push'](_0x295cb1['shift']());}}}(_0x4c4d,0xd57a1));export const PTZ_ACTIONS=['up',_0x4a0894(0x1a0),_0x4a0894(0x193),_0x4a0894(0x18f),_0x4a0894(0x18c),_0x4a0894(0x197)+'n',_0x4a0894(0x1a1)+'ut'];export const ONVIF_PTZ_SPEED=0.45;export const ONBOARD_FOLLOW_DEADZONE=0.15;function _0x4c4d(){const _0x453628=['BwLU','CMLNAhq','mtu3nZm0oxPzt2XPwG','mtiWmZC1nJrRANj3wLO','Bw92zq','BgvMDa','5lIn5PsV5OYb55Qe5lQr5y+W','mte1ohvADfDRsW','nZu3oti4wujmwNHv','EM9VBv9P','ywjZ','mtm3nJeWrLvIz2vj','mtKWEMr4rvbY','nde0nhrAsvbrAG','nJmXntyWCLbwv1v2','5P2/6l295Pge5yop5As05RkH','mJrbww9ktwW','5PYj5y+y54sM','zg93BG','EM9VBv9V','Bwf4','zM9SBg93','mJe2mJaWD3bjvLHQ','C3rVCa','zw50CMLL'];_0x4c4d=function(){return _0x453628;};return _0x4c4d();}export const GAMEPAD_DEADZONE=0.18;export const ONBOARD_NUDGE_DEGREES=0xe;export const PTZ_HOLD_FOLLOW_DELAY_MS=0x118;export function clampPtzSpeed(_0x5f0121){const _0x34a017=_0x4a0894,_0x9423ac=Number(_0x5f0121);if(!Number['isFini'+'te'](_0x9423ac))return 0x0;return Math[_0x34a017(0x1a2)](-0x1,Math[_0x34a017(0x18e)](0x1,_0x9423ac));}function discreteDir(_0xf56f69,_0x1bc8c4){if(_0xf56f69>_0x1bc8c4)return 0x1;if(_0xf56f69<-_0x1bc8c4)return-0x1;return 0x0;}export function payloadForAction(_0x5c4338){const _0x4f7046=_0x4a0894;switch(_0x5c4338){case _0x4f7046(0x18c):return{'action':_0x4f7046(0x18c)};case'up':return{'action':_0x4f7046(0x1a3),'h_dir':0x0,'v_dir':0x1};case _0x4f7046(0x1a0):return{'action':_0x4f7046(0x1a3),'h_dir':0x0,'v_dir':-0x1};case _0x4f7046(0x193):return{'action':_0x4f7046(0x1a3),'h_dir':-0x1,'v_dir':0x0};case'right':return{'action':_0x4f7046(0x1a3),'h_dir':0x1,'v_dir':0x0};case _0x4f7046(0x197)+'n':case _0x4f7046(0x1a1)+'ut':throw new Error(_0x4f7046(0x19d)+_0x4f7046(0x19f));default:throw new Error(_0x4f7046(0x194)+'方向');}}function _0x23fa(_0x48f74c,_0x4d5cf6){_0x48f74c=_0x48f74c-0x18c;const _0x4c4db1=_0x4c4d();let _0x23fa9b=_0x4c4db1[_0x48f74c];if(_0x23fa['SinphD']===undefined){var _0x40f80a=function(_0x61309d){const _0x52241d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5f0121='',_0x9423ac='';for(let _0xf56f69=0x0,_0x1bc8c4,_0x5c4338,_0x314076=0x0;_0x5c4338=_0x61309d['charAt'](_0x314076++);~_0x5c4338&&(_0x1bc8c4=_0xf56f69%0x4?_0x1bc8c4*0x40+_0x5c4338:_0x5c4338,_0xf56f69++%0x4)?_0x5f0121+=String['fromCharCode'](0xff&_0x1bc8c4>>(-0x2*_0xf56f69&0x6)):0x0){_0x5c4338=_0x52241d['indexOf'](_0x5c4338);}for(let _0x47e60b=0x0,_0xd862ab=_0x5f0121['length'];_0x47e60b<_0xd862ab;_0x47e60b++){_0x9423ac+='%'+('00'+_0x5f0121['charCodeAt'](_0x47e60b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9423ac);};_0x23fa['ZHaoPn']=_0x40f80a,_0x23fa['WYoSIU']={},_0x23fa['SinphD']=!![];}const _0x3ddadf=_0x4c4db1[0x0],_0x4154a3=_0x48f74c+_0x3ddadf,_0x3afa4d=_0x23fa['WYoSIU'][_0x4154a3];return!_0x3afa4d?(_0x23fa9b=_0x23fa['ZHaoPn'](_0x23fa9b),_0x23fa['WYoSIU'][_0x4154a3]=_0x23fa9b):_0x23fa9b=_0x3afa4d,_0x23fa9b;}export function payloadForNudge(_0x314076){const _0x42d919=_0x4a0894;switch(_0x314076){case'up':case _0x42d919(0x1a0):case _0x42d919(0x193):case _0x42d919(0x18f):return{'action':_0x42d919(0x192),'direction':_0x314076,'degrees':ONBOARD_NUDGE_DEGREES};default:throw new Error('不支持的云台'+'方向');}}export function payloadForVector(_0x47e60b,_0xd862ab,_0x699f69=ONBOARD_FOLLOW_DEADZONE){const _0x4f306c=_0x4a0894,_0x2dcbec=clampPtzSpeed(_0x47e60b),_0x3f520c=clampPtzSpeed(_0xd862ab),_0x282c7e=discreteDir(_0x2dcbec,_0x699f69),_0x4a1fe7=discreteDir(_0x3f520c,_0x699f69);if(!_0x282c7e&&!_0x4a1fe7)return{'action':_0x4f306c(0x18c)};return{'action':_0x4f306c(0x1a3),'h_dir':_0x282c7e,'v_dir':_0x4a1fe7};}export function onvifVectorForAction(_0x445bbd,_0x156625=ONVIF_PTZ_SPEED){const _0x4aae53=_0x4a0894;switch(_0x445bbd){case _0x4aae53(0x18c):return null;case'up':return{'x':0x0,'y':_0x156625};case _0x4aae53(0x1a0):return{'x':0x0,'y':-_0x156625};case _0x4aae53(0x193):return{'x':-_0x156625,'y':0x0};case'right':return{'x':_0x156625,'y':0x0};case _0x4aae53(0x197)+'n':return{'x':0x0,'y':0x0,'zoom':_0x156625};case _0x4aae53(0x1a1)+'ut':return{'x':0x0,'y':0x0,'zoom':-_0x156625};default:throw new Error(_0x4aae53(0x194)+'方向');}}export function actionFromGamepadAxes(_0x318ba7,_0x264bb8,_0x207179=GAMEPAD_DEADZONE){const _0x350029=_0x4a0894,_0xf9310e=clampPtzSpeed(_0x318ba7),_0x469bbf=clampPtzSpeed(_0x264bb8);if(Math['abs'](_0xf9310e)<_0x207179&&Math[_0x350029(0x198)](_0x469bbf)<_0x207179)return'';if(Math[_0x350029(0x198)](_0xf9310e)>=Math['abs'](_0x469bbf))return _0xf9310e>0x0?_0x350029(0x18f):_0x350029(0x193);return _0x469bbf>0x0?_0x350029(0x1a0):'up';}export const GAMEPAD_DPAD_MAP={0xc:'up',0xd:_0x4a0894(0x1a0),0xe:_0x4a0894(0x193),0xf:_0x4a0894(0x18f)};export function actionFromGamepadDpad(_0x4f35d7=[]){const _0x4f79c6=_0x4a0894;for(const [_0x5a0cae,_0x3c196b]of Object[_0x4f79c6(0x18d)+'s'](GAMEPAD_DPAD_MAP)){if(_0x4f35d7[Number(_0x5a0cae)])return _0x3c196b;}return'';}export function actionFromGamepadInput({axes:axes=[0x0,0x0],dpad:dpad=[],zoomIn:zoomIn=![],zoomOut:zoomOut=![]}={}){const _0x240dfb=_0x4a0894,_0x553149=actionFromGamepadAxes(axes[0x0]??0x0,axes[0x1]??0x0);if(_0x553149)return _0x553149;const _0x3f236f=actionFromGamepadDpad(dpad);if(_0x3f236f)return _0x3f236f;if(zoomIn)return _0x240dfb(0x197)+'n';if(zoomOut)return'zoom_o'+'ut';return'';}export function merge595LampStyle(_0x2c6eb3,_0x19ce9e=0x0){return _0x2c6eb3&0x1f|_0x19ce9e&0xe0;}
1
+ const _0x64064a=_0xc380;(function(_0x4a9966,_0x38ab0e){const _0x197c43=_0xc380,_0x3e4176=_0x4a9966();while(!![]){try{const _0x585821=parseInt(_0x197c43(0x1b3))/0x1+-parseInt(_0x197c43(0x1a6))/0x2+-parseInt(_0x197c43(0x1b8))/0x3*(parseInt(_0x197c43(0x1a5))/0x4)+parseInt(_0x197c43(0x1ab))/0x5+-parseInt(_0x197c43(0x1b9))/0x6*(-parseInt(_0x197c43(0x1b7))/0x7)+-parseInt(_0x197c43(0x1b2))/0x8*(parseInt(_0x197c43(0x1a4))/0x9)+parseInt(_0x197c43(0x1a7))/0xa;if(_0x585821===_0x38ab0e)break;else _0x3e4176['push'](_0x3e4176['shift']());}catch(_0x2d4f2a){_0x3e4176['push'](_0x3e4176['shift']());}}}(_0x7c14,0x6fc1a));export const PTZ_ACTIONS=['up',_0x64064a(0x1a3),_0x64064a(0x1b1),_0x64064a(0x1b4),_0x64064a(0x1aa),_0x64064a(0x1af)+'n',_0x64064a(0x1a1)+'ut'];export const ONVIF_PTZ_SPEED=0.45;function _0x7c14(){const _0x8451f2=['EM9VBv9V','zM9SBg93','zg93BG','oxDVD1rqyG','mte2CurXzNnd','mti3mdaZneX2ELLrvW','mtqYnZK2odb1y3Hztvq','Bwf4','BwLU','C3rVCa','mtiYmJK4nvvlB0j2Ca','5P2/6l295Pge5yop5As05RkH','AxngAw5P','5lIn5PsV5OYb55Qe5lQr5y+W','EM9VBv9P','zw50CMLL','BgvMDa','nta0ndKZnKHxBuXxvW','ndKYnZq4suvOzNrM','CMLNAhq','ywjZ','Bw92zq','odq3turNA0rO','nty2otrRD29yz3G','nti2mMjzEuDfuG','5PYj5y+y54sM'];_0x7c14=function(){return _0x8451f2;};return _0x7c14();}export const ONBOARD_FOLLOW_DEADZONE=0.15;export const GAMEPAD_DEADZONE=0.18;export const ONBOARD_NUDGE_DEGREES=0xe;export const PTZ_HOLD_FOLLOW_DELAY_MS=0x118;export function clampPtzSpeed(_0x11f161){const _0x4e2776=_0x64064a,_0x53e039=Number(_0x11f161);if(!Number[_0x4e2776(0x1ad)+'te'](_0x53e039))return 0x0;return Math[_0x4e2776(0x1a8)](-0x1,Math[_0x4e2776(0x1a9)](0x1,_0x53e039));}function discreteDir(_0x2c4f9e,_0x30938f){if(_0x2c4f9e>_0x30938f)return 0x1;if(_0x2c4f9e<-_0x30938f)return-0x1;return 0x0;}export function payloadForAction(_0x47d403){const _0x515345=_0x64064a;switch(_0x47d403){case _0x515345(0x1aa):return{'action':'stop'};case'up':return{'action':_0x515345(0x1a2),'h_dir':0x0,'v_dir':0x1};case _0x515345(0x1a3):return{'action':_0x515345(0x1a2),'h_dir':0x0,'v_dir':-0x1};case'left':return{'action':_0x515345(0x1a2),'h_dir':-0x1,'v_dir':0x0};case _0x515345(0x1b4):return{'action':_0x515345(0x1a2),'h_dir':0x1,'v_dir':0x0};case _0x515345(0x1af)+'n':case _0x515345(0x1a1)+'ut':throw new Error(_0x515345(0x1ac)+_0x515345(0x1ba));default:throw new Error('不支持的云台'+'方向');}}export function payloadForNudge(_0x524547){const _0x42d678=_0x64064a;switch(_0x524547){case'up':case _0x42d678(0x1a3):case _0x42d678(0x1b1):case _0x42d678(0x1b4):return{'action':_0x42d678(0x1b6),'direction':_0x524547,'degrees':ONBOARD_NUDGE_DEGREES};default:throw new Error('不支持的云台'+'方向');}}function _0xc380(_0x121fe0,_0x4c60b4){_0x121fe0=_0x121fe0-0x1a1;const _0x7c1472=_0x7c14();let _0xc380ab=_0x7c1472[_0x121fe0];if(_0xc380['SlWkVH']===undefined){var _0x440b5e=function(_0x59740f){const _0xa0351c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x11f161='',_0x53e039='';for(let _0x2c4f9e=0x0,_0x30938f,_0x47d403,_0x524547=0x0;_0x47d403=_0x59740f['charAt'](_0x524547++);~_0x47d403&&(_0x30938f=_0x2c4f9e%0x4?_0x30938f*0x40+_0x47d403:_0x47d403,_0x2c4f9e++%0x4)?_0x11f161+=String['fromCharCode'](0xff&_0x30938f>>(-0x2*_0x2c4f9e&0x6)):0x0){_0x47d403=_0xa0351c['indexOf'](_0x47d403);}for(let _0x545751=0x0,_0x56a785=_0x11f161['length'];_0x545751<_0x56a785;_0x545751++){_0x53e039+='%'+('00'+_0x11f161['charCodeAt'](_0x545751)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x53e039);};_0xc380['JlGOJN']=_0x440b5e,_0xc380['dKkVpR']={},_0xc380['SlWkVH']=!![];}const _0x24e7d9=_0x7c1472[0x0],_0x5ed8d7=_0x121fe0+_0x24e7d9,_0x1424ee=_0xc380['dKkVpR'][_0x5ed8d7];return!_0x1424ee?(_0xc380ab=_0xc380['JlGOJN'](_0xc380ab),_0xc380['dKkVpR'][_0x5ed8d7]=_0xc380ab):_0xc380ab=_0x1424ee,_0xc380ab;}export function payloadForVector(_0x545751,_0x56a785,_0x262c37=ONBOARD_FOLLOW_DEADZONE){const _0x4159d3=_0x64064a,_0x18af78=clampPtzSpeed(_0x545751),_0x40c4b9=clampPtzSpeed(_0x56a785),_0x2fb568=discreteDir(_0x18af78,_0x262c37),_0xe6ab89=discreteDir(_0x40c4b9,_0x262c37);if(!_0x2fb568&&!_0xe6ab89)return{'action':_0x4159d3(0x1aa)};return{'action':_0x4159d3(0x1a2),'h_dir':_0x2fb568,'v_dir':_0xe6ab89};}export function onvifVectorForAction(_0x249cd7,_0xb5bbda=ONVIF_PTZ_SPEED){const _0x2c5abf=_0x64064a;switch(_0x249cd7){case _0x2c5abf(0x1aa):return null;case'up':return{'x':0x0,'y':_0xb5bbda};case _0x2c5abf(0x1a3):return{'x':0x0,'y':-_0xb5bbda};case'left':return{'x':-_0xb5bbda,'y':0x0};case _0x2c5abf(0x1b4):return{'x':_0xb5bbda,'y':0x0};case'zoom_i'+'n':return{'x':0x0,'y':0x0,'zoom':_0xb5bbda};case _0x2c5abf(0x1a1)+'ut':return{'x':0x0,'y':0x0,'zoom':-_0xb5bbda};default:throw new Error(_0x2c5abf(0x1ae)+'方向');}}export function actionFromGamepadAxes(_0x1aa5ab,_0x57b9fc,_0x2dc8fc=GAMEPAD_DEADZONE){const _0x1e1156=_0x64064a,_0x15eb6f=clampPtzSpeed(_0x1aa5ab),_0x2ed740=clampPtzSpeed(_0x57b9fc);if(Math[_0x1e1156(0x1b5)](_0x15eb6f)<_0x2dc8fc&&Math[_0x1e1156(0x1b5)](_0x2ed740)<_0x2dc8fc)return'';if(Math[_0x1e1156(0x1b5)](_0x15eb6f)>=Math[_0x1e1156(0x1b5)](_0x2ed740))return _0x15eb6f>0x0?_0x1e1156(0x1b4):_0x1e1156(0x1b1);return _0x2ed740>0x0?_0x1e1156(0x1a3):'up';}export const GAMEPAD_DPAD_MAP={0xc:'up',0xd:_0x64064a(0x1a3),0xe:_0x64064a(0x1b1),0xf:_0x64064a(0x1b4)};export function actionFromGamepadDpad(_0x5f3964=[]){const _0x3201ab=_0x64064a;for(const [_0x65bd1f,_0x100266]of Object[_0x3201ab(0x1b0)+'s'](GAMEPAD_DPAD_MAP)){if(_0x5f3964[Number(_0x65bd1f)])return _0x100266;}return'';}export function actionFromGamepadInput({axes:axes=[0x0,0x0],dpad:dpad=[],zoomIn:zoomIn=![],zoomOut:zoomOut=![]}={}){const _0x57efc9=_0x64064a,_0x46f76c=actionFromGamepadAxes(axes[0x0]??0x0,axes[0x1]??0x0);if(_0x46f76c)return _0x46f76c;const _0xdecfb3=actionFromGamepadDpad(dpad);if(_0xdecfb3)return _0xdecfb3;if(zoomIn)return _0x57efc9(0x1af)+'n';if(zoomOut)return _0x57efc9(0x1a1)+'ut';return'';}export function merge595LampStyle(_0x4e00e7,_0x43f155=0x0){return _0x4e00e7&0x1f|_0x43f155&0xe0;}
@@ -1 +1 @@
1
- (function(_0x16ea93,_0x3e14aa){var _0x22c7c2=_0x5e0f,_0x9ceeef=_0x16ea93();while(!![]){try{var _0x452e0c=parseInt(_0x22c7c2(0x6c))/0x1*(parseInt(_0x22c7c2(0x6f))/0x2)+-parseInt(_0x22c7c2(0x6a))/0x3+-parseInt(_0x22c7c2(0x74))/0x4*(-parseInt(_0x22c7c2(0x71))/0x5)+parseInt(_0x22c7c2(0x72))/0x6+-parseInt(_0x22c7c2(0x73))/0x7*(parseInt(_0x22c7c2(0x70))/0x8)+parseInt(_0x22c7c2(0x6e))/0x9+parseInt(_0x22c7c2(0x6d))/0xa*(-parseInt(_0x22c7c2(0x6b))/0xb);if(_0x452e0c===_0x3e14aa)break;else _0x9ceeef['push'](_0x9ceeef['shift']());}catch(_0x422e03){_0x9ceeef['push'](_0x9ceeef['shift']());}}}(_0x5985,0x5ea39));export{resolveHomePath,mossGuardRedirect}from'../src/navigation/home-path.mjs';function _0x5e0f(_0x232ca4,_0x6e4b35){_0x232ca4=_0x232ca4-0x6a;var _0x59854f=_0x5985();var _0x5e0fce=_0x59854f[_0x232ca4];if(_0x5e0f['PfmzGr']===undefined){var _0x5255da=function(_0xacb08b){var _0xcad049='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1e7c6c='',_0x4f471c='';for(var _0x2ec5e7=0x0,_0x3d4b7e,_0x362508,_0x2b6905=0x0;_0x362508=_0xacb08b['charAt'](_0x2b6905++);~_0x362508&&(_0x3d4b7e=_0x2ec5e7%0x4?_0x3d4b7e*0x40+_0x362508:_0x362508,_0x2ec5e7++%0x4)?_0x1e7c6c+=String['fromCharCode'](0xff&_0x3d4b7e>>(-0x2*_0x2ec5e7&0x6)):0x0){_0x362508=_0xcad049['indexOf'](_0x362508);}for(var _0x5a2c60=0x0,_0x42b662=_0x1e7c6c['length'];_0x5a2c60<_0x42b662;_0x5a2c60++){_0x4f471c+='%'+('00'+_0x1e7c6c['charCodeAt'](_0x5a2c60)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f471c);};_0x5e0f['MfLyTG']=_0x5255da,_0x5e0f['WRuIxa']={},_0x5e0f['PfmzGr']=!![];}var _0x2bd9ef=_0x59854f[0x0],_0x5a00d2=_0x232ca4+_0x2bd9ef,_0x392349=_0x5e0f['WRuIxa'][_0x5a00d2];return!_0x392349?(_0x5e0fce=_0x5e0f['MfLyTG'](_0x5e0fce),_0x5e0f['WRuIxa'][_0x5a00d2]=_0x5e0fce):_0x5e0fce=_0x392349,_0x5e0fce;}function _0x5985(){var _0x4baf5e=['mJiWA1Dvtuf2','nJiXnZqXnLvmCwLiva','nMPOrMvQuG','mZK3ntjAquDZwvu','mJaXnw5HtLH1EG','nJi5odGWAKPovLnh','otH6ChzUC2S','mJe5nNPOC3PryG','mJe4mZCWoxv3BM1xzq','mtCYnZK5shHRCerH','mtCXmJe5tenVsefL'];_0x5985=function(){return _0x4baf5e;};return _0x5985();}
1
+ (function(_0x20eaad,_0x3554fc){var _0x41b4c8=_0x3744,_0x550128=_0x20eaad();while(!![]){try{var _0x4a00ec=parseInt(_0x41b4c8(0xc6))/0x1+-parseInt(_0x41b4c8(0xc7))/0x2*(parseInt(_0x41b4c8(0xbf))/0x3)+parseInt(_0x41b4c8(0xc5))/0x4+parseInt(_0x41b4c8(0xc1))/0x5+-parseInt(_0x41b4c8(0xc4))/0x6*(-parseInt(_0x41b4c8(0xbe))/0x7)+parseInt(_0x41b4c8(0xc0))/0x8+-parseInt(_0x41b4c8(0xc2))/0x9*(parseInt(_0x41b4c8(0xc3))/0xa);if(_0x4a00ec===_0x3554fc)break;else _0x550128['push'](_0x550128['shift']());}catch(_0x596adc){_0x550128['push'](_0x550128['shift']());}}}(_0x1b84,0x32407));export{resolveHomePath,mossGuardRedirect}from'../src/navigation/home-path.mjs';function _0x3744(_0x508b8b,_0x1257a4){_0x508b8b=_0x508b8b-0xbe;var _0x1b842d=_0x1b84();var _0x3744ca=_0x1b842d[_0x508b8b];if(_0x3744['rRWlqQ']===undefined){var _0x5e86c1=function(_0x4b2d01){var _0x80f6e0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xb39017='',_0x437f03='';for(var _0x204b93=0x0,_0x505841,_0x398ffa,_0x3952cb=0x0;_0x398ffa=_0x4b2d01['charAt'](_0x3952cb++);~_0x398ffa&&(_0x505841=_0x204b93%0x4?_0x505841*0x40+_0x398ffa:_0x398ffa,_0x204b93++%0x4)?_0xb39017+=String['fromCharCode'](0xff&_0x505841>>(-0x2*_0x204b93&0x6)):0x0){_0x398ffa=_0x80f6e0['indexOf'](_0x398ffa);}for(var _0x5c7f49=0x0,_0x234f96=_0xb39017['length'];_0x5c7f49<_0x234f96;_0x5c7f49++){_0x437f03+='%'+('00'+_0xb39017['charCodeAt'](_0x5c7f49)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x437f03);};_0x3744['njibba']=_0x5e86c1,_0x3744['BoMVjN']={},_0x3744['rRWlqQ']=!![];}var _0x22fc79=_0x1b842d[0x0],_0x35f639=_0x508b8b+_0x22fc79,_0x2448a8=_0x3744['BoMVjN'][_0x35f639];return!_0x2448a8?(_0x3744ca=_0x3744['njibba'](_0x3744ca),_0x3744['BoMVjN'][_0x35f639]=_0x3744ca):_0x3744ca=_0x2448a8,_0x3744ca;}function _0x1b84(){var _0x29bc3d=['ndi2mJyWwNvrvvDs','mJaWody4m3HrCxjJuW','mZbTugrQsMe','ndK5mtm0ugT1rMHu','mteYnZGYneLKyKv2zW','mtCXmdiWChPfu1n6','mJa0ALzgzxDS','n2TJs0zxEq','mZKWoxLWvLfTCW','mZa5nta0oezAD1zkAq'];_0x1b84=function(){return _0x29bc3d;};return _0x1b84();}
@@ -1 +1 @@
1
- const _0x48ebcd=_0x53b0;(function(_0x5e5b2e,_0x3aa207){const _0x2c25a2=_0x53b0,_0x1a5031=_0x5e5b2e();while(!![]){try{const _0x4637a1=parseInt(_0x2c25a2(0x202))/0x1+parseInt(_0x2c25a2(0x24f))/0x2*(-parseInt(_0x2c25a2(0x12c))/0x3)+parseInt(_0x2c25a2(0x1d0))/0x4*(parseInt(_0x2c25a2(0x1a6))/0x5)+-parseInt(_0x2c25a2(0x1f0))/0x6*(parseInt(_0x2c25a2(0x1f6))/0x7)+-parseInt(_0x2c25a2(0x213))/0x8*(parseInt(_0x2c25a2(0x149))/0x9)+-parseInt(_0x2c25a2(0x155))/0xa+parseInt(_0x2c25a2(0x1ab))/0xb;if(_0x4637a1===_0x3aa207)break;else _0x1a5031['push'](_0x1a5031['shift']());}catch(_0x541931){_0x1a5031['push'](_0x1a5031['shift']());}}}(_0x4ec2,0x98f20));import _0x24e640 from'node:fs';import _0x8ea7c3 from'node:os';import _0x30377c from'node:path';import _0x5907f2 from'node:http';import{execFile}from'node:child_process';import{fileURLToPath}from'node:url';import _0x5c053c from'express';import _0x4d0b15 from'cors';import{disconnectCamera,registerCameraRoutes,setCameraHooks,stripOnboardCameraConfig}from'./camera.mjs';import{findDevice,isBoardLabel,normalizeMac,resolveUpsertId}from'./device-identity.mjs';import{migrateLegacyConfig,requireActiveDevice,setCamera,upsertDevice}from'./device-registry.mjs';import{applyHealth,isOnline}from'./device-presence.mjs';import{probeDevice}from'./device-probe.mjs';import{applyChatDelta,chatSyncIntervalMs,shouldFetchChatSync}from'./device-chat-sync.mjs';import{createDeviceHttpQueue}from'./device-http.mjs';import{shouldApplyRemoteVoice,voiceFromWakeAck}from'./voice-wake.mjs';import{registerDeviceRoutes}from'./device-routes.mjs';import{buildSessionView,withActiveDevice}from'./device-session.mjs';import{attachRequestDevice,getRequestDevice,voicesFromRuntime}from'./device-focus.mjs';import{createDeviceRuntime}from'./device-runtime.mjs';import{discoverMossDevices}from'./lan-discover.mjs';import{registerMcpRoutes}from'./mcp/routes.mjs';import{initBridgeWebSocket,bridgeManager}from'./mcp/bridge-manager.mjs';import{setTaskNotifyHooks}from'./mcp/task-notify.mjs';import{loadMcpSettings}from'./mcp/settings.mjs';import{exportYunxiangjiInbox,ingestDeviceYunxiangjiCreates,maybeAckYunxiangjiFromChat,maybeApplyYunxiangjiFromChat}from'./mcp/yunxiangji.mjs';import{prefetchFfmpeg}from'./ffmpeg.mjs';import{registerMediaRoutes}from'./media-cache.mjs';import{validateIrImportPayload}from'./ir-import-validate.mjs';import{applyDeviceHealthTo,normalizeCaps}from'./board-presets.mjs';import{registerMihomeRoutes}from'./mihome/routes.mjs';import{clearRuntime,nextListenPort,reclaimListenPort,sleep}from'./listen-port.mjs';import{attachViteDev,shouldAttachDevUi}from'./dev-ui.mjs';const PORT=Number(process[_0x48ebcd(0x139)][_0x48ebcd(0x223)]||0xec4),ROOT_DIR=_0x30377c[_0x48ebcd(0x1b2)](_0x30377c[_0x48ebcd(0x217)+'e'](fileURLToPath(import.meta.url)),'..'),DIST_DIR=_0x30377c[_0x48ebcd(0x1b2)](ROOT_DIR,_0x48ebcd(0x231)),CONFIG_DIR=_0x30377c[_0x48ebcd(0x1b2)](_0x8ea7c3[_0x48ebcd(0x1d5)+'r'](),_0x48ebcd(0x22b)+_0x48ebcd(0x1c6)+'p'),CONFIG_PATH=_0x30377c[_0x48ebcd(0x1b2)](CONFIG_DIR,_0x48ebcd(0x1c4)+'.json'),RUNTIME_PATH=_0x30377c[_0x48ebcd(0x1b2)](CONFIG_DIR,_0x48ebcd(0x183)+_0x48ebcd(0x19b));function loadConfig(){const _0x4044d7=_0x48ebcd;try{return migrateLegacyConfig(JSON[_0x4044d7(0x1d1)](_0x24e640['readFi'+_0x4044d7(0x1be)](CONFIG_PATH,_0x4044d7(0x15b))));}catch{return migrateLegacyConfig({'deviceBaseUrl':'','mqtt':null,'bound':![]});}}function saveConfig(_0x551684){const _0x177aec=_0x48ebcd;_0x24e640['mkdirS'+'ync'](CONFIG_DIR,{'recursive':!![]}),_0x24e640['writeF'+_0x177aec(0x255)+'c'](CONFIG_PATH,JSON[_0x177aec(0x13a)+_0x177aec(0x147)](_0x551684,null,0x2));}function applyDeviceHealth(_0x262ba0,_0xfefc1c={}){const _0x110645=_0x48ebcd;applyDeviceHealthTo(config,_0x262ba0);if(!_0x262ba0||typeof _0x262ba0!==_0x110645(0x180))return null;const _0x3a09cd=String(_0xfefc1c[_0x110645(0x1b7)+'Id']||_0x262ba0[_0x110645(0x1b7)+_0x110645(0x153)]||'')[_0x110645(0x1b1)](),_0x392a61=normalizeMac(_0x262ba0[_0x110645(0x1a8)]),_0x2ededd=_0xfefc1c['id']||config[_0x110645(0x1e3)+_0x110645(0x247)+'Id'],_0x3940c2=findDevice(config,{'mac':_0x392a61,'clientId':_0x3a09cd,'id':_0x2ededd}),_0x54ac26=resolveUpsertId(config,{'mac':_0x392a61,'clientId':_0x3a09cd,'id':_0x3940c2?.['id']||_0x2ededd});if(!_0x54ac26)return null;const _0x462c6d=_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)]&&!isBoardLabel(_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)])?_0x262ba0[_0x110645(0x23c)+_0x110645(0x221)]:undefined;upsertDevice(config,{'id':_0x54ac26,'mac':_0x392a61||undefined,'clientId':_0x3a09cd||_0x3940c2?.['client'+'Id'],'board':_0x262ba0[_0x110645(0x1b0)]||_0x262ba0[_0x110645(0x167)],'product':_0x262ba0['produc'+'t'],'hostname':_0x262ba0[_0x110645(0x1a2)+'me'],'displayName':_0x462c6d,'ip':_0x262ba0['ip']});const _0x40be73=applyHealth(config[_0x110645(0x16b)+'s'][_0x54ac26],_0x262ba0);return config[_0x110645(0x16b)+'s'][_0x54ac26]=_0x40be73,_0x40be73;}function activeRecord(){const _0x11a7b5=_0x48ebcd;return config[_0x11a7b5(0x16b)+'s']?.[config[_0x11a7b5(0x1e3)+_0x11a7b5(0x247)+'Id']]||null;}function currentCaps(){const _0x4a19c4=_0x48ebcd,_0x227d4c=focusedRecord();return normalizeCaps({'board':_0x227d4c?.[_0x4a19c4(0x1b0)]||config[_0x4a19c4(0x1b0)],'name':_0x227d4c?.[_0x4a19c4(0x1b0)]||config[_0x4a19c4(0x1b0)],'product':_0x227d4c?.['produc'+'t']||config[_0x4a19c4(0x22a)+'t']});}function currentMossOnline(){const _0x4e9ce7=_0x48ebcd,_0x5cdef0=focusedRecord();if(_0x5cdef0&&isOnline(_0x5cdef0['lastSe'+'en'],Date[_0x4e9ce7(0x1e6)]()))return!![];return![];}function writeRuntime(_0x5d741a){const _0x5a1b6b=_0x48ebcd;try{_0x24e640[_0x5a1b6b(0x14a)+_0x5a1b6b(0x1fd)](CONFIG_DIR,{'recursive':!![]}),_0x24e640[_0x5a1b6b(0x172)+_0x5a1b6b(0x255)+'c'](RUNTIME_PATH,JSON['string'+_0x5a1b6b(0x147)]({'port':_0x5d741a,'pid':process[_0x5a1b6b(0x14e)],'at':Date[_0x5a1b6b(0x1e6)]()}));}catch(_0x750b1c){console[_0x5a1b6b(0x275)](_0x5a1b6b(0x24e)+_0x5a1b6b(0x150)+':',_0x750b1c[_0x5a1b6b(0x170)+'e']);}}function clearListenRuntime(){clearRuntime(RUNTIME_PATH);}let config=loadConfig();for(const id of Object[_0x48ebcd(0x19e)](config[_0x48ebcd(0x16b)+'s']||{})){const wrap={'camera':config[_0x48ebcd(0x16b)+'s'][id]['camera']};stripOnboardCameraConfig(wrap)&&(config[_0x48ebcd(0x16b)+'s'][id][_0x48ebcd(0x1e9)]=wrap[_0x48ebcd(0x1e9)],saveConfig(config));}let mqttStatus=_0x48ebcd(0x157);const runtime=createDeviceRuntime(),chatSyncTimers=new Map();let presenceTimer=null;const boardQueues=new Map();function focusedRecord(){const _0x283fdb=_0x48ebcd,_0x4af88a=getRequestDevice();if(_0x4af88a?.['id']&&config[_0x283fdb(0x16b)+'s']?.[_0x4af88a['id']])return config[_0x283fdb(0x16b)+'s'][_0x4af88a['id']];return activeRecord();}function runtimeOf(_0x5d7877){const _0x1546e8=_0x48ebcd;return runtime['of'](_0x5d7877||focusedRecord()?.['id']||config[_0x1546e8(0x1e3)+_0x1546e8(0x247)+'Id']);}function deviceQueue(_0x7dc161){const _0x222974=_0x48ebcd,_0x46213d=_0x7dc161||config[_0x222974(0x1e3)+_0x222974(0x247)+'Id']||'_';if(!boardQueues[_0x222974(0x132)](_0x46213d))boardQueues[_0x222974(0x17a)](_0x46213d,createDeviceHttpQueue());return boardQueues[_0x222974(0x19f)](_0x46213d);}function initTaskNotify(){const _0x21cfd2=_0x48ebcd;setTaskNotifyHooks({'emit':emit,'publishWakeAndText':_0x2b8039=>{if(!currentMossOnline())return![];try{return publishWakeAndText(_0x2b8039),!![];}catch{return![];}},'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()[_0x21cfd2(0x1d4)+'TaskCo'+_0x21cfd2(0x12d)]===!![]});}initTaskNotify();const sseClients=new Set();function emit(_0x4f164c,_0x18bdf4){const _0x56857d=_0x48ebcd,_0x39aec1=_0x56857d(0x1de)+'\x20'+_0x4f164c+(_0x56857d(0x15a)+'\x20')+JSON[_0x56857d(0x13a)+'ify'](_0x18bdf4)+'\x0a\x0a';for(const _0x438afd of sseClients){_0x438afd[_0x56857d(0x246)](_0x39aec1);}}function statusPayload(_0x222be6={}){const _0x4902cc=_0x48ebcd;return{...buildSessionView(config,{'mqttStatus':_0x4902cc(0x157),'failCount':0x0,'lastError':'','voices':voicesFromRuntime(config,runtime)}),'status':_0x4902cc(0x157),'bound':!![],'failCount':0x0,'lastError':'',..._0x222be6};}function inferFetchKind(_0x3d2672,_0x4bf37d={}){const _0x2d37d2=_0x48ebcd;if(_0x4bf37d[_0x2d37d2(0x18d)])return _0x4bf37d[_0x2d37d2(0x18d)];if(_0x3d2672['starts'+_0x2d37d2(0x1f7)](_0x2d37d2(0x263)))return _0x2d37d2(0x1ee);if(_0x3d2672===_0x2d37d2(0x1ae)+'h')return'health';if(_0x3d2672[_0x2d37d2(0x1d8)+_0x2d37d2(0x1f7)]('/gimba'+'l'))try{const _0x1f3215=JSON[_0x2d37d2(0x1d1)](_0x4bf37d[_0x2d37d2(0x197)]||'{}');return _0x1f3215[_0x2d37d2(0x21e)]==='stop'?'stop':_0x2d37d2(0x14b);}catch{return _0x2d37d2(0x14b);}return'ir';}function enqueueBoard(_0x3de7a1,_0x2b74a0,_0x28d4c9){return new Promise((_0x191d80,_0xab9614)=>{deviceQueue(_0x28d4c9)['enqueu'+'e'](_0x3de7a1,async()=>{try{_0x191d80(await _0x2b74a0());}catch(_0x4b6638){_0xab9614(_0x4b6638);}});});}async function rawDeviceFetch(_0x58ae73,_0x55e26a={}){const _0x244159=_0x48ebcd,{baseUrl:_0x24af59,useLan:_0x2857b2,kind:_0x389827,timeoutMs:_0xeffbc9,deviceId:_0x160e86,..._0x19835d}=_0x55e26a,_0xf4619c=getRequestDevice(),_0x246018=_0x160e86||_0xf4619c?.['id']||config[_0x244159(0x1e3)+_0x244159(0x247)+'Id'];let _0x24613b=_0x24af59||'';!_0x24613b&&_0x2857b2&&(_0x24613b=config[_0x244159(0x16b)+_0x244159(0x233)+'l']);!_0x24613b&&_0xf4619c?.[_0x244159(0x146)+'l']&&(_0x24613b=_0xf4619c[_0x244159(0x146)+'l']);!_0x24613b&&_0x246018&&(_0x24613b=config['device'+'s']?.[_0x246018]?.[_0x244159(0x146)+'l']||'');if(!_0x24613b)try{_0x24613b=requireActiveDevice(config)[_0x244159(0x146)+'l'];}catch{_0x24613b=config[_0x244159(0x16b)+_0x244159(0x233)+'l'];}if(!_0x24613b){const _0xd58754=new Error(_0x244159(0x1fb));_0xd58754[_0x244159(0x25e)]=0x199;throw _0xd58754;}const _0x444f22=''+_0x24613b+_0x58ae73,_0x5a909b=await fetch(_0x444f22,{..._0x19835d,'signal':_0x55e26a[_0x244159(0x20a)]||AbortSignal[_0x244159(0x1e8)+'t'](_0xeffbc9||0x1f40),'headers':{'Content-Type':_0x244159(0x22e)+_0x244159(0x21a)+_0x244159(0x25d),..._0x55e26a['header'+'s']||{}}}),_0x4eec12=await _0x5a909b[_0x244159(0x135)]();let _0x452050={};try{_0x452050=_0x4eec12?JSON[_0x244159(0x1d1)](_0x4eec12):{};}catch{_0x452050={'raw':_0x4eec12};}if(!_0x5a909b['ok']){const _0x29f10c=new Error(_0x452050[_0x244159(0x170)+'e']||_0x244159(0x144)+'回\x20'+_0x5a909b['status']);_0x29f10c[_0x244159(0x1c3)]=_0x452050;throw _0x29f10c;}return _0x452050;}function deviceFetch(_0x247783,_0xaa3eda={}){const _0x51750f=_0x48ebcd,_0x874d55=getRequestDevice(),_0x1e92ef=_0xaa3eda['device'+'Id']||_0x874d55?.['id']||config[_0x51750f(0x1e3)+_0x51750f(0x247)+'Id'];return enqueueBoard(inferFetchKind(_0x247783,_0xaa3eda),()=>rawDeviceFetch(_0x247783,{..._0xaa3eda,'deviceId':_0x1e92ef}),_0x1e92ef);}function applyVoice(_0x55ee0f,_0x2baabe){const _0x3eb09c=_0x48ebcd,_0x25567d=_0x55ee0f||focusedRecord()?.['id']||config['active'+_0x3eb09c(0x247)+'Id'],_0x1be622=String(_0x2baabe||'')[_0x3eb09c(0x1b1)]();if(!_0x25567d||!_0x1be622)return;const _0x5b655c=runtime['of'](_0x25567d);if(config[_0x3eb09c(0x16b)+'s']?.[_0x25567d])config[_0x3eb09c(0x16b)+'s'][_0x25567d]['voice']=_0x1be622;_0x1be622!==_0x5b655c[_0x3eb09c(0x131)]&&(_0x5b655c[_0x3eb09c(0x131)]=_0x1be622,emit(_0x3eb09c(0x25e),statusPayload()));}function emitChatLines(_0x2db09e,_0x847db5){const _0x34fed8=_0x48ebcd;for(const _0x1b3594 of _0x2db09e){emit(_0x34fed8(0x174),{'type':_0x34fed8(0x23b)+_0x34fed8(0x1cb),'payload':{'role':_0x1b3594['role'],'text':_0x1b3594[_0x34fed8(0x135)],'state':_0x1b3594[_0x34fed8(0x199)],'deviceId':_0x847db5}}),_0x1b3594[_0x34fed8(0x126)]===_0x34fed8(0x168)+'ant'&&maybeAckYunxiangjiFromChat(_0x1b3594[_0x34fed8(0x135)]),(_0x1b3594[_0x34fed8(0x126)]===_0x34fed8(0x1bb)||_0x1b3594[_0x34fed8(0x126)]==='assist'+_0x34fed8(0x18b))&&maybeApplyYunxiangjiFromChat(_0x1b3594['text']);}}async function syncChatNow(_0x3ebcf5){const _0x215d1a=_0x48ebcd,_0x1dad2e=_0x3ebcf5||focusedRecord()?.['id']||config['active'+_0x215d1a(0x247)+'Id'],_0x4b9079=config[_0x215d1a(0x16b)+'s']?.[_0x1dad2e];if(!_0x4b9079?.[_0x215d1a(0x146)+'l'])return;const _0x2e5feb=runtime['of'](_0x1dad2e),_0x3020d6=_0x39e483=>deviceFetch(_0x215d1a(0x12b)+'sync?s'+_0x215d1a(0x148)+_0x39e483,{'timeoutMs':0x7d0,'kind':_0x215d1a(0x1ee),'deviceId':_0x1dad2e,'baseUrl':_0x4b9079[_0x215d1a(0x146)+'l']});let _0x43d101=await _0x3020d6(_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)]),_0x2ef7c4=applyChatDelta({'seq':_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)],'lines':[]},_0x43d101);_0x2ef7c4[_0x215d1a(0x1c0)+'d']&&(_0x43d101=await _0x3020d6(_0x2ef7c4[_0x215d1a(0x13f)]),_0x2ef7c4=applyChatDelta({'seq':_0x2ef7c4[_0x215d1a(0x13f)],'lines':[]},_0x43d101)),_0x2e5feb[_0x215d1a(0x1f5)+_0x215d1a(0x159)]=_0x2ef7c4[_0x215d1a(0x13f)],ingestYunxiangjiFromDevicePayload(_0x43d101,_0x1dad2e),_0x43d101[_0x215d1a(0x131)]&&shouldApplyRemoteVoice({'remoteVoice':_0x43d101[_0x215d1a(0x131)],'localVoice':_0x2e5feb[_0x215d1a(0x131)],'wokeAt':_0x2e5feb[_0x215d1a(0x1b5)]})&&applyVoice(_0x1dad2e,_0x43d101[_0x215d1a(0x131)]),emitChatLines(_0x2ef7c4[_0x215d1a(0x16f)],_0x1dad2e);}function scheduleChatSync(_0x211293){const _0x1ca2a5=_0x48ebcd,_0x5837ff=_0x211293||focusedRecord()?.['id']||config[_0x1ca2a5(0x1e3)+_0x1ca2a5(0x247)+'Id'];if(!_0x5837ff)return;const _0x353d56=chatSyncTimers['get'](_0x5837ff);_0x353d56&&(clearTimeout(_0x353d56),chatSyncTimers['delete'](_0x5837ff));const _0x1f3b6e=chatSyncIntervalMs({'voice':runtime['of'](_0x5837ff)[_0x1ca2a5(0x131)]});if(!_0x1f3b6e)return;chatSyncTimers[_0x1ca2a5(0x17a)](_0x5837ff,setTimeout(()=>{const _0x4a0667=_0x1ca2a5;syncChatNow(_0x5837ff)[_0x4a0667(0x268)](()=>{})[_0x4a0667(0x1a7)+'y'](()=>scheduleChatSync(_0x5837ff));},_0x1f3b6e));}function _0x4ec2(){const _0x5b5c4=['DMvUDc1Z','BMfTzq','yxnZAxn0','5PEG5Rov5BU656Ul6k+T6z+Z','5PYQ5OM+5yIW5yMn56UV6Ag1','zgv2AwnL','y29TBwfU','q29UDgvU','57Y65Bcr6kAb6k+v5y+r55Qe','ywrKzwq','BwvZC2fN','ihn0yxr1','D3jPDgvg','y29UBMvJ','Bxf0Da','zxjYB3i','zgvY','AxnbCNjH','DxnL','5OMR5O+p5Bga5z+F572r5AsX','C2v0','Bc9JB250','5lQr5y+W5O6N5yI25AsX6lsL','yw5NAMKV','CMvZDgfY','Aw5Kl2XH','B2jQzwn0','rMXPz2H0','B2zM','CNvUDgLT','l2fWAs9J','yxjU','y2HHDf9Z','BgLZDgvU','l2DPBwjH','C2vSzwn0','Bwv0Ag9K','yw50','zw91Da','A2LUza','l3L1BNHP','B25SAw5L','6k+35AgR5yAzie1p','Ahr0CdOV','C2f5','5lIa5lU95Qgm6z2I5PYn5yQH','DMvUDhm','6l295BYa5y+r55wm6z2I77YA','DhLWzq','yM9KEq','lJaUmtO','C3rHDgu','BwfW','zs5QC29U','DhjPBMC','6Akr57Mb77Ym6k+356In5ycz','A2v5CW','z2v0','w21JCf0G','DhjLyw0','Ag9ZDg5H','y2uVzgvS','l2fWAq','DfnLCNzL','mteZmZG1DKjAqwzJ','zMLUywXS','BwfJ','AxnJB3zL','q2fJAguT','mJm4ntuYnJbSq21VBLm','vgfZA0nV','C3rHCNq','l2HLywX0','Agf0l3DH','yM9HCMq','DhjPBq','AM9PBG','6k6+5Ash5zYO5zcm5lIaia','A2LSBgvK','D29Rzuf0','Eu5HBwu','y2XPzw50','l2nVBMzP','tu9tuYdML6a','tu9tu19b','C3LZDgvT','Bw1HBMq','DMLJzs9K','BgvtEw5J','yw5K','CMv3B3vU','mw1I','tu9tuYdLV5K','zgv0ywLS','y29UzMLN','w3L1BNHP','zgvZA3rV','l2fJAW','w3nLCNzL','zhK9','uevox0js','zxnZywDL','ie1pu1pJGii','5OIw5zcn56EW5lIn5zci5Rov','l2LYl2nV','zxHPC3rZ','otjKwfHiAKe','CgfYC2u','CgXHDgzV','BMvK','D2fRzu9U','Ag9TzwrP','ufvu','rvjtsu9o','C3rHCNrZ','igfUBM91','DMLJzq','D2fRzuLU','y21K','zgvSzxrL','zxzLBNq6','tLvtrq','ruferfjj','yxnZAwDU','C3rVCa','ywn0AxzL','CMvHDgvZ','5y2G55sO56UV5y+J55Qe5lIk','BM93','5Rs75lIT77Yj77Ym5PQc5PE2','DgLTzw91','y2fTzxjH','ywn0AxzH','u2vYDMvY','57Y65Bcr5Asw6k6+5OIw5yQO','5zYO6l+E5O6L6k+T6z+Z5PYn','y2HHDa','ios7JEIIQ+wfTUs7LUEOIW','mtjgs3P2yvO','A2vLCefS','CI9KzxzP','Chv0','5RkH6io955M76k6W6l+z5y+W','y2HHDen1','mJu5nta2mwXLrhfvDW','v2L0Aa','AhrTBa','Cg9YDa','y3vZDg9T','6k+35ywi6ycj5OUP6k6+5Ash','6z2I77Ym6k+35ywi5OMN6kgm','Ew5J','56UV5y+Jia','zxzPy2uV','6k+356gU6k6K55s16isr5zkm','ue9tva','otKWmJu2sxvLsKzN','6k+35ywi6l+E5O6L6k6+5Ash','u3LUyW','BgfZDeHV','Ew8TBw9Z','Bw1HBMqV','C1rPBwvV','q29UBMvJ','C2LNBMfS','yNvZEq','5zsK6yAs5Pon5l2C6l+h5lQo','CMvZzxrd','l2fWAs9P','CI9PBxbV','yw5UB3vU','B3bLBG','C2v0sgvH','ntK0nen5u2TfAW','CI9SzwfY','w21PAg9T','u1mG5zYW5z2a','zgLYBMfT','CMvXDwvZ','Aw5N','yxrPB24V','Cgf0Aa','l2fWAs9L','B25Jzq','ywn0Aw9U','BMnLigzH','ExvUEgLH','Ev9Uyw1L','iowpIUwqJUE7REERR+wpOW','ue9sva','BM8Ty2fJ','Cg9ZDa','CY1HAq','Cgf5Bg9H','zeLK','zMLSDgvY','ChjVzhvJ','lM1VC3mT','D2fRzq','EgrNlw9W','yxbWBgLJ','tu9tuYdMRAm','DgvZDa','zgLZDa','CI90zxn0','qMfZzvvY','tK9erv9f','B3v0yM94','DMLJzxm','l2fWAs9O','ywrK','l2LYl3rL','5lIk5lIa5QYH5zsK6yAs6l+y','y2HHDc5T','zgLZCgXH','t1Dtrvi','y29Kzq','CMvWBgfJ','BgfZDfnL','l2LYl3jL','5O6L5y+J5zcm5lIa56UV5y+J','AgvHBhrO','lZeYnY4W','AhCUC3rH','D3jPDgu','rgv2AwnL','Dw5Yzwy','CL0G5PYQ6io95OYc','zwXLDgu','zxrL','sevbra','BMDQAv9V','5PEG5Rov5yAz5ywLihi','mJaXndzeChbLu2W','DgLUzW','CM9S','u0Lhsu5u','57Y65Bcr6kAb5yIG6zMK55Qe','C3bLzwq','AwXLu3LU','BMDQAv9J','zMX1C2Hi','CL0G5BEY57Ut5P2F','55s16isr5zkmie1p','ChjVBxb0','ueLFue9s','CI9JB21T','ANnVBG','C3rHDhvZ','CL0G','AwHVBwu','l2fWAs9I','zY9KzxzP','l2nOyxq','D2LUmZi','5PEG5Rov6iEQ5yQO5OMt5BYa','DgLVBG','y2vZ','y2f0y2G','l2LYl2v4','AxjFzgf0','DgjVEa','tu9tu19w','C3rUyw1L','77Ym5Ps55yMn56UV5lUJ56cb','77Ym57UN57UT5l2/55sOia','Aw5KzxGU','Dgv4Dc9L','AgvHzgvY','AxzLvgLT','5lYA54oT5PU05PAW44cc','D2fYBG','BgLNAhq','57QI5Asw56cb5Qc85BYp5lIn','CM9Szq','l2LYl2rL','AwrSzq','tu9tu19p','ywnRzwq','l2nOyxqV','mZaZDMjWtvzd','BxbSzxrL','AwqG5lIn5zci5Rov','DY9ZDgf0','Dc1uExbL','DM9Py2u','AgfZ','BgvUz3rO','5Asn77Ym6k+356In5ycz','Dgv4Da','tu9tuYdNPRS','l2H3','ifDPluzP','zw52','C3rYAw5N','C3rDigjV','zf9Pza','DxrIB3G','C2vUzezP','C2vX','5lIn5lIk44cc6k+356gU6k6K','Agf0','r0vu','y2XVC2u','tu9tuYdOV5q','55s15zMO57g75z6l5lIn5zci','yMfZzvvY','Awz5','Aw5Jzt0','mJaWn0TduLriDa','BwTKAxjt','zM9SBg93','5BQp5y2G55sO77Ym5B2t5yMn','Bg9N','CgLK','zxHPDa','Dw50Aw1L','5Rwp6kEi5zMO77YA','56km77Yi5y2h57QNl+A/Ga','x2LK','CL0G6Ag16z2I5lIo','mteYotuXntbVrfrUy3y','l2fWAs9K','CMvHzhK','5yQH77Ym6k+356In5zco5yAn','CNnVCG','cMrHDge6','DxrMoa','55s15zMO5OIw5OYj6zsUia','v2KTrMNJGii','zwfKzxjZ','5zYO562j5B6f6k6+5Ash5zUE','l2LYl2LT','y3jLyxrL','DgHLBG','DgfYDcbT','CWPKyxrH','zv0GCMvZ'];_0x4ec2=function(){return _0x5b5c4;};return _0x4ec2();}async function probeOne(_0x5a3e87,_0x40fd2c=Date[_0x48ebcd(0x1e6)]()){const _0x18e250=_0x48ebcd,_0x5e6ebd=config[_0x18e250(0x16b)+'s']?.[_0x5a3e87];if(!_0x5e6ebd)return;const _0x4eb8b4=await enqueueBoard(_0x18e250(0x243),()=>probeDevice(_0x5e6ebd,{'now':_0x40fd2c,'timeoutMs':0x7d0}),_0x5a3e87),_0x1a4fc4=_0x5e6ebd[_0x18e250(0x240)+'en'];Object[_0x18e250(0x1e1)](_0x5e6ebd,_0x4eb8b4[_0x18e250(0x16b)]);_0x5a3e87===config[_0x18e250(0x1e3)+_0x18e250(0x247)+'Id']&&(_0x4eb8b4[_0x18e250(0x18f)]&&_0x4eb8b4['device']['baseUr'+'l']&&(config[_0x18e250(0x16b)+_0x18e250(0x233)+'l']=_0x4eb8b4[_0x18e250(0x16b)][_0x18e250(0x146)+'l']));const _0x2c6cca=runtime['of'](_0x5a3e87);_0x4eb8b4['health']?.[_0x18e250(0x131)]&&shouldApplyRemoteVoice({'remoteVoice':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)],'localVoice':_0x2c6cca[_0x18e250(0x131)],'wokeAt':_0x2c6cca[_0x18e250(0x1b5)]})&&applyVoice(_0x5a3e87,_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)]),_0x4eb8b4[_0x18e250(0x243)]&&shouldFetchChatSync({'voice':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x131)]||_0x2c6cca[_0x18e250(0x131)],'remoteSeq':_0x4eb8b4[_0x18e250(0x243)][_0x18e250(0x186)+'eq'],'localSeq':_0x2c6cca[_0x18e250(0x1f5)+_0x18e250(0x159)]})&&(syncChatNow(_0x5a3e87)[_0x18e250(0x268)](()=>{}),scheduleChatSync(_0x5a3e87)),Number(_0x4eb8b4[_0x18e250(0x243)]?.[_0x18e250(0x220)+_0x18e250(0x24d)+_0x18e250(0x13d)]||_0x4eb8b4[_0x18e250(0x16b)]?.[_0x18e250(0x220)+'ngjiOu'+_0x18e250(0x26b)]||0x0)>0x0&&pullYunxiangjiOutbox(_0x5a3e87)[_0x18e250(0x268)](()=>{}),_0x4eb8b4[_0x18e250(0x16b)]['lastSe'+'en']!==_0x1a4fc4&&(emit(_0x18e250(0x25e),statusPayload()),_0x4eb8b4[_0x18e250(0x18f)]&&scheduleYunxiangjiInboxPush(_0x5a3e87));}function startPresenceWatch(){if(presenceTimer)return;const _0x3b64f4=()=>{const _0x46766e=_0x53b0,_0x2942ba=Object[_0x46766e(0x19e)](config['device'+'s']||{});for(const _0x3588fc of _0x2942ba['slice'](0x0,0x4)){probeOne(_0x3588fc)[_0x46766e(0x268)](()=>{});}};_0x3b64f4(),presenceTimer=setInterval(_0x3b64f4,0x7d0);}function ingestYunxiangjiFromDevicePayload(_0x101ca3,_0x2d76a0){const _0x26a14e=_0x48ebcd,_0x2cc2fc=_0x101ca3?.[_0x26a14e(0x220)+_0x26a14e(0x256)+_0x26a14e(0x1e4)]||_0x101ca3?.['items'];if(!Array[_0x26a14e(0x177)+'y'](_0x2cc2fc)||!_0x2cc2fc[_0x26a14e(0x133)])return;const _0x413cbb=ingestDeviceYunxiangjiCreates(_0x2cc2fc),_0x5225a5=_0x413cbb[_0x26a14e(0x12a)]||_0x2cc2fc[_0x26a14e(0x19a)](_0x1dd0ef=>_0x1dd0ef?.['id'])[_0x26a14e(0x229)](Boolean);if(!_0x5225a5[_0x26a14e(0x133)])return;deviceFetch('/yunxi'+_0x26a14e(0x17d)+_0x26a14e(0x235)+_0x26a14e(0x1c7),{'method':_0x26a14e(0x201),'body':JSON[_0x26a14e(0x13a)+_0x26a14e(0x147)]({'ids':_0x5225a5}),'kind':_0x26a14e(0x1ee),'timeoutMs':0x7d0,'deviceId':_0x2d76a0})['catch'](()=>{}),scheduleYunxiangjiInboxPush(_0x2d76a0);}async function pullYunxiangjiOutbox(_0x7e2267){const _0x3168e8=_0x48ebcd,_0xe7dfe7=_0x7e2267||focusedRecord()?.['id']||config['active'+_0x3168e8(0x247)+'Id'],_0x263d61=await deviceFetch('/yunxi'+'angji/'+_0x3168e8(0x235),{'timeoutMs':0x7d0,'kind':_0x3168e8(0x1ee),'deviceId':_0xe7dfe7});ingestYunxiangjiFromDevicePayload(_0x263d61,_0xe7dfe7);}const inboxPushTimers=new Map();function scheduleYunxiangjiInboxPush(_0x3d681e){const _0x31b35d=_0x48ebcd,_0x138cd8=_0x3d681e||focusedRecord()?.['id']||config[_0x31b35d(0x1e3)+_0x31b35d(0x247)+'Id'];if(!_0x138cd8)return;const _0x261434=inboxPushTimers[_0x31b35d(0x19f)](_0x138cd8);if(_0x261434)clearTimeout(_0x261434);inboxPushTimers['set'](_0x138cd8,setTimeout(()=>{inboxPushTimers['delete'](_0x138cd8),pushYunxiangjiInbox(_0x138cd8)['catch'](()=>{});},0x12c));}async function pushYunxiangjiInbox(_0x39bce6){const _0x2b4c91=_0x48ebcd,_0x4a3804=_0x39bce6||focusedRecord()?.['id']||config[_0x2b4c91(0x1e3)+_0x2b4c91(0x247)+'Id'];if(!_0x4a3804)return;await deviceFetch(_0x2b4c91(0x18e)+_0x2b4c91(0x17d)+'inbox',{'method':_0x2b4c91(0x201),'body':JSON['string'+'ify'](exportYunxiangjiInbox()),'kind':_0x2b4c91(0x1ee),'timeoutMs':0x7d0,'deviceId':_0x4a3804});}function requireDeviceOnline(){const _0x547980=_0x48ebcd;if(!currentMossOnline())throw new Error(_0x547980(0x136)+'线');}async function publishWakeAndText(_0x5a84fb,_0x2ebf23){const _0x268d88=_0x48ebcd;requireDeviceOnline();const _0xa0bc59=focusedRecord()?.['id']||config[_0x268d88(0x1e3)+_0x268d88(0x247)+'Id'],_0x173851={'text':String(_0x5a84fb||'')};if(_0x2ebf23)_0x173851[_0x268d88(0x210)+'ce']=String(_0x2ebf23);await deviceFetch(_0x268d88(0x12b)+_0x268d88(0x192),{'method':'POST','body':JSON[_0x268d88(0x13a)+'ify'](_0x173851),'kind':_0x268d88(0x1ee),'timeoutMs':0xfa0,'deviceId':_0xa0bc59}),syncChatNow(_0xa0bc59)[_0x268d88(0x268)](()=>{}),scheduleChatSync(_0xa0bc59);}const app=_0x5c053c();app['use'](_0x4d0b15()),app[_0x48ebcd(0x178)](_0x5c053c[_0x48ebcd(0x25d)]({'limit':_0x48ebcd(0x1c1)})),app[_0x48ebcd(0x178)](attachRequestDevice(()=>config)),registerMihomeRoutes(app,{'configDir':CONFIG_DIR,'onMcpAccessChanged':()=>{const _0x3cc9fc=_0x48ebcd;try{bridgeManager[_0x3cc9fc(0x17e)+_0x3cc9fc(0x1a5)+'r']('moss-m'+_0x3cc9fc(0x260));}catch(_0x2f16dc){console[_0x3cc9fc(0x275)](_0x3cc9fc(0x215)+_0x3cc9fc(0x165)+_0x3cc9fc(0x163)+'cp',_0x2f16dc[_0x3cc9fc(0x170)+'e']);}}}),registerDeviceRoutes(app,{'getConfig':()=>config,'saveConfig':()=>saveConfig(config),'getExtras':()=>{const _0x359b4f=_0x48ebcd,_0x1aa431=focusedRecord(),_0xb2c54a=_0x1aa431?.['id']||config['active'+_0x359b4f(0x247)+'Id'];return{'mqttStatus':_0x359b4f(0x157),'mossOnline':currentMossOnline(),'capabilities':currentCaps(),'failCount':0x0,'lastError':'','mossChatState':_0xb2c54a?runtime['of'](_0xb2c54a)[_0x359b4f(0x131)]:_0x359b4f(0x128),'focusedDeviceId':_0xb2c54a||'','voices':voicesFromRuntime(config,runtime)};},'onActivate':_0x475469=>{const _0x3fa782=_0x48ebcd;runtime[_0x3fa782(0x20d)+_0x3fa782(0x141)](_0x475469['device']['id']),config[_0x3fa782(0x16b)+_0x3fa782(0x233)+'l']=_0x475469[_0x3fa782(0x16b)][_0x3fa782(0x146)+'l']||config['device'+'BaseUr'+'l']||'',applyDeviceHealthTo(config,_0x475469[_0x3fa782(0x16b)]),emit(_0x3fa782(0x25e),statusPayload()),probeOne(_0x475469[_0x3fa782(0x16b)]['id'])[_0x3fa782(0x268)](()=>{});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x21c)+_0x48ebcd(0x194),(_0x22652e,_0x416cac)=>{const _0x225c29=_0x48ebcd;_0x416cac[_0x225c29(0x212)+'der'](_0x225c29(0x16d)+_0x225c29(0x130),_0x225c29(0x271)+_0x225c29(0x166)+_0x225c29(0x1a1)),_0x416cac[_0x225c29(0x212)+'der'](_0x225c29(0x1aa)+'Contro'+'l',_0x225c29(0x224)+'he'),_0x416cac[_0x225c29(0x212)+_0x225c29(0x176)](_0x225c29(0x209)+_0x225c29(0x266),'keep-a'+'live'),_0x416cac[_0x225c29(0x257)+_0x225c29(0x15e)](),sseClients[_0x225c29(0x238)](_0x416cac),_0x416cac[_0x225c29(0x246)](_0x225c29(0x1de)+_0x225c29(0x171)+_0x225c29(0x164)+':\x20'+JSON[_0x225c29(0x13a)+_0x225c29(0x147)](statusPayload())+'\x0a\x0a'),_0x22652e['on'](_0x225c29(0x143),()=>sseClients[_0x225c29(0x1dd)](_0x416cac));}),app[_0x48ebcd(0x225)](_0x48ebcd(0x156)+_0x48ebcd(0x1a9)+'r',async(_0x6ab15,_0x3550be)=>{const _0x568a62=_0x48ebcd;try{const _0x1191cd=await discoverMossDevices({'lastHostname':config['lastHo'+_0x568a62(0x26d)],'lastBaseUrl':config['device'+_0x568a62(0x233)+'l']});_0x3550be['json']({'devices':_0x1191cd});}catch(_0x4b1304){_0x3550be[_0x568a62(0x25e)](0x1f4)[_0x568a62(0x25d)]({'message':_0x4b1304[_0x568a62(0x170)+'e']||_0x568a62(0x179)+'败'});}}),app['post'](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+_0x48ebcd(0x189),async(_0x1018fd,_0x50a71d)=>{const _0x410629=_0x48ebcd,_0x5ac28f=String(_0x1018fd[_0x410629(0x197)]?.['baseUr'+'l']||'')[_0x410629(0x23f)+'e'](/\/$/,'');if(!_0x5ac28f)return _0x50a71d[_0x410629(0x25e)](0x190)['json']({'message':_0x410629(0x190)+_0x410629(0x216)});const _0x3507c8=config[_0x410629(0x16b)+_0x410629(0x233)+'l'];config[_0x410629(0x16b)+'BaseUr'+'l']=_0x5ac28f;try{const _0x2f747d=await deviceFetch(_0x410629(0x1ae)+'h',{'baseUrl':_0x5ac28f});_0x2f747d['hostna'+'me']&&(config[_0x410629(0x205)+_0x410629(0x26d)]=_0x2f747d[_0x410629(0x1a2)+'me']),applyDeviceHealthTo(config,_0x2f747d),saveConfig(config),_0x50a71d[_0x410629(0x25d)]({'ok':!![],'health':_0x2f747d});}catch(_0x226844){config[_0x410629(0x16b)+_0x410629(0x233)+'l']=_0x3507c8,_0x50a71d[_0x410629(0x25e)](0x190)['json']({'message':'找到地址但连'+_0x410629(0x140)+_0x410629(0x259)+'SS\x20在同一'+_0x410629(0x138)+',并检查\x20I'+'P。','detail':_0x226844[_0x410629(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+_0x48ebcd(0x243),async(_0x4a3f4b,_0x4de797)=>{const _0x48ed8c=_0x48ebcd;try{const _0xac52f8=await deviceFetch(_0x48ed8c(0x1ae)+'h');applyDeviceHealth(_0xac52f8,{'id':focusedRecord()?.['id']||config[_0x48ed8c(0x1e3)+_0x48ed8c(0x247)+'Id'],'clientId':focusedRecord()?.['client'+'Id']}),saveConfig(config),_0x4de797[_0x48ed8c(0x25d)](_0xac52f8);}catch(_0x3d6406){_0x4de797[_0x48ed8c(0x25e)](0x190)['json']({'message':_0x3d6406[_0x48ed8c(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x261)+_0x48ebcd(0x17f)+'n',async(_0x34c116,_0x4b68f2)=>{const _0x1e2da7=_0x48ebcd,_0x3051f3=String(_0x34c116[_0x1e2da7(0x197)]?.[_0x1e2da7(0x146)+'l']||config['device'+_0x1e2da7(0x233)+'l']||'')[_0x1e2da7(0x23f)+'e'](/\/$/,''),_0x1fe744=String(_0x34c116[_0x1e2da7(0x197)]?.['displa'+_0x1e2da7(0x1b6)]||_0x34c116[_0x1e2da7(0x197)]?.['displa'+_0x1e2da7(0x221)]||'')[_0x1e2da7(0x1b1)]();if(!_0x3051f3)return _0x4b68f2[_0x1e2da7(0x25e)](0x190)[_0x1e2da7(0x25d)]({'message':_0x1e2da7(0x203)});try{const _0x912f23=await deviceFetch(_0x1e2da7(0x1ae)+'h',{'baseUrl':_0x3051f3,'timeoutMs':0xbb8,'kind':_0x1e2da7(0x243)}),_0x3d433c=resolveUpsertId(config,{'mac':_0x912f23[_0x1e2da7(0x1a8)],'clientId':_0x912f23[_0x1e2da7(0x1b7)+_0x1e2da7(0x153)],'id':config[_0x1e2da7(0x1e3)+'Device'+'Id']}),_0x1e86a0=upsertDevice(config,{'id':_0x3d433c,'mac':normalizeMac(_0x912f23[_0x1e2da7(0x1a8)])||undefined,'clientId':_0x912f23['client'+_0x1e2da7(0x153)],'displayName':_0x1fe744||(_0x912f23[_0x1e2da7(0x23c)+_0x1e2da7(0x221)]&&!isBoardLabel(_0x912f23[_0x1e2da7(0x23c)+'y_name'])?_0x912f23[_0x1e2da7(0x23c)+_0x1e2da7(0x221)]:undefined),'board':_0x912f23['board']||_0x912f23[_0x1e2da7(0x167)],'product':_0x912f23[_0x1e2da7(0x22a)+'t'],'hostname':_0x912f23[_0x1e2da7(0x1a2)+'me'],'baseUrl':_0x3051f3,'ip':_0x912f23['ip'],'lastSeen':Date[_0x1e2da7(0x1e6)]()});config[_0x1e2da7(0x16b)+_0x1e2da7(0x233)+'l']=_0x3051f3;if(_0x912f23[_0x1e2da7(0x1a2)+'me'])config[_0x1e2da7(0x205)+_0x1e2da7(0x26d)]=_0x912f23[_0x1e2da7(0x1a2)+'me'];config['bound']=!![],config[_0x1e2da7(0x1e3)+_0x1e2da7(0x247)+'Id']=_0x1e86a0['id'],saveConfig(config),emit('status',statusPayload()),_0x4b68f2['json']({'ok':!![],'mossOnline':!![],'device':_0x1e86a0});}catch(_0xa0dd88){_0x4b68f2[_0x1e2da7(0x25e)](0x190)[_0x1e2da7(0x25d)]({'message':_0x1e2da7(0x1f4)+_0x1e2da7(0x1cc)+_0x1e2da7(0x200)+_0x1e2da7(0x1b3)+_0x1e2da7(0x15d),'detail':_0xa0dd88[_0x1e2da7(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x184)+_0x48ebcd(0x1af)+'ke',async(_0x181e93,_0x4077f7)=>{const _0x2c2e64=_0x48ebcd,_0x4ddfb1=focusedRecord()?.['id']||config['active'+_0x2c2e64(0x247)+'Id'],_0x22c968=runtime['of'](_0x4ddfb1);try{requireDeviceOnline();if(_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x173)+_0x2c2e64(0x250)||_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x1ea)+_0x2c2e64(0x250))throw new Error(_0x22c968[_0x2c2e64(0x131)]===_0x2c2e64(0x1ea)+_0x2c2e64(0x250)?'MOSS\x20忙'+_0x2c2e64(0x152)+_0x2c2e64(0x1e7)+_0x2c2e64(0x169)+'链路':_0x2c2e64(0x22f)+_0x2c2e64(0x1ed)+_0x2c2e64(0x158)+'试');if(_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)])throw new Error(_0x2c2e64(0x23a)+_0x2c2e64(0x15f)+_0x2c2e64(0x134));if(Date[_0x2c2e64(0x1e6)]()-_0x22c968[_0x2c2e64(0x1b5)]<0x9c4)throw new Error(_0x2c2e64(0x20c)+_0x2c2e64(0x19d)+'再试');_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)]=!![],_0x22c968[_0x2c2e64(0x1b5)]=Date[_0x2c2e64(0x1e6)]();const _0x5cd609=await deviceFetch('/chat/'+_0x2c2e64(0x22c),{'method':_0x2c2e64(0x201),'body':'{}','kind':_0x2c2e64(0x1ee),'timeoutMs':0xfa0}),_0xee0ca3=voiceFromWakeAck(_0x5cd609);if(_0xee0ca3[_0x2c2e64(0x175)]){if(_0xee0ca3['error']===_0x2c2e64(0x173)+_0x2c2e64(0x250))throw new Error(_0x2c2e64(0x22f)+_0x2c2e64(0x1ed)+_0x2c2e64(0x158)+'试');if(_0xee0ca3['error']===_0x2c2e64(0x20b))throw new Error(_0x2c2e64(0x1c2)+_0x2c2e64(0x152)+'活中),暂时'+'无法建立语音'+'链路');throw new Error(_0xee0ca3[_0x2c2e64(0x175)]||_0x2c2e64(0x1b9)+'法唤醒');}applyVoice(_0x4ddfb1,_0xee0ca3[_0x2c2e64(0x131)]),syncChatNow(_0x4ddfb1)['catch'](()=>{}),scheduleChatSync(_0x4ddfb1),_0x4077f7[_0x2c2e64(0x25d)]({'ok':!![],'payload':_0x5cd609});}catch(_0x48d859){_0x4077f7['status'](0x190)['json']({'message':_0x48d859[_0x2c2e64(0x170)+'e']});}finally{_0x22c968[_0x2c2e64(0x1db)+_0x2c2e64(0x181)]=![];}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x237)+'w',async(_0x37576d,_0x1429b3)=>{const _0x1fc169=_0x48ebcd;try{requireDeviceOnline();const _0x5c9835=String(_0x37576d['body']?.[_0x1fc169(0x16b)]||'')[_0x1fc169(0x1b1)](),_0x20d33a=String(_0x37576d['body']?.[_0x1fc169(0x21e)]||'')[_0x1fc169(0x1b1)]();if(!_0x5c9835||!_0x20d33a)throw new Error(_0x1fc169(0x1ec)+'作');const _0xeba976={'device':_0x5c9835,'action':_0x20d33a};if(_0x37576d[_0x1fc169(0x197)]?.[_0x1fc169(0x254)]!=null)_0xeba976[_0x1fc169(0x254)]=Number(_0x37576d[_0x1fc169(0x197)][_0x1fc169(0x254)]);const _0x4c7cb7=await deviceFetch(_0x1fc169(0x137),{'method':'POST','body':JSON[_0x1fc169(0x13a)+_0x1fc169(0x147)](_0xeba976),'timeoutMs':0xfa0});emit(_0x1fc169(0x174),{'type':_0x1fc169(0x245)+'te','payload':_0x4c7cb7,'deviceId':focusedRecord()?.['id']||config[_0x1fc169(0x1e3)+_0x1fc169(0x247)+'Id']}),_0x1429b3[_0x1fc169(0x25d)]({'ok':!![],..._0x4c7cb7});}catch(_0x5ddeee){_0x1429b3[_0x1fc169(0x25e)](0x190)[_0x1fc169(0x25d)]({'message':_0x5ddeee[_0x1fc169(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x237)+_0x48ebcd(0x12f)+'us',async(_0x52fce1,_0x372118)=>{const _0x2eb412=_0x48ebcd;try{requireDeviceOnline();const _0x4a9e52=await deviceFetch(_0x2eb412(0x137),{'timeoutMs':0xfa0});emit(_0x2eb412(0x174),{'type':_0x2eb412(0x245)+'te','payload':_0x4a9e52,'deviceId':focusedRecord()?.['id']||config[_0x2eb412(0x1e3)+_0x2eb412(0x247)+'Id']}),_0x372118[_0x2eb412(0x25d)]({'ok':!![],..._0x4a9e52});}catch(_0x2ecc87){_0x372118[_0x2eb412(0x25e)](0x190)[_0x2eb412(0x25d)]({'message':_0x2ecc87[_0x2eb412(0x170)+'e']});}});async function fetchDeviceConfig(){const _0x3d011a=_0x48ebcd,_0x2ee1d1=await deviceFetch(_0x3d011a(0x1b8)+'g/devi'+'ce');return{'ok':!![],..._0x2ee1d1};}function _0x53b0(_0x9bd63e,_0x1945d2){_0x9bd63e=_0x9bd63e-0x125;const _0x4ec2b1=_0x4ec2();let _0x53b041=_0x4ec2b1[_0x9bd63e];if(_0x53b0['MOeGCo']===undefined){var _0x12b9c5=function(_0x3a2eb3){const _0x4c5a3e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24e640='',_0x8ea7c3='';for(let _0x30377c=0x0,_0x5907f2,_0x5c053c,_0x4d0b15=0x0;_0x5c053c=_0x3a2eb3['charAt'](_0x4d0b15++);~_0x5c053c&&(_0x5907f2=_0x30377c%0x4?_0x5907f2*0x40+_0x5c053c:_0x5c053c,_0x30377c++%0x4)?_0x24e640+=String['fromCharCode'](0xff&_0x5907f2>>(-0x2*_0x30377c&0x6)):0x0){_0x5c053c=_0x4c5a3e['indexOf'](_0x5c053c);}for(let _0x551684=0x0,_0x262ba0=_0x24e640['length'];_0x551684<_0x262ba0;_0x551684++){_0x8ea7c3+='%'+('00'+_0x24e640['charCodeAt'](_0x551684)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8ea7c3);};_0x53b0['VMNJrZ']=_0x12b9c5,_0x53b0['nNMuIL']={},_0x53b0['MOeGCo']=!![];}const _0x40ac23=_0x4ec2b1[0x0],_0x2aafb7=_0x9bd63e+_0x40ac23,_0x4e721a=_0x53b0['nNMuIL'][_0x2aafb7];return!_0x4e721a?(_0x53b041=_0x53b0['VMNJrZ'](_0x53b041),_0x53b0['nNMuIL'][_0x2aafb7]=_0x53b041):_0x53b041=_0x4e721a,_0x53b041;}async function saveDeviceConfig(_0x2bad02){const _0x46c31b=_0x48ebcd;return deviceFetch(_0x46c31b(0x1b8)+_0x46c31b(0x262)+'ce',{'method':_0x46c31b(0x1d6),'body':JSON[_0x46c31b(0x13a)+'ify'](_0x2bad02)});}app['get']('/api/d'+_0x48ebcd(0x1ff)+_0x48ebcd(0x1c4),withActiveDevice(()=>config),async(_0x3b09ea,_0x1b025a)=>{const _0xe4d087=_0x48ebcd;try{_0x1b025a[_0xe4d087(0x25d)](await fetchDeviceConfig());}catch(_0x1469aa){_0x1b025a[_0xe4d087(0x25e)](0x190)[_0xe4d087(0x25d)]({'message':_0x1469aa[_0xe4d087(0x170)+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x156)+_0x48ebcd(0x1ff)+'config',withActiveDevice(()=>config),async(_0x4dec8b,_0xf9f87e)=>{const _0x19060=_0x48ebcd;try{_0xf9f87e[_0x19060(0x25d)](await saveDeviceConfig(_0x4dec8b['body']||{}));}catch(_0x3e10c4){_0xf9f87e[_0x19060(0x25e)](0x190)['json']({'message':_0x3e10c4[_0x19060(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+_0x48ebcd(0x267),async(_0x5e5a5d,_0xb90229)=>{const _0x3096fa=_0x48ebcd;try{_0xb90229['json'](await deviceFetch(_0x3096fa(0x127)+_0x3096fa(0x236)));}catch(_0x1e1157){_0xb90229['status'](0x190)[_0x3096fa(0x25d)]({'message':_0x1e1157[_0x3096fa(0x170)+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+'ce',async(_0xc9c8a6,_0x52a8a9)=>{const _0x4cdbfa=_0x48ebcd;try{const _0x2b988d=requireDevicePut(_0xc9c8a6[_0x4cdbfa(0x197)]);_0x52a8a9['json'](await deviceFetch('/ir/de'+_0x4cdbfa(0x1da),{'method':_0x4cdbfa(0x1d6),'body':JSON['string'+_0x4cdbfa(0x147)](_0x2b988d)}));}catch(_0xa5408d){_0x52a8a9[_0x4cdbfa(0x25e)](0x190)['json']({'message':_0xa5408d['messag'+'e']});}}),app['post'](_0x48ebcd(0x20e)+_0x48ebcd(0x1f2)+_0x48ebcd(0x1a3)+_0x48ebcd(0x24b),async(_0x4cf88f,_0x4efe98)=>{const _0x17f1ff=_0x48ebcd;try{const _0x3d0c4a=asObject(_0x4cf88f[_0x17f1ff(0x197)]);if(!validId(String(_0x3d0c4a['id']||'')))throw new Error(_0x17f1ff(0x253)+'电器');_0x4efe98[_0x17f1ff(0x25d)](await deviceFetch(_0x17f1ff(0x127)+_0x17f1ff(0x1bd)+_0x17f1ff(0x24a),{'method':_0x17f1ff(0x201),'body':JSON[_0x17f1ff(0x13a)+_0x17f1ff(0x147)]({'id':_0x3d0c4a['id']})}));}catch(_0x311e2b){_0x4efe98[_0x17f1ff(0x25e)](0x190)[_0x17f1ff(0x25d)]({'message':_0x311e2b['messag'+'e']});}}),app[_0x48ebcd(0x1f3)](_0x48ebcd(0x20e)+_0x48ebcd(0x25c)+_0x48ebcd(0x1bf),async(_0xcc5911,_0x1a78f0)=>{const _0x253538=_0x48ebcd;try{const _0x3d14b3=requireCommandPut(_0xcc5911[_0x253538(0x197)]);_0x1a78f0['json'](await deviceFetch(_0x253538(0x1ce)+_0x253538(0x1bc),{'method':_0x253538(0x1d6),'body':JSON[_0x253538(0x13a)+_0x253538(0x147)](_0x3d14b3)}));}catch(_0x4bc288){_0x1a78f0[_0x253538(0x25e)](0x190)[_0x253538(0x25d)]({'message':_0x4bc288[_0x253538(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x20e)+_0x48ebcd(0x25c)+'and/de'+'lete',async(_0x9db827,_0x5b8a3d)=>{const _0x4b5963=_0x48ebcd;try{const _0x3264ff=requireCommandDelete(_0x9db827[_0x4b5963(0x197)]);_0x5b8a3d[_0x4b5963(0x25d)](await deviceFetch(_0x4b5963(0x1ce)+_0x4b5963(0x207)+_0x4b5963(0x1dd),{'method':_0x4b5963(0x201),'body':JSON['string'+_0x4b5963(0x147)](_0x3264ff)}));}catch(_0x4745db){_0x5b8a3d[_0x4b5963(0x25e)](0x190)[_0x4b5963(0x25d)]({'message':_0x4745db[_0x4b5963(0x170)+'e']});}}),app['post']('/api/i'+_0x48ebcd(0x214)+'n',async(_0x5e7f5b,_0x5295d3)=>{const _0x3aeada=_0x48ebcd;try{_0x5295d3['json'](await deviceFetch('/ir/le'+_0x3aeada(0x185),{'method':_0x3aeada(0x201),'body':'{}'}));}catch(_0x4d5f1a){_0x5295d3[_0x3aeada(0x25e)](0x190)[_0x3aeada(0x25d)]({'message':_0x4d5f1a[_0x3aeada(0x170)+'e']});}}),app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+_0x48ebcd(0x214)+_0x48ebcd(0x1d3),async(_0x42b2cd,_0x1400a2)=>{const _0x5c66d1=_0x48ebcd;try{const _0xf4ae30=Date['now']();while(Date['now']()-_0xf4ae30<0x3a98){const _0x4ad18e=await deviceFetch(_0x5c66d1(0x241)+'ad');if(_0x4ad18e[_0x5c66d1(0x26a)+'a'])return _0x1400a2[_0x5c66d1(0x25d)](_0x4ad18e);await new Promise(_0x4609be=>setTimeout(_0x4609be,0x320));}_0x1400a2[_0x5c66d1(0x25d)]({'ir_data':'','count':0x0});}catch(_0x51eaae){_0x1400a2[_0x5c66d1(0x25e)](0x190)[_0x5c66d1(0x25d)]({'message':_0x51eaae[_0x5c66d1(0x170)+'e']});}});function asObject(_0x528048){const _0x5729d5=_0x48ebcd;if(!_0x528048)return{};if(typeof _0x528048===_0x5729d5(0x13a))try{return JSON[_0x5729d5(0x1d1)](_0x528048);}catch{return{};}return typeof _0x528048===_0x5729d5(0x180)?_0x528048:{};}function irTestPayload(_0x9a235e){const _0x26b459=_0x48ebcd,_0x1d6201=asObject(_0x9a235e),_0x7bb04c=typeof _0x1d6201[_0x26b459(0x23e)]===_0x26b459(0x13a)?_0x1d6201[_0x26b459(0x23e)][_0x26b459(0x1b1)]():'',_0x3179c8=String(_0x1d6201[_0x26b459(0x16b)+_0x26b459(0x153)]||_0x1d6201[_0x26b459(0x16b)+'Id']||'')[_0x26b459(0x1b1)](),_0x2fd9db=String(_0x1d6201['id']||_0x1d6201[_0x26b459(0x16c)+_0x26b459(0x13c)]||_0x1d6201['comman'+_0x26b459(0x228)]||'')[_0x26b459(0x1b1)](),_0x119a49={};if(_0x7bb04c)_0x119a49[_0x26b459(0x23e)]=_0x7bb04c;if(_0x3179c8)_0x119a49[_0x26b459(0x16b)+_0x26b459(0x153)]=_0x3179c8;if(_0x2fd9db)_0x119a49['id']=_0x2fd9db;return _0x119a49;}function validId(_0x202dcc){const _0x2abe70=_0x48ebcd;return typeof _0x202dcc==='string'&&_0x202dcc[_0x2abe70(0x133)]>0x0&&_0x202dcc[_0x2abe70(0x133)]<=0x20&&/^[A-Za-z0-9_-]+$/[_0x2abe70(0x230)](_0x202dcc);}function validName(_0x2162f0){const _0x37371e=_0x48ebcd;return typeof _0x2162f0===_0x37371e(0x13a)&&_0x2162f0[_0x37371e(0x1b1)]()[_0x37371e(0x133)]>0x0&&_0x2162f0[_0x37371e(0x133)]<=0x40;}function validType(_0x1557de){const _0x3d02cc=_0x48ebcd;return[_0x3d02cc(0x276),'ac','tv','custom']['includ'+'es'](_0x1557de);}function validCode(_0x485b51){const _0x28f356=_0x48ebcd;if(!_0x485b51)return!![];if(typeof _0x485b51!==_0x28f356(0x13a)||_0x485b51[_0x28f356(0x133)]>0x1000)return![];const _0x4d4cb7=_0x485b51[_0x28f356(0x23f)+'e'](/^zf=/i,'')['replac'+'e'](/[\r\n]/g,'')[_0x28f356(0x1b1)]();if(_0x4d4cb7[_0x28f356(0x1d8)+'With']('xx'))return _0x4d4cb7[_0x28f356(0x133)]<=0x8;return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0x28f356(0x230)](_0x4d4cb7);}function requireDevicePut(_0x108f47){const _0x2a3688=_0x48ebcd,_0x5991f4=asObject(_0x108f47),_0x11909a=String(_0x5991f4['id']||'')[_0x2a3688(0x1b1)](),_0x27f00e=String(_0x5991f4['name']||'')[_0x2a3688(0x1b1)](),_0x445cab=String(_0x5991f4[_0x2a3688(0x196)]||_0x2a3688(0x1fa))[_0x2a3688(0x1b1)]()||_0x2a3688(0x1fa);if(!validId(_0x11909a)||!validName(_0x27f00e))throw new Error('电器\x20id\x20'+_0x2a3688(0x1cd));if(!validType(_0x445cab))throw new Error(_0x2a3688(0x145)+'法');return{'id':_0x11909a,'name':_0x27f00e,'type':_0x445cab};}function requireCommandPut(_0x2474b3){const _0x338757=_0x48ebcd,_0x1e45ad=asObject(_0x2474b3),_0x12002e=String(_0x1e45ad[_0x338757(0x16b)+_0x338757(0x153)]||'')[_0x338757(0x1b1)](),_0x27bd7e=String(_0x1e45ad['id']||'')['trim'](),_0x37c74b=_0x1e45ad[_0x338757(0x167)]==null?'':String(_0x1e45ad['name'])[_0x338757(0x1b1)](),_0x3a2854=_0x1e45ad[_0x338757(0x23e)]==null?'':String(_0x1e45ad[_0x338757(0x23e)]);if(!validId(_0x12002e)||!validId(_0x27bd7e))throw new Error(_0x338757(0x15c)+_0x338757(0x12e));if(_0x37c74b&&!validName(_0x37c74b))throw new Error('按键名称不合'+'法');if(!validCode(_0x3a2854))throw new Error(_0x338757(0x125)+'合法');return{'device_id':_0x12002e,'id':_0x27bd7e,'name':_0x37c74b,'code':_0x3a2854};}function requireCommandDelete(_0x206b9a){const _0x209c29=_0x48ebcd,_0xce4fb=asObject(_0x206b9a),_0x924cb1=String(_0xce4fb[_0x209c29(0x16b)+_0x209c29(0x153)]||'')['trim'](),_0x1f2653=String(_0xce4fb['id']||'')[_0x209c29(0x1b1)]();if(!validId(_0x924cb1)||!validId(_0x1f2653))throw new Error(_0x209c29(0x253)+'电器或按键');return{'device_id':_0x924cb1,'id':_0x1f2653};}app[_0x48ebcd(0x19f)](_0x48ebcd(0x20e)+'r/expo'+'rt',async(_0x456ffd,_0x2f9639)=>{const _0x20e946=_0x48ebcd;try{const _0x5ae3cd=await deviceFetch(_0x20e946(0x269)+'port');_0x2f9639[_0x20e946(0x25d)]({'version':0x1,'exportedAt':new Date()['toISOS'+_0x20e946(0x19c)](),'devices':_0x5ae3cd[_0x20e946(0x16b)+'s']||[]});}catch(_0x1eedea){_0x2f9639[_0x20e946(0x25e)](0x190)['json']({'message':_0x1eedea[_0x20e946(0x170)+'e']});}}),app[_0x48ebcd(0x225)]('/api/i'+_0x48ebcd(0x20f)+'rt',async(_0x492046,_0x5a1311)=>{const _0x259b0a=_0x48ebcd;try{const _0x340b3c=validateIrImportPayload(_0x492046[_0x259b0a(0x197)]);_0x5a1311['json'](await deviceFetch(_0x259b0a(0x160)+_0x259b0a(0x1f9),{'method':'POST','body':JSON['string'+_0x259b0a(0x147)](_0x340b3c)}));}catch(_0x346d75){_0x5a1311[_0x259b0a(0x25e)](0x190)['json']({'message':_0x346d75[_0x259b0a(0x170)+'e']});}}),app[_0x48ebcd(0x225)](_0x48ebcd(0x20e)+_0x48ebcd(0x232),async(_0x2d49dd,_0x3a6e4a)=>{const _0x3777e1=_0x48ebcd;try{const _0x4445eb=irTestPayload(_0x2d49dd[_0x3777e1(0x197)]);console[_0x3777e1(0x14d)]('[ir.te'+_0x3777e1(0x13b)+_0x3777e1(0x1c9),_0x2d49dd[_0x3777e1(0x197)],_0x3777e1(0x227)+'d=',_0x4445eb);if(!_0x4445eb['code']&&(!_0x4445eb[_0x3777e1(0x16b)+_0x3777e1(0x153)]||!_0x4445eb['id']))throw new Error(_0x3777e1(0x16e)+'按键');_0x3a6e4a[_0x3777e1(0x25d)](await deviceFetch(_0x3777e1(0x239)+'st',{'method':'POST','body':JSON[_0x3777e1(0x13a)+_0x3777e1(0x147)](_0x4445eb)}));}catch(_0x5fb309){_0x3a6e4a[_0x3777e1(0x25e)](0x190)[_0x3777e1(0x25d)]({'message':_0x5fb309[_0x3777e1(0x170)+'e']});}}),registerCameraRoutes(app,{'getConfig':()=>{return new Proxy(config,{'get'(_0x347e03,_0x327723){const _0x2efe94=_0x53b0,_0x501e9c=getRequestDevice()?.['id']||_0x347e03[_0x2efe94(0x1e3)+_0x2efe94(0x247)+'Id'];if(_0x327723==='camera')return _0x501e9c?_0x347e03['device'+'s']?.[_0x501e9c]?.[_0x2efe94(0x1e9)]:_0x347e03['camera'];return _0x347e03[_0x327723];},'set'(_0x23498a,_0x565640,_0x2617ab){const _0x3b89bf=_0x53b0,_0x2fe3f2=getRequestDevice()?.['id']||_0x23498a[_0x3b89bf(0x1e3)+_0x3b89bf(0x247)+'Id'];if(_0x565640===_0x3b89bf(0x1e9)&&_0x2fe3f2)return setCamera(_0x23498a,_0x2fe3f2,_0x2617ab),!![];return _0x23498a[_0x565640]=_0x2617ab,!![];}});},'saveConfig':()=>saveConfig(config)}),setCameraHooks({'getDeviceBaseUrl':()=>getRequestDevice()?.[_0x48ebcd(0x146)+'l']||focusedRecord()?.[_0x48ebcd(0x146)+'l']||config[_0x48ebcd(0x16b)+_0x48ebcd(0x233)+'l'],'getDeviceCaps':()=>currentCaps(),'publishGimbal':async _0xd42fab=>{const _0x46fdd8=_0x48ebcd;requireDeviceOnline();const _0x4507cd=_0xd42fab?.[_0x46fdd8(0x21e)]===_0x46fdd8(0x1e2)?'stop':_0x46fdd8(0x14b),_0x3eb3e0=await deviceFetch(_0x46fdd8(0x188)+_0x46fdd8(0x17b)+_0x46fdd8(0x251),{'method':_0x46fdd8(0x201),'body':JSON[_0x46fdd8(0x13a)+_0x46fdd8(0x147)](_0xd42fab||{}),'kind':_0x4507cd,'timeoutMs':0x1f4});if(_0x3eb3e0['ok']===![])throw new Error(_0x3eb3e0['messag'+'e']||_0x46fdd8(0x17c));return _0x3eb3e0;}});async function publishAnnounce(_0x58ca75){const _0x306c0c=_0x48ebcd;if(!currentMossOnline())return![];const _0x1d88c4=typeof _0x58ca75===_0x306c0c(0x13a)?_0x58ca75:_0x58ca75?.[_0x306c0c(0x25a)],_0x56ffc0=typeof _0x58ca75===_0x306c0c(0x13a)?'':_0x58ca75?.[_0x306c0c(0x210)+'ce'];try{return await publishWakeAndText(_0x1d88c4,_0x56ffc0),applyVoice(focusedRecord()?.['id']||config[_0x306c0c(0x1e3)+_0x306c0c(0x247)+'Id'],_0x306c0c(0x173)+_0x306c0c(0x250)),!![];}catch(_0x57448b){return console[_0x306c0c(0x275)](_0x306c0c(0x1c5)+'angji]'+_0x306c0c(0x1d9)+_0x306c0c(0x21f)+'il',_0x57448b[_0x306c0c(0x170)+'e']),![];}}registerMcpRoutes(app,{'getConfig':()=>config,'emit':emit,'publishWakeAndText':_0x3551f2=>{const _0x1fc3af=_0x48ebcd;if(!currentMossOnline())return![];return publishWakeAndText(_0x3551f2)[_0x1fc3af(0x268)](_0x29622d=>console[_0x1fc3af(0x275)](_0x1fc3af(0x1a0)+_0x1fc3af(0x22c),_0x29622d[_0x1fc3af(0x170)+'e'])),!![];},'publishAnnounce':publishAnnounce,'isAnnounceReady':()=>currentMossOnline(),'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()['wakeOn'+_0x48ebcd(0x1ac)+'mplete']===!![],'syncYunxiangjiInbox':()=>scheduleYunxiangjiInboxPush()});function shouldServeUi(){const _0x56b719=_0x48ebcd;return process[_0x56b719(0x139)][_0x56b719(0x234)+'NV']===_0x56b719(0x22a)+_0x56b719(0x266)||process[_0x56b719(0x139)][_0x56b719(0x129)+_0x56b719(0x1ca)+_0x56b719(0x23d)]==='1';}function openBrowser(_0x5208f7){const _0x1b0de=_0x48ebcd;try{if(process[_0x1b0de(0x1d2)+'rm']==='darwin')execFile(_0x1b0de(0x211),[_0x5208f7]);else{if(process[_0x1b0de(0x1d2)+'rm']===_0x1b0de(0x264))execFile(_0x1b0de(0x1dc),['/c',_0x1b0de(0x1ad),'',_0x5208f7]);else execFile(_0x1b0de(0x22d)+'en',[_0x5208f7]);}}catch(_0x352ce4){console['warn'](_0x1b0de(0x265)+_0x1b0de(0x151),_0x352ce4[_0x1b0de(0x170)+'e']);}}function serveProductionUi(){const _0xde5814=_0x48ebcd,_0x1234a7=_0x30377c[_0xde5814(0x1b2)](DIST_DIR,_0xde5814(0x270)+_0xde5814(0x1f8));if(_0x24e640[_0xde5814(0x1cf)+_0xde5814(0x204)](_0x1234a7))return registerMediaRoutes(app,DIST_DIR),app[_0xde5814(0x178)](_0x5c053c['static'](DIST_DIR)),app[_0xde5814(0x178)]((_0x38134b,_0xd9c57d,_0x5c8e12)=>{const _0x286bb6=_0xde5814;if(_0x38134b[_0x286bb6(0x18a)]!==_0x286bb6(0x142)&&_0x38134b[_0x286bb6(0x18a)]!==_0x286bb6(0x24c))return _0x5c8e12();if(_0x38134b[_0x286bb6(0x21b)][_0x286bb6(0x1d8)+_0x286bb6(0x1f7)](_0x286bb6(0x1a4)))return _0x5c8e12();_0xd9c57d[_0x286bb6(0x13e)+'le'](_0x1234a7);}),!![];return console[_0xde5814(0x275)](_0xde5814(0x16a)+_0xde5814(0x1fc)+'构建'),![];}shouldServeUi()&&!shouldAttachDevUi()&&serveProductionUi();let httpServer=null,viteDev=null,shuttingDown=![];function shutdown(){const _0x21ca1e=_0x48ebcd;if(shuttingDown)return;shuttingDown=!![];try{disconnectCamera();}catch{}clearListenRuntime();const _0x28795b=()=>{const _0x3f6dfc=_0x53b0;if(!httpServer){process[_0x3f6dfc(0x14f)](0x0);return;}httpServer[_0x3f6dfc(0x143)](()=>process[_0x3f6dfc(0x14f)](0x0)),setTimeout(()=>process[_0x3f6dfc(0x14f)](0x0),0x320)[_0x3f6dfc(0x248)]();};if(!viteDev){_0x28795b();return;}viteDev[_0x21ca1e(0x143)]()[_0x21ca1e(0x162)](_0x28795b,_0x28795b);}function createHttpServer(){const _0x5eed9d=_0x48ebcd,_0x44bd1d=_0x5907f2[_0x5eed9d(0x161)+_0x5eed9d(0x1eb)](app);return _0x44bd1d[_0x5eed9d(0x1e8)+'t']=0x0,_0x44bd1d[_0x5eed9d(0x1f1)+_0x5eed9d(0x273)+_0x5eed9d(0x18c)]=0x0,_0x44bd1d[_0x5eed9d(0x272)+_0x5eed9d(0x208)+'ut']=0x0,_0x44bd1d[_0x5eed9d(0x218)+'tTimeo'+'ut']=0x0,_0x44bd1d;}function attachServer(_0x285825,_0x29ccdc){const _0x3cde83=_0x48ebcd;httpServer=_0x285825,writeRuntime(_0x29ccdc),process[_0x3cde83(0x139)][_0x3cde83(0x223)]=String(_0x29ccdc),process[_0x3cde83(0x139)][_0x3cde83(0x1ba)+_0x3cde83(0x25b)+'T']=String(_0x29ccdc);const _0x58d979=_0x3cde83(0x191)+_0x3cde83(0x244)+_0x3cde83(0x198)+_0x29ccdc,_0x5a30eb=process['env'][_0x3cde83(0x26c)+_0x3cde83(0x1d7)]?'\x20v'+process[_0x3cde83(0x139)][_0x3cde83(0x26c)+_0x3cde83(0x1d7)]:'';console[_0x3cde83(0x14d)](_0x3cde83(0x206)+_0x3cde83(0x226)+_0x5a30eb+'\x20\x20'+_0x58d979),viteDev&&console[_0x3cde83(0x14d)]('[serve'+_0x3cde83(0x154)+_0x3cde83(0x242)+_0x3cde83(0x26e)+_0x3cde83(0x274)),_0x29ccdc!==PORT&&console[_0x3cde83(0x14d)](_0x3cde83(0x1c8)+_0x3cde83(0x25f)+PORT+(_0x3cde83(0x1ef)+_0x3cde83(0x14c)+_0x3cde83(0x1fe))+_0x29ccdc+'。'),process['env']['MOSS_O'+_0x3cde83(0x1ca)+_0x3cde83(0x23d)]==='1'&&openBrowser(_0x58d979),prefetchFfmpeg(),initBridgeWebSocket(),startPresenceWatch();}function listenOn(_0x477e8f,_0x1ef609){return new Promise((_0x362c94,_0x379c8a)=>{const _0x398be3=_0x53b0,_0x2be98f=_0x566c2b=>{const _0x1e3740=_0x53b0;_0x477e8f[_0x1e3740(0x182)](_0x1e3740(0x187)+_0x1e3740(0x219),_0x369999),_0x379c8a(_0x566c2b);},_0x369999=()=>{const _0xaedc49=_0x53b0;_0x477e8f[_0xaedc49(0x182)]('error',_0x2be98f),_0x362c94(_0x477e8f);};_0x477e8f[_0x398be3(0x21d)]('error',_0x2be98f),_0x477e8f[_0x398be3(0x21d)](_0x398be3(0x187)+'ing',_0x369999),_0x477e8f[_0x398be3(0x187)](_0x1ef609);});}async function listenPreferred(_0x115535){const _0x5d0a38=_0x48ebcd,_0x4a2fd3=await reclaimListenPort({'preferredPort':_0x115535,'runtimePath':RUNTIME_PATH});_0x4a2fd3[_0x5d0a38(0x1b4)]&&console[_0x5d0a38(0x14d)]('[serve'+_0x5d0a38(0x258)+_0x5d0a38(0x1e5)+_0x5d0a38(0x193)+_0x5d0a38(0x26f)+_0x115535+'。');const _0x42d71b=createHttpServer();if(shouldAttachDevUi())try{viteDev=await attachViteDev(app,_0x42d71b,{'root':ROOT_DIR});}catch(_0x46b181){console[_0x5d0a38(0x275)](_0x5d0a38(0x1c8)+_0x5d0a38(0x249)+_0x5d0a38(0x195),_0x46b181[_0x5d0a38(0x170)+'e']);}const _0x3558c0=0x18;for(let _0x29937f=0x0;_0x29937f<_0x3558c0;_0x29937f+=0x1){const _0x276a32=nextListenPort(_0x115535,_0x29937f);try{await listenOn(_0x42d71b,_0x276a32),attachServer(_0x42d71b,_0x276a32);return;}catch(_0x48e758){_0x48e758[_0x5d0a38(0x23e)]!==_0x5d0a38(0x1e0)+_0x5d0a38(0x1df)&&(console[_0x5d0a38(0x175)](_0x48e758),process[_0x5d0a38(0x14f)](0x1)),_0x29937f<0x7&&(await reclaimListenPort({'preferredPort':_0x115535,'runtimePath':RUNTIME_PATH}),await sleep(0x78));}}console[_0x5d0a38(0x175)](_0x5d0a38(0x1c8)+'r]\x20'+_0x115535+(_0x5d0a38(0x222)+'均被占用')),process[_0x5d0a38(0x14f)](0x1);}process['on']('SIGTER'+'M',shutdown),process['on'](_0x48ebcd(0x252),shutdown),listenPreferred(PORT)['catch'](_0x121423=>{const _0x1ce3b7=_0x48ebcd;console[_0x1ce3b7(0x175)](_0x121423),process[_0x1ce3b7(0x14f)](0x1);});
1
+ const _0x24988b=_0x1386;(function(_0x8763db,_0x20239c){const _0x4205bd=_0x1386,_0x1cdfc2=_0x8763db();while(!![]){try{const _0x27f529=-parseInt(_0x4205bd(0x1cb))/0x1*(-parseInt(_0x4205bd(0x11c))/0x2)+parseInt(_0x4205bd(0x168))/0x3+-parseInt(_0x4205bd(0x15d))/0x4*(-parseInt(_0x4205bd(0x16c))/0x5)+-parseInt(_0x4205bd(0x1d1))/0x6*(-parseInt(_0x4205bd(0x19f))/0x7)+-parseInt(_0x4205bd(0x1d2))/0x8*(parseInt(_0x4205bd(0x1df))/0x9)+parseInt(_0x4205bd(0x123))/0xa*(-parseInt(_0x4205bd(0x16a))/0xb)+-parseInt(_0x4205bd(0x199))/0xc;if(_0x27f529===_0x20239c)break;else _0x1cdfc2['push'](_0x1cdfc2['shift']());}catch(_0x1ec66c){_0x1cdfc2['push'](_0x1cdfc2['shift']());}}}(_0x30a3,0x5f0d3));import _0x385d9e from'node:fs';import _0x1dbc62 from'node:os';import _0x43af7c from'node:path';import _0x59d596 from'node:http';import{execFile}from'node:child_process';import{fileURLToPath}from'node:url';import _0x2f0af1 from'express';import _0xb48ed8 from'cors';import{disconnectCamera,registerCameraRoutes,setCameraHooks,stripOnboardCameraConfig}from'./camera.mjs';import{findDevice,isBoardLabel,normalizeMac,resolveUpsertId}from'./device-identity.mjs';import{migrateLegacyConfig,requireActiveDevice,setCamera,upsertDevice}from'./device-registry.mjs';import{applyHealth,isOnline}from'./device-presence.mjs';import{probeDevice}from'./device-probe.mjs';import{applyChatDelta,chatSyncIntervalMs,shouldFetchChatSync}from'./device-chat-sync.mjs';import{createDeviceHttpQueue}from'./device-http.mjs';import{shouldApplyRemoteVoice,voiceFromWakeAck}from'./voice-wake.mjs';import{registerDeviceRoutes}from'./device-routes.mjs';import{buildSessionView,withActiveDevice}from'./device-session.mjs';import{attachRequestDevice,getRequestDevice,voicesFromRuntime}from'./device-focus.mjs';import{createDeviceRuntime}from'./device-runtime.mjs';import{discoverMossDevices}from'./lan-discover.mjs';import{registerMcpRoutes}from'./mcp/routes.mjs';import{initBridgeWebSocket,bridgeManager}from'./mcp/bridge-manager.mjs';import{setTaskNotifyHooks}from'./mcp/task-notify.mjs';import{loadMcpSettings}from'./mcp/settings.mjs';import{exportYunxiangjiInbox,ingestDeviceYunxiangjiCreates,maybeAckYunxiangjiFromChat,maybeApplyYunxiangjiFromChat}from'./mcp/yunxiangji.mjs';import{prefetchFfmpeg}from'./ffmpeg.mjs';import{registerMediaRoutes}from'./media-cache.mjs';import{validateIrImportPayload}from'./ir-import-validate.mjs';import{applyDeviceHealthTo,normalizeCaps}from'./board-presets.mjs';import{registerMihomeRoutes}from'./mihome/routes.mjs';import{clearRuntime,nextListenPort,reclaimListenPort,sleep}from'./listen-port.mjs';import{attachViteDev,shouldAttachDevUi}from'./dev-ui.mjs';const PORT=Number(process[_0x24988b(0x147)]['PORT']||0xec4),ROOT_DIR=_0x43af7c[_0x24988b(0x1a1)](_0x43af7c[_0x24988b(0x17b)+'e'](fileURLToPath(import.meta.url)),'..'),DIST_DIR=_0x43af7c['join'](ROOT_DIR,_0x24988b(0x12b)),CONFIG_DIR=_0x43af7c[_0x24988b(0x1a1)](_0x1dbc62[_0x24988b(0x215)+'r'](),_0x24988b(0x1ec)+_0x24988b(0x189)+'p'),CONFIG_PATH=_0x43af7c[_0x24988b(0x1a1)](CONFIG_DIR,'config'+_0x24988b(0x21d)),RUNTIME_PATH=_0x43af7c[_0x24988b(0x1a1)](CONFIG_DIR,_0x24988b(0x133)+_0x24988b(0x1c5));function loadConfig(){const _0x314287=_0x24988b;try{return migrateLegacyConfig(JSON[_0x314287(0x1cc)](_0x385d9e[_0x314287(0x11a)+_0x314287(0x163)](CONFIG_PATH,_0x314287(0x128))));}catch{return migrateLegacyConfig({'deviceBaseUrl':'','mqtt':null,'bound':![]});}}function saveConfig(_0xa4a6b9){const _0x428ebb=_0x24988b;_0x385d9e[_0x428ebb(0x202)+'ync'](CONFIG_DIR,{'recursive':!![]}),_0x385d9e[_0x428ebb(0x176)+'ileSyn'+'c'](CONFIG_PATH,JSON[_0x428ebb(0x1a3)+_0x428ebb(0x233)](_0xa4a6b9,null,0x2));}function applyDeviceHealth(_0x32b793,_0x54e81e={}){const _0x71ccb3=_0x24988b;applyDeviceHealthTo(config,_0x32b793);if(!_0x32b793||typeof _0x32b793!==_0x71ccb3(0x21a))return null;const _0x3bc7b7=String(_0x54e81e[_0x71ccb3(0x1d6)+'Id']||_0x32b793[_0x71ccb3(0x1d6)+_0x71ccb3(0x21f)]||'')[_0x71ccb3(0x132)](),_0x13f206=normalizeMac(_0x32b793[_0x71ccb3(0x1e3)]),_0x3adb2d=_0x54e81e['id']||config[_0x71ccb3(0x194)+'Device'+'Id'],_0x1216bf=findDevice(config,{'mac':_0x13f206,'clientId':_0x3bc7b7,'id':_0x3adb2d}),_0x41ff38=resolveUpsertId(config,{'mac':_0x13f206,'clientId':_0x3bc7b7,'id':_0x1216bf?.['id']||_0x3adb2d});if(!_0x41ff38)return null;const _0x285007=_0x32b793[_0x71ccb3(0x106)+'y_name']&&!isBoardLabel(_0x32b793['displa'+_0x71ccb3(0x213)])?_0x32b793[_0x71ccb3(0x106)+_0x71ccb3(0x213)]:undefined;upsertDevice(config,{'id':_0x41ff38,'mac':_0x13f206||undefined,'clientId':_0x3bc7b7||_0x1216bf?.['client'+'Id'],'board':_0x32b793[_0x71ccb3(0x23d)]||_0x32b793[_0x71ccb3(0x222)],'product':_0x32b793[_0x71ccb3(0x10f)+'t'],'hostname':_0x32b793['hostna'+'me'],'displayName':_0x285007,'ip':_0x32b793['ip']});const _0x750d80=applyHealth(config[_0x71ccb3(0x17c)+'s'][_0x41ff38],_0x32b793);return config[_0x71ccb3(0x17c)+'s'][_0x41ff38]=_0x750d80,_0x750d80;}function activeRecord(){const _0x4512ba=_0x24988b;return config[_0x4512ba(0x17c)+'s']?.[config[_0x4512ba(0x194)+_0x4512ba(0x11b)+'Id']]||null;}function currentCaps(){const _0x3e7025=_0x24988b,_0x2e511b=focusedRecord();return normalizeCaps({'board':_0x2e511b?.[_0x3e7025(0x23d)]||config[_0x3e7025(0x23d)],'name':_0x2e511b?.[_0x3e7025(0x23d)]||config[_0x3e7025(0x23d)],'product':_0x2e511b?.[_0x3e7025(0x10f)+'t']||config[_0x3e7025(0x10f)+'t']});}function currentMossOnline(){const _0x595be2=_0x24988b,_0x4e00c3=focusedRecord();if(_0x4e00c3&&isOnline(_0x4e00c3[_0x595be2(0x1e2)+'en'],Date['now']()))return!![];return![];}function writeRuntime(_0x136321){const _0x1bb9a5=_0x24988b;try{_0x385d9e[_0x1bb9a5(0x202)+_0x1bb9a5(0x10b)](CONFIG_DIR,{'recursive':!![]}),_0x385d9e[_0x1bb9a5(0x176)+'ileSyn'+'c'](RUNTIME_PATH,JSON[_0x1bb9a5(0x1a3)+_0x1bb9a5(0x233)]({'port':_0x136321,'pid':process[_0x1bb9a5(0x19c)],'at':Date[_0x1bb9a5(0x207)]()}));}catch(_0x55658f){console[_0x1bb9a5(0x13a)](_0x1bb9a5(0x1c8)+_0x1bb9a5(0x1da)+':',_0x55658f[_0x1bb9a5(0x160)+'e']);}}function clearListenRuntime(){clearRuntime(RUNTIME_PATH);}let config=loadConfig();for(const id of Object[_0x24988b(0x182)](config[_0x24988b(0x17c)+'s']||{})){const wrap={'camera':config[_0x24988b(0x17c)+'s'][id][_0x24988b(0x19d)]};stripOnboardCameraConfig(wrap)&&(config['device'+'s'][id][_0x24988b(0x19d)]=wrap['camera'],saveConfig(config));}let mqttStatus=_0x24988b(0x1fe);const runtime=createDeviceRuntime(),chatSyncTimers=new Map();let presenceTimer=null;const boardQueues=new Map();function focusedRecord(){const _0x308ab4=_0x24988b,_0x57eb23=getRequestDevice();if(_0x57eb23?.['id']&&config[_0x308ab4(0x17c)+'s']?.[_0x57eb23['id']])return config['device'+'s'][_0x57eb23['id']];return activeRecord();}function runtimeOf(_0x3e8668){const _0x27a0eb=_0x24988b;return runtime['of'](_0x3e8668||focusedRecord()?.['id']||config[_0x27a0eb(0x194)+_0x27a0eb(0x11b)+'Id']);}function deviceQueue(_0x3f8427){const _0xab2386=_0x24988b,_0x3e4b81=_0x3f8427||config['active'+_0xab2386(0x11b)+'Id']||'_';if(!boardQueues[_0xab2386(0x13e)](_0x3e4b81))boardQueues[_0xab2386(0x15f)](_0x3e4b81,createDeviceHttpQueue());return boardQueues[_0xab2386(0x108)](_0x3e4b81);}function initTaskNotify(){const _0x4b4ed7=_0x24988b;setTaskNotifyHooks({'emit':emit,'publishWakeAndText':_0x1add93=>{if(!currentMossOnline())return![];try{return publishWakeAndText(_0x1add93),!![];}catch{return![];}},'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()[_0x4b4ed7(0x22c)+_0x4b4ed7(0x1e7)+_0x4b4ed7(0x19e)]===!![]});}initTaskNotify();const sseClients=new Set();function emit(_0x2e43b0,_0x4480b4){const _0x4dd862=_0x24988b,_0x5b9dca=_0x4dd862(0x1c0)+'\x20'+_0x2e43b0+(_0x4dd862(0x20c)+'\x20')+JSON[_0x4dd862(0x1a3)+_0x4dd862(0x233)](_0x4480b4)+'\x0a\x0a';for(const _0xf751fa of sseClients){_0xf751fa[_0x4dd862(0x115)](_0x5b9dca);}}function statusPayload(_0x22f628={}){const _0x46d4e7=_0x24988b;return{...buildSessionView(config,{'mqttStatus':_0x46d4e7(0x1fe),'failCount':0x0,'lastError':'','voices':voicesFromRuntime(config,runtime)}),'status':_0x46d4e7(0x1fe),'bound':!![],'failCount':0x0,'lastError':'',..._0x22f628};}function inferFetchKind(_0x3e71fe,_0xf9ef4d={}){const _0x39f33c=_0x24988b;if(_0xf9ef4d[_0x39f33c(0x18b)])return _0xf9ef4d[_0x39f33c(0x18b)];if(_0x3e71fe[_0x39f33c(0x22d)+_0x39f33c(0x154)](_0x39f33c(0x1ea)))return _0x39f33c(0x1f8);if(_0x3e71fe===_0x39f33c(0x1fa)+'h')return _0x39f33c(0x18d);if(_0x3e71fe[_0x39f33c(0x22d)+_0x39f33c(0x154)](_0x39f33c(0x191)+'l'))try{const _0x5f22aa=JSON[_0x39f33c(0x1cc)](_0xf9ef4d[_0x39f33c(0x237)]||'{}');return _0x5f22aa[_0x39f33c(0x158)]===_0x39f33c(0x20a)?_0x39f33c(0x20a):_0x39f33c(0x131);}catch{return _0x39f33c(0x131);}return'ir';}function enqueueBoard(_0x337fb5,_0x3c7bb0,_0x41f900){return new Promise((_0x7138f9,_0xb3ebd)=>{const _0x5d3699=_0x1386;deviceQueue(_0x41f900)[_0x5d3699(0x10e)+'e'](_0x337fb5,async()=>{try{_0x7138f9(await _0x3c7bb0());}catch(_0xbd1493){_0xb3ebd(_0xbd1493);}});});}async function rawDeviceFetch(_0x499b7f,_0x1f66d2={}){const _0x382e5c=_0x24988b,{baseUrl:_0x43e74b,useLan:_0xd0e069,kind:_0x364655,timeoutMs:_0x335e5f,deviceId:_0x4cda33,..._0x360411}=_0x1f66d2,_0x2f548a=getRequestDevice(),_0x2155f5=_0x4cda33||_0x2f548a?.['id']||config[_0x382e5c(0x194)+_0x382e5c(0x11b)+'Id'];let _0x25d924=_0x43e74b||'';!_0x25d924&&_0xd0e069&&(_0x25d924=config[_0x382e5c(0x17c)+_0x382e5c(0x227)+'l']);!_0x25d924&&_0x2f548a?.[_0x382e5c(0x18e)+'l']&&(_0x25d924=_0x2f548a[_0x382e5c(0x18e)+'l']);!_0x25d924&&_0x2155f5&&(_0x25d924=config[_0x382e5c(0x17c)+'s']?.[_0x2155f5]?.[_0x382e5c(0x18e)+'l']||'');if(!_0x25d924)try{_0x25d924=requireActiveDevice(config)[_0x382e5c(0x18e)+'l'];}catch{_0x25d924=config[_0x382e5c(0x17c)+_0x382e5c(0x227)+'l'];}if(!_0x25d924){const _0x156b7a=new Error(_0x382e5c(0x157));_0x156b7a[_0x382e5c(0x137)]=0x199;throw _0x156b7a;}const _0xacbcf2=''+_0x25d924+_0x499b7f,_0x4646e6=await fetch(_0xacbcf2,{..._0x360411,'signal':_0x1f66d2[_0x382e5c(0x1c1)]||AbortSignal[_0x382e5c(0x1de)+'t'](_0x335e5f||0x1f40),'headers':{'Content-Type':_0x382e5c(0x165)+_0x382e5c(0x164)+_0x382e5c(0x116),..._0x1f66d2['header'+'s']||{}}}),_0x125738=await _0x4646e6[_0x382e5c(0x1a5)]();let _0x57d0e1={};try{_0x57d0e1=_0x125738?JSON[_0x382e5c(0x1cc)](_0x125738):{};}catch{_0x57d0e1={'raw':_0x125738};}if(!_0x4646e6['ok']){const _0x5958ff=new Error(_0x57d0e1[_0x382e5c(0x160)+'e']||_0x382e5c(0x21c)+'回\x20'+_0x4646e6[_0x382e5c(0x137)]);_0x5958ff['detail']=_0x57d0e1;throw _0x5958ff;}return _0x57d0e1;}function deviceFetch(_0x13d4c3,_0x34f14c={}){const _0x51a936=_0x24988b,_0x340b2d=getRequestDevice(),_0x533b00=_0x34f14c[_0x51a936(0x17c)+'Id']||_0x340b2d?.['id']||config[_0x51a936(0x194)+_0x51a936(0x11b)+'Id'];return enqueueBoard(inferFetchKind(_0x13d4c3,_0x34f14c),()=>rawDeviceFetch(_0x13d4c3,{..._0x34f14c,'deviceId':_0x533b00}),_0x533b00);}function applyVoice(_0x1520eb,_0x17b1cc){const _0x324eb4=_0x24988b,_0x41a374=_0x1520eb||focusedRecord()?.['id']||config[_0x324eb4(0x194)+_0x324eb4(0x11b)+'Id'],_0x311a87=String(_0x17b1cc||'')[_0x324eb4(0x132)]();if(!_0x41a374||!_0x311a87)return;const _0x5565f8=runtime['of'](_0x41a374);if(config[_0x324eb4(0x17c)+'s']?.[_0x41a374])config[_0x324eb4(0x17c)+'s'][_0x41a374]['voice']=_0x311a87;_0x311a87!==_0x5565f8[_0x324eb4(0x1e4)]&&(_0x5565f8['voice']=_0x311a87,emit(_0x324eb4(0x137),statusPayload()));}function emitChatLines(_0x2f2df0,_0x27038c){const _0xc10ad0=_0x24988b;for(const _0x25b914 of _0x2f2df0){emit('mqtt',{'type':_0xc10ad0(0x236)+'essage','payload':{'role':_0x25b914['role'],'text':_0x25b914[_0xc10ad0(0x1a5)],'state':_0x25b914[_0xc10ad0(0x187)],'deviceId':_0x27038c}}),_0x25b914[_0xc10ad0(0x170)]==='assist'+_0xc10ad0(0x1ef)&&maybeAckYunxiangjiFromChat(_0x25b914[_0xc10ad0(0x1a5)]),(_0x25b914[_0xc10ad0(0x170)]==='system'||_0x25b914['role']===_0xc10ad0(0x1e5)+_0xc10ad0(0x1ef))&&maybeApplyYunxiangjiFromChat(_0x25b914[_0xc10ad0(0x1a5)]);}}async function syncChatNow(_0x5860ff){const _0x2cf686=_0x24988b,_0x357a37=_0x5860ff||focusedRecord()?.['id']||config['active'+'Device'+'Id'],_0x116b6f=config[_0x2cf686(0x17c)+'s']?.[_0x357a37];if(!_0x116b6f?.[_0x2cf686(0x18e)+'l'])return;const _0x1093ac=runtime['of'](_0x357a37),_0xceb057=_0x709a10=>deviceFetch(_0x2cf686(0x162)+_0x2cf686(0x177)+_0x2cf686(0x1e6)+_0x709a10,{'timeoutMs':0x7d0,'kind':_0x2cf686(0x1f8),'deviceId':_0x357a37,'baseUrl':_0x116b6f[_0x2cf686(0x18e)+'l']});let _0x215133=await _0xceb057(_0x1093ac[_0x2cf686(0x149)+_0x2cf686(0x1fc)]),_0x2588bb=applyChatDelta({'seq':_0x1093ac[_0x2cf686(0x149)+'rsor'],'lines':[]},_0x215133);_0x2588bb[_0x2cf686(0x138)+'d']&&(_0x215133=await _0xceb057(_0x2588bb[_0x2cf686(0x186)]),_0x2588bb=applyChatDelta({'seq':_0x2588bb[_0x2cf686(0x186)],'lines':[]},_0x215133)),_0x1093ac[_0x2cf686(0x149)+_0x2cf686(0x1fc)]=_0x2588bb['seq'],ingestYunxiangjiFromDevicePayload(_0x215133,_0x357a37),_0x215133['voice']&&shouldApplyRemoteVoice({'remoteVoice':_0x215133[_0x2cf686(0x1e4)],'localVoice':_0x1093ac[_0x2cf686(0x1e4)],'wokeAt':_0x1093ac[_0x2cf686(0x232)]})&&applyVoice(_0x357a37,_0x215133[_0x2cf686(0x1e4)]),emitChatLines(_0x2588bb[_0x2cf686(0x1c7)],_0x357a37);}function scheduleChatSync(_0x51adae){const _0x327a06=_0x24988b,_0x423af4=_0x51adae||focusedRecord()?.['id']||config[_0x327a06(0x194)+_0x327a06(0x11b)+'Id'];if(!_0x423af4)return;const _0x20edac=chatSyncTimers['get'](_0x423af4);_0x20edac&&(clearTimeout(_0x20edac),chatSyncTimers[_0x327a06(0x1be)](_0x423af4));const _0x8a80df=chatSyncIntervalMs({'voice':runtime['of'](_0x423af4)[_0x327a06(0x1e4)]});if(!_0x8a80df)return;chatSyncTimers[_0x327a06(0x15f)](_0x423af4,setTimeout(()=>{const _0x31c5f2=_0x327a06;syncChatNow(_0x423af4)['catch'](()=>{})[_0x31c5f2(0x1b7)+'y'](()=>scheduleChatSync(_0x423af4));},_0x8a80df));}async function probeOne(_0x3bd175,_0x30d7b2=Date[_0x24988b(0x207)]()){const _0x5f2b77=_0x24988b,_0x3bac7b=config['device'+'s']?.[_0x3bd175];if(!_0x3bac7b)return;const _0x4a35aa=await enqueueBoard(_0x5f2b77(0x18d),()=>probeDevice(_0x3bac7b,{'now':_0x30d7b2,'timeoutMs':0x7d0}),_0x3bd175),_0x1e3970=_0x3bac7b[_0x5f2b77(0x1e2)+'en'];Object[_0x5f2b77(0x185)](_0x3bac7b,_0x4a35aa[_0x5f2b77(0x17c)]);_0x3bd175===config[_0x5f2b77(0x194)+_0x5f2b77(0x11b)+'Id']&&(_0x4a35aa[_0x5f2b77(0x161)]&&_0x4a35aa[_0x5f2b77(0x17c)][_0x5f2b77(0x18e)+'l']&&(config[_0x5f2b77(0x17c)+'BaseUr'+'l']=_0x4a35aa[_0x5f2b77(0x17c)][_0x5f2b77(0x18e)+'l']));const _0x4e8923=runtime['of'](_0x3bd175);_0x4a35aa[_0x5f2b77(0x18d)]?.[_0x5f2b77(0x1e4)]&&shouldApplyRemoteVoice({'remoteVoice':_0x4a35aa[_0x5f2b77(0x18d)][_0x5f2b77(0x1e4)],'localVoice':_0x4e8923['voice'],'wokeAt':_0x4e8923[_0x5f2b77(0x232)]})&&applyVoice(_0x3bd175,_0x4a35aa[_0x5f2b77(0x18d)]['voice']),_0x4a35aa[_0x5f2b77(0x18d)]&&shouldFetchChatSync({'voice':_0x4a35aa['health'][_0x5f2b77(0x1e4)]||_0x4e8923['voice'],'remoteSeq':_0x4a35aa['health'][_0x5f2b77(0x1f9)+'eq'],'localSeq':_0x4e8923[_0x5f2b77(0x149)+_0x5f2b77(0x1fc)]})&&(syncChatNow(_0x3bd175)[_0x5f2b77(0x198)](()=>{}),scheduleChatSync(_0x3bd175)),Number(_0x4a35aa['health']?.[_0x5f2b77(0x14d)+_0x5f2b77(0x16d)+_0x5f2b77(0x1ee)]||_0x4a35aa[_0x5f2b77(0x17c)]?.['yunxia'+_0x5f2b77(0x22b)+'tbox']||0x0)>0x0&&pullYunxiangjiOutbox(_0x3bd175)['catch'](()=>{}),_0x4a35aa[_0x5f2b77(0x17c)][_0x5f2b77(0x1e2)+'en']!==_0x1e3970&&(emit(_0x5f2b77(0x137),statusPayload()),_0x4a35aa[_0x5f2b77(0x161)]&&scheduleYunxiangjiInboxPush(_0x3bd175));}function startPresenceWatch(){if(presenceTimer)return;const _0x35a246=()=>{const _0x1ccfa9=_0x1386,_0x2b961d=Object['keys'](config['device'+'s']||{});for(const _0x871fe0 of _0x2b961d[_0x1ccfa9(0x130)](0x0,0x4)){probeOne(_0x871fe0)['catch'](()=>{});}};_0x35a246(),presenceTimer=setInterval(_0x35a246,0x7d0);}function ingestYunxiangjiFromDevicePayload(_0x1ba33c,_0x5b1318){const _0x4ae0b6=_0x24988b,_0x595275=_0x1ba33c?.[_0x4ae0b6(0x14d)+'ngji_c'+_0x4ae0b6(0x14a)]||_0x1ba33c?.[_0x4ae0b6(0x1b0)];if(!Array[_0x4ae0b6(0x122)+'y'](_0x595275)||!_0x595275[_0x4ae0b6(0x193)])return;const _0xb00181=ingestDeviceYunxiangjiCreates(_0x595275),_0xf5b016=_0xb00181[_0x4ae0b6(0x15b)]||_0x595275[_0x4ae0b6(0x190)](_0x5b3ce2=>_0x5b3ce2?.['id'])['filter'](Boolean);if(!_0xf5b016[_0x4ae0b6(0x193)])return;deviceFetch(_0x4ae0b6(0x20b)+'angji/'+'outbox'+_0x4ae0b6(0x1cd),{'method':_0x4ae0b6(0x1f6),'body':JSON[_0x4ae0b6(0x1a3)+_0x4ae0b6(0x233)]({'ids':_0xf5b016}),'kind':'chat','timeoutMs':0x7d0,'deviceId':_0x5b1318})['catch'](()=>{}),scheduleYunxiangjiInboxPush(_0x5b1318);}async function pullYunxiangjiOutbox(_0x15b659){const _0x5a54db=_0x24988b,_0x32b397=_0x15b659||focusedRecord()?.['id']||config[_0x5a54db(0x194)+_0x5a54db(0x11b)+'Id'],_0x53f570=await deviceFetch('/yunxi'+_0x5a54db(0x201)+_0x5a54db(0x13b),{'timeoutMs':0x7d0,'kind':_0x5a54db(0x1f8),'deviceId':_0x32b397});ingestYunxiangjiFromDevicePayload(_0x53f570,_0x32b397);}const inboxPushTimers=new Map();function scheduleYunxiangjiInboxPush(_0x3b06ad){const _0x533246=_0x24988b,_0xcdb898=_0x3b06ad||focusedRecord()?.['id']||config['active'+_0x533246(0x11b)+'Id'];if(!_0xcdb898)return;const _0x49ebdb=inboxPushTimers[_0x533246(0x108)](_0xcdb898);if(_0x49ebdb)clearTimeout(_0x49ebdb);inboxPushTimers[_0x533246(0x15f)](_0xcdb898,setTimeout(()=>{const _0x2fa8b8=_0x533246;inboxPushTimers[_0x2fa8b8(0x1be)](_0xcdb898),pushYunxiangjiInbox(_0xcdb898)['catch'](()=>{});},0x12c));}async function pushYunxiangjiInbox(_0x2340e1){const _0x4e8820=_0x24988b,_0xf55b2=_0x2340e1||focusedRecord()?.['id']||config[_0x4e8820(0x194)+_0x4e8820(0x11b)+'Id'];if(!_0xf55b2)return;await deviceFetch(_0x4e8820(0x20b)+_0x4e8820(0x201)+'inbox',{'method':'POST','body':JSON[_0x4e8820(0x1a3)+_0x4e8820(0x233)](exportYunxiangjiInbox()),'kind':_0x4e8820(0x1f8),'timeoutMs':0x7d0,'deviceId':_0xf55b2});}function requireDeviceOnline(){const _0x38f535=_0x24988b;if(!currentMossOnline())throw new Error(_0x38f535(0x1db)+'线');}async function publishWakeAndText(_0x2a4e00,_0x436475){const _0x425545=_0x24988b;requireDeviceOnline();const _0x332adc=focusedRecord()?.['id']||config['active'+_0x425545(0x11b)+'Id'],_0x5ffaa1={'text':String(_0x2a4e00||'')};if(_0x436475)_0x5ffaa1[_0x425545(0x15e)+'ce']=String(_0x436475);await deviceFetch(_0x425545(0x162)+_0x425545(0x1c6),{'method':_0x425545(0x1f6),'body':JSON[_0x425545(0x1a3)+_0x425545(0x233)](_0x5ffaa1),'kind':_0x425545(0x1f8),'timeoutMs':0xfa0,'deviceId':_0x332adc}),syncChatNow(_0x332adc)[_0x425545(0x198)](()=>{}),scheduleChatSync(_0x332adc);}const app=_0x2f0af1();app['use'](_0xb48ed8()),app[_0x24988b(0x12a)](_0x2f0af1[_0x24988b(0x116)]({'limit':_0x24988b(0x23c)})),app[_0x24988b(0x12a)](attachRequestDevice(()=>config)),registerMihomeRoutes(app,{'configDir':CONFIG_DIR,'onMcpAccessChanged':()=>{const _0x5ce2b1=_0x24988b;try{bridgeManager['restar'+_0x5ce2b1(0x143)+'r'](_0x5ce2b1(0x20e)+_0x5ce2b1(0x1d8));}catch(_0x5e06aa){console[_0x5ce2b1(0x13a)]('[mihom'+'e]\x20res'+_0x5ce2b1(0x1c2)+'cp',_0x5e06aa[_0x5ce2b1(0x160)+'e']);}}}),registerDeviceRoutes(app,{'getConfig':()=>config,'saveConfig':()=>saveConfig(config),'getExtras':()=>{const _0x4d4aff=_0x24988b,_0x5076c4=focusedRecord(),_0x315f06=_0x5076c4?.['id']||config['active'+_0x4d4aff(0x11b)+'Id'];return{'mqttStatus':_0x4d4aff(0x1fe),'mossOnline':currentMossOnline(),'capabilities':currentCaps(),'failCount':0x0,'lastError':'','mossChatState':_0x315f06?runtime['of'](_0x315f06)[_0x4d4aff(0x1e4)]:_0x4d4aff(0x1ce),'focusedDeviceId':_0x315f06||'','voices':voicesFromRuntime(config,runtime)};},'onActivate':_0x3e9c16=>{const _0x2af292=_0x24988b;runtime['resetC'+'hat'](_0x3e9c16['device']['id']),config[_0x2af292(0x17c)+_0x2af292(0x227)+'l']=_0x3e9c16['device'][_0x2af292(0x18e)+'l']||config['device'+_0x2af292(0x227)+'l']||'',applyDeviceHealthTo(config,_0x3e9c16[_0x2af292(0x17c)]),emit('status',statusPayload()),probeOne(_0x3e9c16['device']['id'])[_0x2af292(0x198)](()=>{});}}),app['get'](_0x24988b(0x1bc)+_0x24988b(0x212),(_0x19c16f,_0x947575)=>{const _0x596942=_0x24988b;_0x947575[_0x596942(0x180)+_0x596942(0x121)]('Conten'+_0x596942(0x1cf),_0x596942(0x169)+_0x596942(0x1dc)+_0x596942(0x1d5)),_0x947575[_0x596942(0x180)+_0x596942(0x121)](_0x596942(0x1c4)+_0x596942(0x13f)+'l',_0x596942(0x140)+'he'),_0x947575[_0x596942(0x180)+_0x596942(0x121)](_0x596942(0x1f2)+_0x596942(0x20f),_0x596942(0x118)+'live'),_0x947575[_0x596942(0x12f)+_0x596942(0x141)](),sseClients[_0x596942(0x22f)](_0x947575),_0x947575['write'](_0x596942(0x1c0)+_0x596942(0x16b)+_0x596942(0x1d7)+':\x20'+JSON[_0x596942(0x1a3)+_0x596942(0x233)](statusPayload())+'\x0a\x0a'),_0x19c16f['on']('close',()=>sseClients['delete'](_0x947575));}),app['post']('/api/d'+_0x24988b(0x135)+'r',async(_0x9bf89e,_0xabe9d3)=>{const _0x142c01=_0x24988b;try{const _0x31bc80=await discoverMossDevices({'lastHostname':config[_0x142c01(0x151)+_0x142c01(0x174)],'lastBaseUrl':config[_0x142c01(0x17c)+'BaseUr'+'l']});_0xabe9d3[_0x142c01(0x116)]({'devices':_0x31bc80});}catch(_0x27d8df){_0xabe9d3[_0x142c01(0x137)](0x1f4)['json']({'message':_0x27d8df[_0x142c01(0x160)+'e']||_0x142c01(0x173)+'败'});}}),app[_0x24988b(0x1fb)]('/api/d'+_0x24988b(0x175)+_0x24988b(0x172),async(_0x3c5de5,_0x3b9a66)=>{const _0x4d25d1=_0x24988b,_0x312968=String(_0x3c5de5[_0x4d25d1(0x237)]?.['baseUr'+'l']||'')[_0x4d25d1(0x217)+'e'](/\/$/,'');if(!_0x312968)return _0x3b9a66[_0x4d25d1(0x137)](0x190)[_0x4d25d1(0x116)]({'message':_0x4d25d1(0x11f)+_0x4d25d1(0x1e9)});const _0x1beb52=config[_0x4d25d1(0x17c)+_0x4d25d1(0x227)+'l'];config[_0x4d25d1(0x17c)+_0x4d25d1(0x227)+'l']=_0x312968;try{const _0x1f3d7a=await deviceFetch(_0x4d25d1(0x1fa)+'h',{'baseUrl':_0x312968});_0x1f3d7a[_0x4d25d1(0x1f0)+'me']&&(config[_0x4d25d1(0x151)+_0x4d25d1(0x174)]=_0x1f3d7a[_0x4d25d1(0x1f0)+'me']),applyDeviceHealthTo(config,_0x1f3d7a),saveConfig(config),_0x3b9a66[_0x4d25d1(0x116)]({'ok':!![],'health':_0x1f3d7a});}catch(_0x1a6079){config[_0x4d25d1(0x17c)+_0x4d25d1(0x227)+'l']=_0x1beb52,_0x3b9a66[_0x4d25d1(0x137)](0x190)['json']({'message':_0x4d25d1(0x221)+'不上。请确认'+'电脑和\x20MO'+_0x4d25d1(0x1a2)+_0x4d25d1(0x188)+',并检查\x20I'+'P。','detail':_0x1a6079[_0x4d25d1(0x160)+'e']});}}),app[_0x24988b(0x108)](_0x24988b(0x239)+'evice/'+_0x24988b(0x18d),async(_0x50581c,_0x19746e)=>{const _0xdb05d3=_0x24988b;try{const _0x5cdf8b=await deviceFetch('/healt'+'h');applyDeviceHealth(_0x5cdf8b,{'id':focusedRecord()?.['id']||config[_0xdb05d3(0x194)+_0xdb05d3(0x11b)+'Id'],'clientId':focusedRecord()?.[_0xdb05d3(0x1d6)+'Id']}),saveConfig(config),_0x19746e['json'](_0x5cdf8b);}catch(_0x50a542){_0x19746e[_0xdb05d3(0x137)](0x190)[_0xdb05d3(0x116)]({'message':_0x50a542[_0xdb05d3(0x160)+'e']});}}),app[_0x24988b(0x1fb)](_0x24988b(0x1a9)+_0x24988b(0x206)+'n',async(_0x40e3c1,_0x46fa0f)=>{const _0x50e59e=_0x24988b,_0x2725ed=String(_0x40e3c1[_0x50e59e(0x237)]?.[_0x50e59e(0x18e)+'l']||config[_0x50e59e(0x17c)+_0x50e59e(0x227)+'l']||'')[_0x50e59e(0x217)+'e'](/\/$/,''),_0x10215e=String(_0x40e3c1[_0x50e59e(0x237)]?.[_0x50e59e(0x106)+_0x50e59e(0x21e)]||_0x40e3c1[_0x50e59e(0x237)]?.['displa'+'y_name']||'')[_0x50e59e(0x132)]();if(!_0x2725ed)return _0x46fa0f[_0x50e59e(0x137)](0x190)[_0x50e59e(0x116)]({'message':'请先连接设备'});try{const _0x2c7da0=await deviceFetch(_0x50e59e(0x1fa)+'h',{'baseUrl':_0x2725ed,'timeoutMs':0xbb8,'kind':'health'}),_0x4d9e9d=resolveUpsertId(config,{'mac':_0x2c7da0[_0x50e59e(0x1e3)],'clientId':_0x2c7da0[_0x50e59e(0x1d6)+_0x50e59e(0x21f)],'id':config['active'+_0x50e59e(0x11b)+'Id']}),_0x4291ac=upsertDevice(config,{'id':_0x4d9e9d,'mac':normalizeMac(_0x2c7da0[_0x50e59e(0x1e3)])||undefined,'clientId':_0x2c7da0[_0x50e59e(0x1d6)+_0x50e59e(0x21f)],'displayName':_0x10215e||(_0x2c7da0[_0x50e59e(0x106)+'y_name']&&!isBoardLabel(_0x2c7da0[_0x50e59e(0x106)+'y_name'])?_0x2c7da0[_0x50e59e(0x106)+_0x50e59e(0x213)]:undefined),'board':_0x2c7da0['board']||_0x2c7da0[_0x50e59e(0x222)],'product':_0x2c7da0['produc'+'t'],'hostname':_0x2c7da0[_0x50e59e(0x1f0)+'me'],'baseUrl':_0x2725ed,'ip':_0x2c7da0['ip'],'lastSeen':Date[_0x50e59e(0x207)]()});config[_0x50e59e(0x17c)+_0x50e59e(0x227)+'l']=_0x2725ed;if(_0x2c7da0['hostna'+'me'])config[_0x50e59e(0x151)+_0x50e59e(0x174)]=_0x2c7da0[_0x50e59e(0x1f0)+'me'];config[_0x50e59e(0x1e1)]=!![],config[_0x50e59e(0x194)+_0x50e59e(0x11b)+'Id']=_0x4291ac['id'],saveConfig(config),emit(_0x50e59e(0x137),statusPayload()),_0x46fa0f['json']({'ok':!![],'mossOnline':!![],'device':_0x4291ac});}catch(_0x47fd64){_0x46fa0f[_0x50e59e(0x137)](0x190)[_0x50e59e(0x116)]({'message':_0x50e59e(0x1af)+_0x50e59e(0x1ab)+'请确认电脑和'+'设备在同一\x20'+_0x50e59e(0x1f1),'detail':_0x47fd64[_0x50e59e(0x160)+'e']});}}),app[_0x24988b(0x1fb)](_0x24988b(0x1a0)+'hat/wa'+'ke',async(_0x49cb8d,_0x46ce60)=>{const _0x32e38c=_0x24988b,_0x2e191b=focusedRecord()?.['id']||config[_0x32e38c(0x194)+'Device'+'Id'],_0x56a226=runtime['of'](_0x2e191b);try{requireDeviceOnline();if(_0x56a226[_0x32e38c(0x1e4)]===_0x32e38c(0x1b9)+_0x32e38c(0x107)||_0x56a226[_0x32e38c(0x1e4)]==='activa'+_0x32e38c(0x107))throw new Error(_0x56a226[_0x32e38c(0x1e4)]===_0x32e38c(0x15a)+_0x32e38c(0x107)?_0x32e38c(0x230)+_0x32e38c(0x1bd)+_0x32e38c(0x19b)+'无法建立语音'+'链路':'MOSS\x20正'+'在连接语音服'+_0x32e38c(0x1ac)+'试');if(_0x56a226[_0x32e38c(0x16f)+_0x32e38c(0x192)])throw new Error(_0x32e38c(0x12c)+_0x32e38c(0x1ad)+_0x32e38c(0x178));if(Date[_0x32e38c(0x207)]()-_0x56a226[_0x32e38c(0x232)]<0x9c4)throw new Error('唤醒操作过于'+_0x32e38c(0x1ae)+'再试');_0x56a226['wakeIn'+_0x32e38c(0x192)]=!![],_0x56a226[_0x32e38c(0x232)]=Date['now']();const _0x5d61c6=await deviceFetch(_0x32e38c(0x162)+_0x32e38c(0x235),{'method':_0x32e38c(0x1f6),'body':'{}','kind':'chat','timeoutMs':0xfa0}),_0x5b94bb=voiceFromWakeAck(_0x5d61c6);if(_0x5b94bb[_0x32e38c(0x17e)]){if(_0x5b94bb[_0x32e38c(0x17e)]==='connec'+_0x32e38c(0x107))throw new Error(_0x32e38c(0x208)+_0x32e38c(0x155)+_0x32e38c(0x1ac)+'试');if(_0x5b94bb[_0x32e38c(0x17e)]===_0x32e38c(0x1d4))throw new Error(_0x32e38c(0x230)+_0x32e38c(0x1bd)+_0x32e38c(0x19b)+'无法建立语音'+'链路');throw new Error(_0x5b94bb[_0x32e38c(0x17e)]||_0x32e38c(0x196)+'法唤醒');}applyVoice(_0x2e191b,_0x5b94bb[_0x32e38c(0x1e4)]),syncChatNow(_0x2e191b)[_0x32e38c(0x198)](()=>{}),scheduleChatSync(_0x2e191b),_0x46ce60['json']({'ok':!![],'payload':_0x5d61c6});}catch(_0x15067f){_0x46ce60[_0x32e38c(0x137)](0x190)[_0x32e38c(0x116)]({'message':_0x15067f[_0x32e38c(0x160)+'e']});}finally{_0x56a226[_0x32e38c(0x16f)+'Flight']=![];}}),app[_0x24988b(0x1fb)](_0x24988b(0x241)+'w',async(_0x38c346,_0x20a164)=>{const _0x2ce9ab=_0x24988b;try{requireDeviceOnline();const _0x55eafb=String(_0x38c346['body']?.[_0x2ce9ab(0x17c)]||'')[_0x2ce9ab(0x132)](),_0xfaea34=String(_0x38c346[_0x2ce9ab(0x237)]?.['action']||'')[_0x2ce9ab(0x132)]();if(!_0x55eafb||!_0xfaea34)throw new Error(_0x2ce9ab(0x112)+'作');const _0x32bb0f={'device':_0x55eafb,'action':_0xfaea34};if(_0x38c346[_0x2ce9ab(0x237)]?.[_0x2ce9ab(0x134)]!=null)_0x32bb0f[_0x2ce9ab(0x134)]=Number(_0x38c346['body']['speed']);const _0x1b6f99=await deviceFetch(_0x2ce9ab(0x18c),{'method':_0x2ce9ab(0x1f6),'body':JSON[_0x2ce9ab(0x1a3)+_0x2ce9ab(0x233)](_0x32bb0f),'timeoutMs':0xfa0});emit(_0x2ce9ab(0x1a7),{'type':_0x2ce9ab(0x136)+'te','payload':_0x1b6f99,'deviceId':focusedRecord()?.['id']||config[_0x2ce9ab(0x194)+_0x2ce9ab(0x11b)+'Id']}),_0x20a164['json']({'ok':!![],..._0x1b6f99});}catch(_0x390371){_0x20a164['status'](0x190)['json']({'message':_0x390371['messag'+'e']});}}),app['post']('/api/h'+'w/stat'+'us',async(_0x588823,_0x3dd945)=>{const _0x539fad=_0x24988b;try{requireDeviceOnline();const _0x28a4fc=await deviceFetch(_0x539fad(0x18c),{'timeoutMs':0xfa0});emit(_0x539fad(0x1a7),{'type':_0x539fad(0x136)+'te','payload':_0x28a4fc,'deviceId':focusedRecord()?.['id']||config['active'+'Device'+'Id']}),_0x3dd945[_0x539fad(0x116)]({'ok':!![],..._0x28a4fc});}catch(_0x273a41){_0x3dd945[_0x539fad(0x137)](0x190)['json']({'message':_0x273a41[_0x539fad(0x160)+'e']});}});async function fetchDeviceConfig(){const _0x5ce706=_0x24988b,_0x59af90=await deviceFetch(_0x5ce706(0x231)+_0x5ce706(0x10c)+'ce');return{'ok':!![],..._0x59af90};}async function saveDeviceConfig(_0x19b7b9){const _0x5e64ff=_0x24988b;return deviceFetch(_0x5e64ff(0x231)+_0x5e64ff(0x10c)+'ce',{'method':_0x5e64ff(0x17f),'body':JSON[_0x5e64ff(0x1a3)+_0x5e64ff(0x233)](_0x19b7b9)});}function _0x30a3(){const _0x16c116=['AwrSzq','Dc1uExbL','DMLJzq','odGXmJG2twfUqKPM','mte4otaXnNDfsxjRzW','Cgf5Bg9H','yNvZEq','DhjLyw0','y2XPzw50','CWPKyxrH','AwHVBwu','55s15zMO5OIw5OYj6zsU','Dw50Aw1L','tu9tuYdNPRS','DMvUDc1Z','y3vZDg9T','DgLTzw91','mtHfBvffugi','AxzLvgLT','yM91BMq','BgfZDfnL','BwfJ','DM9Py2u','yxnZAxn0','Aw5Jzt0','vgfZA0nV','Bc9JB250','u1mG5zYW5z2a','l2nOyxq','DfrPBwvV','lM1VC3mT','AhrTBa','DxrIB3G','yw50','Ag9ZDg5H','v2KTrMNJGii','q29UBMvJ','D2LUmZi','l2fWAs9P','5PEG5Rov6iEQ5yQO5OMt5BYa','ue9tva','57Y65Bcr6kAb5yIG6zMK55Qe','y2HHDa','y2HHDf9Z','l2HLywX0','Cg9ZDa','CNnVCG','B25Jzq','CMvHzhK','CI90zxn0','56UV5y+Jia','yw5NAMKV','BwTKAxjt','lZeYnY4W','Bg9N','CL0G5PYQ6io95OYc','Aw5Kl2XH','BM93','tu9tuYdMRAm','y2XVC2u','C3rVCa','l3L1BNHP','cMrHDge6','5PYQ5OM+5yIW5yMn56UV6Ag1','Bw9ZCY1T','DgLVBG','y2vZ','ue9sva','DMvUDhm','Ev9Uyw1L','Ew8TBw9Z','Ag9TzwrP','tu9tu19p','CMvWBgfJ','CI9SzwfY','Dw5Yzwy','B2jQzwn0','igfUBM91','tu9tuYdOV5q','lMPZB24','Eu5HBwu','x2LK','Bw1HBMq','5OM+5yIW5zYW5z2a5l2g6l+E','BMfTzq','u2vYDMvY','ChjVBxb0','BMnLigzH','w21JCf0G','qMfZzvvY','Bgv0zq','DhjPBMC','5lIa5lU95Qgm6z2I5PYn5yQH','BMDQAu91','D2fRzu9U','C3rHCNrZ','iowpIUwqJUE7REERR+wpOW','ywrK','tu9tuYdLV5K','l2nVBMzP','D29Rzuf0','Awz5','y29UzMLN','D2fRzq','y2HHDc5T','yM9KEq','l2LYl3jL','l2fWAs9K','BgLZDgvU','ruferfjj','mw1I','yM9HCMq','5OIw5zcn56EW5lIn5zci5Rov','w3nLCNzL','l2LYl2LT','l2fWAs9O','57QI5Asw56cb5Qc85BYp5lIn','Cg9YDa','zgLZCgXH','DgLUzW','z2v0','77Ym57UN57UT5l2/55sOia','CI9PBxbV','Ew5J','zY9KzxzP','CMvXDwvZ','zw5XDwv1','ChjVzhvJ','77Ym5Ps55yMn56UV5lUJ56cb','DgHLBG','57Y65Bcr5Asw6k6+5OIw5yQO','5z2h6kkR5y2G55sO','y29Kzq','D3jPDgu','ANnVBG','5lQr5y+W5O6N5yI25AsX6lsL','A2vLCc1H','Chv0','CMvHzezP','rgv2AwnL','mtu0uvDOzM1Z','CI9LEhbV','lJaUmtO','6k+35AgR5yAzie1p','CL0G5BEY57Ut5P2F','zgvY','AxnbCNjH','mZbvzNntyK0','yw5K','ios7JEIIQ+wfTUs7LUEOIW','C2vUzezP','zwXLDgu','DxrMoa','l2LYl2rL','DxnL','zgLZDa','5lIk5lIa5QYH5zsK6yAs6l+y','CgXHDgzV','u0Lhvevs','zMX1C2Hi','C2XPy2u','zM9SBg93','DhjPBq','CNvUDgLT','C3bLzwq','AxnJB3zL','AhCUC3rH','C3rHDhvZ','CMv3B3vU','BgLNAhq','D2fYBG','B3v0yM94','5y2G55sO56UV5y+J55Qe5lIk','DhLWzq','AgfZ','q29UDhjV','BM8Ty2fJ','zwfKzxjZ','B2zM','DfnLCNzL','zw91Da','l2fWAq','y2uVzgvS','zw52','zxHPDa','y2HHDen1','CMvHDgvZ','AwqG5lIn5zci5Rov','DMLJzs9K','ExvUEgLH','zhK9','l2LYl2v4','A2vLCefS','BgfZDeHV','5BQp5y2G55sO77Ym5B2t5yMn','rvjtsu9o','v2L0Aa','5zYO6l+E5O6L6k+T6z+Z5PYn','yw5Kl2rL','6k+35ywi6ycj5OUP6k6+5Ash','ywn0Aw9U','Bw1HBMqV','ywn0AxzH','ywnRzwq','CI9JB21T','ofzUrvbzBG','yw5UB3vU','C2v0','BwvZC2fN','B25SAw5L','l2nOyxqV','BgvtEw5J','yxrPB24V','yxbWBgLJ','CY1HAq','Bwv0Ag9K','odeWnJmWwwDNuLL5','Dgv4Dc9L','mtm5otGZog1vAu1Usq','ihn0yxr1','mta4mdm4mgjbtg1cAq','BMDQAv9V','w3L1BNHP','D2fRzuLU','CM9Szq','DMLJzxm','C2vSzwn0','5OMR5O+p5Bga5z+F572r5AsX','C3rUyw1L','zxzPy2uV','D3jPDgvg','C3LUyZ9Z','5Asn77Ym6k+356In5ycz','tu9tu19w','Dg9ju09t','zgLYBMfT','zgv2AwnL','tLvtrq','zxjYB3i','ufvu','C2v0sgvH','55s15zMOigLKia','A2v5CW','6l295BYa5y+r55wm6z2I77YA','y21K','yxnZAwDU','C2vX','C3rHDgu','ifDPluzP','zgvZA3rV','DgvZDa','A2LUza','l2H3','AgvHBhrO','yMfZzvvY','CL0G','BwfW','l2DPBwjH','rMXPz2H0','BgvUz3rO','ywn0AxzL','yxjU','tu9tuYdML6a','uevox0js','y2f0y2G','mtuZodm1mMfswNDxBG','yw5NAMLD','5Rs75lIT77Yj77Ym5PQc5PE2','CgLK','y2fTzxjH','BxbSzxrL','mtrlENjvs04','l2fWAs9J','AM9PBG','u1mG5zYO5zcm5lIa','C3rYAw5N','AxjFzgf0','Dgv4Da','tK9erv9f','Bxf0Da','zf9Pza','l2fWAs9I','6z2I77Ym6k+35ywi5OMN6kgm','ie1pu1pJGii','5yQH77Ym6k+356In5zco5yAn','5zYO562j5B6f6k6+5Ash5zUE','6Akr57Mb77Ym6k+356In5ycz','5RkH6io955M76k6W6l+z5y+W','AxrLBxm','5Rwp6kEi5zMO77YA','y29TBwfU','Aw5JBhvK','CI9KzxzP','l2LYl2nV','B3bLBG','zMLUywXS','5lYA54oT5PU05PAW44cc','y29UBMvJ','zeLK','C3rHCNq','l2fWAs9L','56km77Yi5y2h57QNl+A/Ga','zgvSzxrL','t1Dtrvi','zxzLBNq6','C2LNBMfS','DgfYDcbT','C3rHDgLJ','q2fJAguT','zs5QC29U','C2f5','ywrKzwq','5PEG5Rov5yAz5ywLihi','sevbra','C3rDigjV','mJyWm0vVsM1Vra','CgfYC2u','l2fJAW'];_0x30a3=function(){return _0x16c116;};return _0x30a3();}app[_0x24988b(0x108)](_0x24988b(0x239)+'evice/'+_0x24988b(0x234),withActiveDevice(()=>config),async(_0x52985a,_0x57ddc9)=>{const _0x51bba9=_0x24988b;try{_0x57ddc9[_0x51bba9(0x116)](await fetchDeviceConfig());}catch(_0x4f6069){_0x57ddc9[_0x51bba9(0x137)](0x190)[_0x51bba9(0x116)]({'message':_0x4f6069[_0x51bba9(0x160)+'e']});}}),app[_0x24988b(0x119)](_0x24988b(0x239)+_0x24988b(0x175)+_0x24988b(0x234),withActiveDevice(()=>config),async(_0x36308e,_0x2dbdd8)=>{const _0x424b41=_0x24988b;try{_0x2dbdd8['json'](await saveDeviceConfig(_0x36308e[_0x424b41(0x237)]||{}));}catch(_0x55daac){_0x2dbdd8[_0x424b41(0x137)](0x190)[_0x424b41(0x116)]({'message':_0x55daac['messag'+'e']});}}),app['get'](_0x24988b(0x1f4)+_0x24988b(0x1b4)+_0x24988b(0x210),async(_0x1466b0,_0x278fa8)=>{const _0x23235b=_0x24988b;try{_0x278fa8[_0x23235b(0x116)](await deviceFetch(_0x23235b(0x129)+_0x23235b(0x171)));}catch(_0x3fc07d){_0x278fa8['status'](0x190)[_0x23235b(0x116)]({'message':_0x3fc07d[_0x23235b(0x160)+'e']});}}),app[_0x24988b(0x119)]('/api/i'+_0x24988b(0x1b4)+'ce',async(_0x12f206,_0x25617e)=>{const _0x187a83=_0x24988b;try{const _0x35a8ac=requireDevicePut(_0x12f206[_0x187a83(0x237)]);_0x25617e[_0x187a83(0x116)](await deviceFetch(_0x187a83(0x129)+_0x187a83(0x1d0),{'method':_0x187a83(0x17f),'body':JSON[_0x187a83(0x1a3)+_0x187a83(0x233)](_0x35a8ac)}));}catch(_0x3aa21b){_0x25617e[_0x187a83(0x137)](0x190)[_0x187a83(0x116)]({'message':_0x3aa21b['messag'+'e']});}}),app[_0x24988b(0x1fb)](_0x24988b(0x1f4)+'r/devi'+_0x24988b(0x146)+'ete',async(_0x273dcb,_0x4a0d23)=>{const _0x2abee9=_0x24988b;try{const _0x4da9a7=asObject(_0x273dcb[_0x2abee9(0x237)]);if(!validId(String(_0x4da9a7['id']||'')))throw new Error(_0x2abee9(0x1f7)+'电器');_0x4a0d23[_0x2abee9(0x116)](await deviceFetch('/ir/de'+_0x2abee9(0x14c)+_0x2abee9(0x127),{'method':_0x2abee9(0x1f6),'body':JSON[_0x2abee9(0x1a3)+_0x2abee9(0x233)]({'id':_0x4da9a7['id']})}));}catch(_0x576e18){_0x4a0d23[_0x2abee9(0x137)](0x190)[_0x2abee9(0x116)]({'message':_0x576e18[_0x2abee9(0x160)+'e']});}}),app['put'](_0x24988b(0x1f4)+_0x24988b(0x15c)+_0x24988b(0x124),async(_0x5ac244,_0x202814)=>{const _0xfc590c=_0x24988b;try{const _0x43671a=requireCommandPut(_0x5ac244['body']);_0x202814[_0xfc590c(0x116)](await deviceFetch(_0xfc590c(0x1b5)+_0xfc590c(0x220),{'method':_0xfc590c(0x17f),'body':JSON[_0xfc590c(0x1a3)+'ify'](_0x43671a)}));}catch(_0x5d6ff2){_0x202814[_0xfc590c(0x137)](0x190)['json']({'message':_0x5d6ff2['messag'+'e']});}}),app[_0x24988b(0x1fb)](_0x24988b(0x1f4)+'r/comm'+_0x24988b(0x156)+_0x24988b(0x228),async(_0x2905f5,_0x2b64c5)=>{const _0x3da001=_0x24988b;try{const _0x116744=requireCommandDelete(_0x2905f5[_0x3da001(0x237)]);_0x2b64c5[_0x3da001(0x116)](await deviceFetch(_0x3da001(0x1b5)+_0x3da001(0x159)+_0x3da001(0x1be),{'method':_0x3da001(0x1f6),'body':JSON[_0x3da001(0x1a3)+'ify'](_0x116744)}));}catch(_0x1ac9e6){_0x2b64c5[_0x3da001(0x137)](0x190)[_0x3da001(0x116)]({'message':_0x1ac9e6['messag'+'e']});}}),app[_0x24988b(0x1fb)](_0x24988b(0x1f4)+'r/lear'+'n',async(_0x3dfed6,_0x15400a)=>{const _0x3a4001=_0x24988b;try{_0x15400a[_0x3a4001(0x116)](await deviceFetch('/ir/le'+_0x3a4001(0x195),{'method':'POST','body':'{}'}));}catch(_0x11497a){_0x15400a[_0x3a4001(0x137)](0x190)[_0x3a4001(0x116)]({'message':_0x11497a['messag'+'e']});}}),app[_0x24988b(0x108)]('/api/i'+_0x24988b(0x218)+'ned',async(_0x411568,_0x2a1e83)=>{const _0x274dfb=_0x24988b;try{const _0x1cde7f=Date[_0x274dfb(0x207)]();while(Date[_0x274dfb(0x207)]()-_0x1cde7f<0x3a98){const _0x43be95=await deviceFetch(_0x274dfb(0x238)+'ad');if(_0x43be95[_0x274dfb(0x1a4)+'a'])return _0x2a1e83[_0x274dfb(0x116)](_0x43be95);await new Promise(_0x439e16=>setTimeout(_0x439e16,0x320));}_0x2a1e83[_0x274dfb(0x116)]({'ir_data':'','count':0x0});}catch(_0x64c34a){_0x2a1e83[_0x274dfb(0x137)](0x190)[_0x274dfb(0x116)]({'message':_0x64c34a[_0x274dfb(0x160)+'e']});}});function asObject(_0x5eed99){const _0x33a5a3=_0x24988b;if(!_0x5eed99)return{};if(typeof _0x5eed99===_0x33a5a3(0x1a3))try{return JSON[_0x33a5a3(0x1cc)](_0x5eed99);}catch{return{};}return typeof _0x5eed99===_0x33a5a3(0x21a)?_0x5eed99:{};}function irTestPayload(_0x15b61a){const _0x3dc99b=_0x24988b,_0x544bf4=asObject(_0x15b61a),_0x2d7863=typeof _0x544bf4[_0x3dc99b(0x114)]===_0x3dc99b(0x1a3)?_0x544bf4[_0x3dc99b(0x114)][_0x3dc99b(0x132)]():'',_0x2e0779=String(_0x544bf4[_0x3dc99b(0x17c)+_0x3dc99b(0x21f)]||_0x544bf4[_0x3dc99b(0x17c)+'Id']||'')[_0x3dc99b(0x132)](),_0x150023=String(_0x544bf4['id']||_0x544bf4[_0x3dc99b(0x1b2)+_0x3dc99b(0x1a8)]||_0x544bf4[_0x3dc99b(0x1b2)+_0x3dc99b(0x1ba)]||'')[_0x3dc99b(0x132)](),_0x35c5b3={};if(_0x2d7863)_0x35c5b3[_0x3dc99b(0x114)]=_0x2d7863;if(_0x2e0779)_0x35c5b3[_0x3dc99b(0x17c)+_0x3dc99b(0x21f)]=_0x2e0779;if(_0x150023)_0x35c5b3['id']=_0x150023;return _0x35c5b3;}function validId(_0x411db6){const _0x960c3e=_0x24988b;return typeof _0x411db6==='string'&&_0x411db6[_0x960c3e(0x193)]>0x0&&_0x411db6['length']<=0x20&&/^[A-Za-z0-9_-]+$/['test'](_0x411db6);}function validName(_0x2a198e){const _0x2aa57a=_0x24988b;return typeof _0x2a198e===_0x2aa57a(0x1a3)&&_0x2a198e[_0x2aa57a(0x132)]()['length']>0x0&&_0x2a198e['length']<=0x40;}function validType(_0x57037e){const _0x416859=_0x24988b;return[_0x416859(0x139),'ac','tv',_0x416859(0x1dd)][_0x416859(0x1b3)+'es'](_0x57037e);}function validCode(_0x4e6edb){const _0x2b9af0=_0x24988b;if(!_0x4e6edb)return!![];if(typeof _0x4e6edb!==_0x2b9af0(0x1a3)||_0x4e6edb[_0x2b9af0(0x193)]>0x1000)return![];const _0xd82688=_0x4e6edb[_0x2b9af0(0x217)+'e'](/^zf=/i,'')[_0x2b9af0(0x217)+'e'](/[\r\n]/g,'')[_0x2b9af0(0x132)]();if(_0xd82688[_0x2b9af0(0x22d)+_0x2b9af0(0x154)]('xx'))return _0xd82688[_0x2b9af0(0x193)]<=0x8;return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0x2b9af0(0x18a)](_0xd82688);}function requireDevicePut(_0x18e06f){const _0x5c094b=_0x24988b,_0x55f0c4=asObject(_0x18e06f),_0x5bf45e=String(_0x55f0c4['id']||'')[_0x5c094b(0x132)](),_0x305f85=String(_0x55f0c4[_0x5c094b(0x222)]||'')[_0x5c094b(0x132)](),_0x306e66=String(_0x55f0c4[_0x5c094b(0x13d)]||_0x5c094b(0x1dd))[_0x5c094b(0x132)]()||_0x5c094b(0x1dd);if(!validId(_0x5bf45e)||!validName(_0x305f85))throw new Error(_0x5c094b(0x181)+_0x5c094b(0x23e));if(!validType(_0x306e66))throw new Error('电器类型不合'+'法');return{'id':_0x5bf45e,'name':_0x305f85,'type':_0x306e66};}function requireCommandPut(_0x24bdb3){const _0x24b186=_0x24988b,_0x889e5e=asObject(_0x24bdb3),_0x560b78=String(_0x889e5e[_0x24b186(0x17c)+'_id']||'')['trim'](),_0x4f4e3c=String(_0x889e5e['id']||'')[_0x24b186(0x132)](),_0x346621=_0x889e5e['name']==null?'':String(_0x889e5e[_0x24b186(0x222)])[_0x24b186(0x132)](),_0x418d1a=_0x889e5e[_0x24b186(0x114)]==null?'':String(_0x889e5e[_0x24b186(0x114)]);if(!validId(_0x560b78)||!validId(_0x4f4e3c))throw new Error('电器或按键\x20'+_0x24b186(0x14b));if(_0x346621&&!validName(_0x346621))throw new Error('按键名称不合'+'法');if(!validCode(_0x418d1a))throw new Error(_0x24b186(0x242)+'合法');return{'device_id':_0x560b78,'id':_0x4f4e3c,'name':_0x346621,'code':_0x418d1a};}function requireCommandDelete(_0x5f5d1d){const _0x4aabed=_0x24988b,_0x3069d1=asObject(_0x5f5d1d),_0x5bf69a=String(_0x3069d1[_0x4aabed(0x17c)+_0x4aabed(0x21f)]||'')[_0x4aabed(0x132)](),_0x5b98eb=String(_0x3069d1['id']||'')[_0x4aabed(0x132)]();if(!validId(_0x5bf69a)||!validId(_0x5b98eb))throw new Error(_0x4aabed(0x1f7)+_0x4aabed(0x1d9));return{'device_id':_0x5bf69a,'id':_0x5b98eb};}app[_0x24988b(0x108)](_0x24988b(0x1f4)+_0x24988b(0x11d)+'rt',async(_0x22d24d,_0x2d1df0)=>{const _0x341b5f=_0x24988b;try{const _0x3587f3=await deviceFetch(_0x341b5f(0x14f)+_0x341b5f(0x105));_0x2d1df0[_0x341b5f(0x116)]({'version':0x1,'exportedAt':new Date()[_0x341b5f(0x17a)+_0x341b5f(0x229)](),'devices':_0x3587f3[_0x341b5f(0x17c)+'s']||[]});}catch(_0x544063){_0x2d1df0[_0x341b5f(0x137)](0x190)[_0x341b5f(0x116)]({'message':_0x544063[_0x341b5f(0x160)+'e']});}}),app['post'](_0x24988b(0x1f4)+_0x24988b(0x10a)+'rt',async(_0x9d53e0,_0x377b53)=>{const _0x53b089=_0x24988b;try{const _0x299293=validateIrImportPayload(_0x9d53e0[_0x53b089(0x237)]);_0x377b53[_0x53b089(0x116)](await deviceFetch(_0x53b089(0x240)+'port',{'method':'POST','body':JSON[_0x53b089(0x1a3)+_0x53b089(0x233)](_0x299293)}));}catch(_0x3a40f3){_0x377b53[_0x53b089(0x137)](0x190)[_0x53b089(0x116)]({'message':_0x3a40f3[_0x53b089(0x160)+'e']});}}),app[_0x24988b(0x1fb)]('/api/i'+_0x24988b(0x1ff),async(_0x1483bb,_0x9651e1)=>{const _0xc294ba=_0x24988b;try{const _0x59af76=irTestPayload(_0x1483bb[_0xc294ba(0x237)]);console[_0xc294ba(0x204)]('[ir.te'+_0xc294ba(0x1ca)+_0xc294ba(0x14e),_0x1483bb['body'],_0xc294ba(0x1d3)+'d=',_0x59af76);if(!_0x59af76[_0xc294ba(0x114)]&&(!_0x59af76[_0xc294ba(0x17c)+_0xc294ba(0x21f)]||!_0x59af76['id']))throw new Error('缺少要试发的'+'按键');_0x9651e1[_0xc294ba(0x116)](await deviceFetch('/ir/te'+'st',{'method':_0xc294ba(0x1f6),'body':JSON[_0xc294ba(0x1a3)+_0xc294ba(0x233)](_0x59af76)}));}catch(_0x5e0fc7){_0x9651e1[_0xc294ba(0x137)](0x190)['json']({'message':_0x5e0fc7[_0xc294ba(0x160)+'e']});}}),registerCameraRoutes(app,{'getConfig':()=>{return new Proxy(config,{'get'(_0x37cfea,_0x5267bd){const _0x1067a8=_0x1386,_0xa6a4ed=getRequestDevice()?.['id']||_0x37cfea[_0x1067a8(0x194)+'Device'+'Id'];if(_0x5267bd===_0x1067a8(0x19d))return _0xa6a4ed?_0x37cfea[_0x1067a8(0x17c)+'s']?.[_0xa6a4ed]?.[_0x1067a8(0x19d)]:_0x37cfea['camera'];return _0x37cfea[_0x5267bd];},'set'(_0x1fb308,_0x28bc07,_0x450661){const _0x52199d=_0x1386,_0x33d350=getRequestDevice()?.['id']||_0x1fb308[_0x52199d(0x194)+_0x52199d(0x11b)+'Id'];if(_0x28bc07==='camera'&&_0x33d350)return setCamera(_0x1fb308,_0x33d350,_0x450661),!![];return _0x1fb308[_0x28bc07]=_0x450661,!![];}});},'saveConfig':()=>saveConfig(config)}),setCameraHooks({'getDeviceBaseUrl':()=>getRequestDevice()?.[_0x24988b(0x18e)+'l']||focusedRecord()?.[_0x24988b(0x18e)+'l']||config[_0x24988b(0x17c)+_0x24988b(0x227)+'l'],'getDeviceCaps':()=>currentCaps(),'publishGimbal':async _0x2a4e72=>{const _0x24595a=_0x24988b;requireDeviceOnline();const _0xd5e8d3=_0x2a4e72?.[_0x24595a(0x158)]===_0x24595a(0x20a)?_0x24595a(0x20a):_0x24595a(0x131),_0x39e789=await deviceFetch(_0x24595a(0x191)+_0x24595a(0x1e8)+'rol',{'method':_0x24595a(0x1f6),'body':JSON[_0x24595a(0x1a3)+'ify'](_0x2a4e72||{}),'kind':_0xd5e8d3,'timeoutMs':0x1f4});if(_0x39e789['ok']===![])throw new Error(_0x39e789[_0x24595a(0x160)+'e']||_0x24595a(0x117));return _0x39e789;}});async function publishAnnounce(_0x24e31f){const _0x35544e=_0x24988b;if(!currentMossOnline())return![];const _0x448952=typeof _0x24e31f===_0x35544e(0x1a3)?_0x24e31f:_0x24e31f?.[_0x35544e(0x224)],_0x3d3f33=typeof _0x24e31f===_0x35544e(0x1a3)?'':_0x24e31f?.[_0x35544e(0x15e)+'ce'];try{return await publishWakeAndText(_0x448952,_0x3d3f33),applyVoice(focusedRecord()?.['id']||config[_0x35544e(0x194)+_0x35544e(0x11b)+'Id'],_0x35544e(0x1b9)+_0x35544e(0x107)),!![];}catch(_0x3f661c){return console[_0x35544e(0x13a)](_0x35544e(0x16e)+_0x35544e(0x19a)+_0x35544e(0x21b)+_0x35544e(0x225)+'il',_0x3f661c[_0x35544e(0x160)+'e']),![];}}registerMcpRoutes(app,{'getConfig':()=>config,'emit':emit,'publishWakeAndText':_0x31b33d=>{const _0x337d3c=_0x24988b;if(!currentMossOnline())return![];return publishWakeAndText(_0x31b33d)[_0x337d3c(0x198)](_0x4f8ab0=>console[_0x337d3c(0x13a)](_0x337d3c(0x226)+_0x337d3c(0x235),_0x4f8ab0[_0x337d3c(0x160)+'e'])),!![];},'publishAnnounce':publishAnnounce,'isAnnounceReady':()=>currentMossOnline(),'isWakeOnTaskCompleteEnabled':()=>loadMcpSettings()['wakeOn'+_0x24988b(0x1e7)+'mplete']===!![],'syncYunxiangjiInbox':()=>scheduleYunxiangjiInboxPush()});function shouldServeUi(){const _0x4da676=_0x24988b;return process[_0x4da676(0x147)][_0x4da676(0x1a6)+'NV']===_0x4da676(0x10f)+_0x4da676(0x20f)||process[_0x4da676(0x147)][_0x4da676(0x216)+_0x4da676(0x197)+'OWSER']==='1';}function openBrowser(_0x43ea00){const _0x1527ff=_0x24988b;try{if(process[_0x1527ff(0x12d)+'rm']==='darwin')execFile(_0x1527ff(0x1b6),[_0x43ea00]);else{if(process[_0x1527ff(0x12d)+'rm']===_0x1527ff(0x1f3))execFile(_0x1527ff(0x184),['/c',_0x1527ff(0x1bb),'',_0x43ea00]);else execFile('xdg-op'+'en',[_0x43ea00]);}}catch(_0x2febc3){console['warn'](_0x1527ff(0x1f5)+_0x1527ff(0x1b1),_0x2febc3[_0x1527ff(0x160)+'e']);}}function serveProductionUi(){const _0x4cb161=_0x24988b,_0x249109=_0x43af7c[_0x4cb161(0x1a1)](DIST_DIR,'index.'+_0x4cb161(0x1ed));if(_0x385d9e['exists'+'Sync'](_0x249109))return registerMediaRoutes(app,DIST_DIR),app[_0x4cb161(0x12a)](_0x2f0af1[_0x4cb161(0x1c3)](DIST_DIR)),app[_0x4cb161(0x12a)]((_0x6b0bc1,_0x40c4e2,_0xea55c5)=>{const _0x44ef62=_0x4cb161;if(_0x6b0bc1[_0x44ef62(0x167)]!=='GET'&&_0x6b0bc1[_0x44ef62(0x167)]!==_0x44ef62(0x1c9))return _0xea55c5();if(_0x6b0bc1['path'][_0x44ef62(0x22d)+_0x44ef62(0x154)](_0x44ef62(0x145)))return _0xea55c5();_0x40c4e2[_0x44ef62(0x126)+'le'](_0x249109);}),!![];return console[_0x4cb161(0x13a)](_0x4cb161(0x20d)+_0x4cb161(0x1aa)+'构建'),![];}shouldServeUi()&&!shouldAttachDevUi()&&serveProductionUi();function _0x1386(_0x24a621,_0x1784ac){_0x24a621=_0x24a621-0x105;const _0x30a309=_0x30a3();let _0x1386c8=_0x30a309[_0x24a621];if(_0x1386['epKNib']===undefined){var _0x116e38=function(_0xc180ae){const _0xf166a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x385d9e='',_0x1dbc62='';for(let _0x43af7c=0x0,_0x59d596,_0x2f0af1,_0xb48ed8=0x0;_0x2f0af1=_0xc180ae['charAt'](_0xb48ed8++);~_0x2f0af1&&(_0x59d596=_0x43af7c%0x4?_0x59d596*0x40+_0x2f0af1:_0x2f0af1,_0x43af7c++%0x4)?_0x385d9e+=String['fromCharCode'](0xff&_0x59d596>>(-0x2*_0x43af7c&0x6)):0x0){_0x2f0af1=_0xf166a2['indexOf'](_0x2f0af1);}for(let _0xa4a6b9=0x0,_0x32b793=_0x385d9e['length'];_0xa4a6b9<_0x32b793;_0xa4a6b9++){_0x1dbc62+='%'+('00'+_0x385d9e['charCodeAt'](_0xa4a6b9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1dbc62);};_0x1386['lSOxnl']=_0x116e38,_0x1386['TYNPfb']={},_0x1386['epKNib']=!![];}const _0xea5a87=_0x30a309[0x0],_0x2cc768=_0x24a621+_0xea5a87,_0x282962=_0x1386['TYNPfb'][_0x2cc768];return!_0x282962?(_0x1386c8=_0x1386['lSOxnl'](_0x1386c8),_0x1386['TYNPfb'][_0x2cc768]=_0x1386c8):_0x1386c8=_0x282962,_0x1386c8;}let httpServer=null,viteDev=null,shuttingDown=![];function shutdown(){const _0x1e4b30=_0x24988b;if(shuttingDown)return;shuttingDown=!![];try{disconnectCamera();}catch{}clearListenRuntime();const _0x12fb89=()=>{const _0x2ed850=_0x1386;if(!httpServer){process[_0x2ed850(0x148)](0x0);return;}httpServer[_0x2ed850(0x209)](()=>process[_0x2ed850(0x148)](0x0)),setTimeout(()=>process[_0x2ed850(0x148)](0x0),0x320)[_0x2ed850(0x219)]();};if(!viteDev){_0x12fb89();return;}viteDev[_0x1e4b30(0x209)]()[_0x1e4b30(0x111)](_0x12fb89,_0x12fb89);}function createHttpServer(){const _0x1283e3=_0x24988b,_0x132ee1=_0x59d596['create'+_0x1283e3(0x223)](app);return _0x132ee1[_0x1283e3(0x1de)+'t']=0x0,_0x132ee1[_0x1283e3(0x150)+_0x1283e3(0x1e0)+_0x1283e3(0x144)]=0x0,_0x132ee1['header'+'sTimeo'+'ut']=0x0,_0x132ee1[_0x1283e3(0x10d)+_0x1283e3(0x1eb)+'ut']=0x0,_0x132ee1;}function attachServer(_0x1fc092,_0x17b860){const _0x5b6861=_0x24988b;httpServer=_0x1fc092,writeRuntime(_0x17b860),process[_0x5b6861(0x147)][_0x5b6861(0x211)]=String(_0x17b860),process[_0x5b6861(0x147)]['MOSS_A'+'PI_POR'+'T']=String(_0x17b860);const _0x4166da='http:/'+_0x5b6861(0x203)+_0x5b6861(0x11e)+_0x17b860,_0x5c27f3=process[_0x5b6861(0x147)][_0x5b6861(0x179)+_0x5b6861(0x153)]?'\x20v'+process[_0x5b6861(0x147)]['MOSS_V'+_0x5b6861(0x153)]:'';console['log'](_0x5b6861(0x214)+_0x5b6861(0x166)+_0x5c27f3+'\x20\x20'+_0x4166da),viteDev&&console[_0x5b6861(0x204)](_0x5b6861(0x23f)+'r]\x20页面与'+'接口同一端口'+_0x5b6861(0x110)+_0x5b6861(0x1b8)),_0x17b860!==PORT&&console['log'](_0x5b6861(0x23f)+'r]\x20'+PORT+(_0x5b6861(0x125)+_0x5b6861(0x152)+_0x5b6861(0x200))+_0x17b860+'。'),process[_0x5b6861(0x147)][_0x5b6861(0x216)+_0x5b6861(0x197)+_0x5b6861(0x1bf)]==='1'&&openBrowser(_0x4166da),prefetchFfmpeg(),initBridgeWebSocket(),startPresenceWatch();}function listenOn(_0x5cbd69,_0x154bda){return new Promise((_0x153321,_0x4279a8)=>{const _0x22ff8b=_0x1386,_0x913670=_0x5ac34b=>{const _0x1fbed1=_0x1386;_0x5cbd69[_0x1fbed1(0x142)](_0x1fbed1(0x23a)+'ing',_0x279e2b),_0x4279a8(_0x5ac34b);},_0x279e2b=()=>{const _0x33c67c=_0x1386;_0x5cbd69[_0x33c67c(0x142)](_0x33c67c(0x17e),_0x913670),_0x153321(_0x5cbd69);};_0x5cbd69[_0x22ff8b(0x1fd)](_0x22ff8b(0x17e),_0x913670),_0x5cbd69['once'](_0x22ff8b(0x23a)+'ing',_0x279e2b),_0x5cbd69[_0x22ff8b(0x23a)](_0x154bda);});}async function listenPreferred(_0x383211){const _0x28f4d0=_0x24988b,_0x3eabeb=await reclaimListenPort({'preferredPort':_0x383211,'runtimePath':RUNTIME_PATH});_0x3eabeb['killed']&&console[_0x28f4d0(0x204)](_0x28f4d0(0x23f)+_0x28f4d0(0x120)+_0x28f4d0(0x13c)+_0x28f4d0(0x22a)+_0x28f4d0(0x109)+_0x383211+'。');const _0x57a6da=createHttpServer();if(shouldAttachDevUi())try{viteDev=await attachViteDev(app,_0x57a6da,{'root':ROOT_DIR});}catch(_0x1487d1){console[_0x28f4d0(0x13a)]('[serve'+_0x28f4d0(0x205)+_0x28f4d0(0x183),_0x1487d1[_0x28f4d0(0x160)+'e']);}const _0xb1beb6=0x18;for(let _0x13752d=0x0;_0x13752d<_0xb1beb6;_0x13752d+=0x1){const _0x1f1201=nextListenPort(_0x383211,_0x13752d);try{await listenOn(_0x57a6da,_0x1f1201),attachServer(_0x57a6da,_0x1f1201);return;}catch(_0x343d1e){_0x343d1e[_0x28f4d0(0x114)]!==_0x28f4d0(0x23b)+_0x28f4d0(0x17d)&&(console[_0x28f4d0(0x17e)](_0x343d1e),process[_0x28f4d0(0x148)](0x1)),_0x13752d<0x7&&(await reclaimListenPort({'preferredPort':_0x383211,'runtimePath':RUNTIME_PATH}),await sleep(0x78));}}console[_0x28f4d0(0x17e)](_0x28f4d0(0x23f)+_0x28f4d0(0x18f)+_0x383211+(_0x28f4d0(0x22e)+_0x28f4d0(0x113))),process[_0x28f4d0(0x148)](0x1);}process['on'](_0x24988b(0x12e)+'M',shutdown),process['on']('SIGINT',shutdown),listenPreferred(PORT)[_0x24988b(0x198)](_0x2cd84c=>{const _0x374922=_0x24988b;console[_0x374922(0x17e)](_0x2cd84c),process[_0x374922(0x148)](0x1);});
@@ -1 +1 @@
1
- const _0x573b5c=_0x3d75;(function(_0x5b7f01,_0x4975de){const _0x225e68=_0x3d75,_0x464ab2=_0x5b7f01();while(!![]){try{const _0x1f5215=parseInt(_0x225e68(0xe3))/0x1*(parseInt(_0x225e68(0x99))/0x2)+-parseInt(_0x225e68(0xa2))/0x3+-parseInt(_0x225e68(0xc6))/0x4*(-parseInt(_0x225e68(0xb5))/0x5)+parseInt(_0x225e68(0xaf))/0x6+parseInt(_0x225e68(0xd3))/0x7+-parseInt(_0x225e68(0xb7))/0x8*(-parseInt(_0x225e68(0xc2))/0x9)+-parseInt(_0x225e68(0xbb))/0xa*(parseInt(_0x225e68(0xb4))/0xb);if(_0x1f5215===_0x4975de)break;else _0x464ab2['push'](_0x464ab2['shift']());}catch(_0x7c3ba1){_0x464ab2['push'](_0x464ab2['shift']());}}}(_0x7e5b,0x3885b));const MAX_APPLIANCES=0x10,MAX_COMMANDS=0x30,MAX_CODE_LEN=0x1000,VALID_TYPES=new Set([_0x573b5c(0xa4),'ac','tv',_0x573b5c(0xbf)]);export function validIrId(_0x35aee9){const _0x131004=_0x573b5c;return typeof _0x35aee9===_0x131004(0xab)&&_0x35aee9['length']>0x0&&_0x35aee9[_0x131004(0x9e)]<=0x20&&/^[A-Za-z0-9_-]+$/[_0x131004(0xa9)](_0x35aee9);}export function validIrName(_0xe5e8ee){const _0x40028c=_0x573b5c;if(typeof _0xe5e8ee!=='string'||_0xe5e8ee['length']===0x0||_0xe5e8ee[_0x40028c(0x9e)]>0x40)return![];if(_0xe5e8ee['trim']()['length']===0x0)return![];for(let _0x517798=0x0;_0x517798<_0xe5e8ee[_0x40028c(0x9e)];_0x517798+=0x1){const _0x5b8f36=_0xe5e8ee['charCo'+_0x40028c(0x97)](_0x517798);if(_0x5b8f36<0x20)return![];}return!![];}export function validIrType(_0x1d9f0b){const _0x520591=_0x573b5c;return typeof _0x1d9f0b===_0x520591(0xab)&&VALID_TYPES[_0x520591(0xb8)](_0x1d9f0b);}export function validIrCode(_0x4958e9){const _0xdc3c7c=_0x573b5c;if(_0x4958e9===''||_0x4958e9==null)return!![];if(typeof _0x4958e9!==_0xdc3c7c(0xab)||_0x4958e9[_0xdc3c7c(0x9e)]>MAX_CODE_LEN)return![];const _0xba4e51=_0x4958e9[_0xdc3c7c(0xd5)+'e'](/^zf=/i,'')[_0xdc3c7c(0xd5)+'e'](/[\r\n]/g,'')[_0xdc3c7c(0xa3)]();if(_0xba4e51[_0xdc3c7c(0xde)+_0xdc3c7c(0xcf)]('xx'))return _0xba4e51[_0xdc3c7c(0x9e)]<=0x8&&/^xx[0-9a-fA-F]{0,6}$/[_0xdc3c7c(0xa9)](_0xba4e51);return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0xdc3c7c(0xa9)](_0xba4e51);}function _0x7e5b(){const _0x4f7170=['55s15zMO44cm','nJK3otm0uKPJtuv3','ChvZAa','BwvYz2u','5y+kif8T77Ym5PYa','ios4QUEuTEwzQa','BgvUz3rO','5zcR5O6N5yI25A2x56YM','44cn5OYj6zsU5zcn56EW44cm','ios4QUAmIEMuRG','mJy1otuWD0fhveXo','DhjPBq','BgLNAhq','ywrK','55s15zMO5PwW6yEpia','iowTL+AUTq','6zw/idmYiowTLW','DgvZDa','44cn6yEn5Asn','C3rYAw5N','55QeigLKiowTLW','DI9JDxn0','ignVzguG','mJu5nZG2ohfYC0fvBW','igrLDMLJ','B3nZlwLY','5Qc85BYp6zsz6k+V77Ym5B+f','57Y65Bcrihn0CG','mta4ndG5mZDrA0Pku2q','mte3nxfkvLDfvq','44cn5lIn5zci5Rov','mZmZmJK2veTktgv0','AgfZ','55s15zMOigLK44cm','DMvYC2LV','mtbzzLDKvvC','44cn5lIn5zci5Rov77Ym5lUf','55Qeihr5Cgu','5B+f6Ag75PIViePt','y3vZDg9T','55sOie1pu1m','5ywb6k645A2x5Q+n5PwW5A2x','otLIruLXEvC','lwnHDgfS','44cn56YSia','5A+85ywL5QIH5BYp5lIn5zci','mta1mNLAt1jkEq','Aw5NioEXU+wEIW','Bw1HBMrZ','ioI2HEI/H+s4IUMzKca','5BYp5lIn5zci5Rov','6Ag75PIV5A+56lgH','B2jQzwn0','B2CUANnV','ig5HBwxJGiW','v2L0Aa','44cn55Qe57QI5Asw56cb5Qc8','Bw9Kzq','igLK44cm','mZa4mdbdr0XOqLq','5A+85ywL5PAh5lU25Qc85BYp','CMvWBgfJ','5B+f6Ag75PIV5A2x56YM5lIY','5A+85ywL5PAh5lU254Mi5PYS','zgv2AwnL','55Qeig5HBwu','iowVVowhUUEAHcbT','44cn5OYj6zsU5PwW6yEpia','44cn57Y65BcrignV','y29Kzq','C3rHCNrZ','5lIn5PsV5OYb77Ym6k+35l2/','y29TBwfU','5lI6igXPz2G','koEPUIK','mwrlA1Hmtq','AxnbCNjH','55s15zMO5zcn56EW44cm','44cnDhLWzEoaJa','BMfTzq','ioAiLIbTzxi','t04G5A+56lgH','zgvbDa'];_0x7e5b=function(){return _0x4f7170;};return _0x7e5b();}function _0x3d75(_0x5653ce,_0x347d2d){_0x5653ce=_0x5653ce-0x94;const _0x7e5b92=_0x7e5b();let _0x3d7593=_0x7e5b92[_0x5653ce];if(_0x3d75['tNnBat']===undefined){var _0x21105c=function(_0x41a721){const _0x55501a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35aee9='',_0xe5e8ee='';for(let _0x517798=0x0,_0x5b8f36,_0x1d9f0b,_0x4958e9=0x0;_0x1d9f0b=_0x41a721['charAt'](_0x4958e9++);~_0x1d9f0b&&(_0x5b8f36=_0x517798%0x4?_0x5b8f36*0x40+_0x1d9f0b:_0x1d9f0b,_0x517798++%0x4)?_0x35aee9+=String['fromCharCode'](0xff&_0x5b8f36>>(-0x2*_0x517798&0x6)):0x0){_0x1d9f0b=_0x55501a['indexOf'](_0x1d9f0b);}for(let _0xba4e51=0x0,_0x304a86=_0x35aee9['length'];_0xba4e51<_0x304a86;_0xba4e51++){_0xe5e8ee+='%'+('00'+_0x35aee9['charCodeAt'](_0xba4e51)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe5e8ee);};_0x3d75['HGxozw']=_0x21105c,_0x3d75['bLOivu']={},_0x3d75['tNnBat']=!![];}const _0x4d7f3b=_0x7e5b92[0x0],_0x524420=_0x5653ce+_0x4d7f3b,_0x4a8538=_0x3d75['bLOivu'][_0x524420];return!_0x4a8538?(_0x3d7593=_0x3d75['HGxozw'](_0x3d7593),_0x3d75['bLOivu'][_0x524420]=_0x3d7593):_0x3d7593=_0x4a8538,_0x3d7593;}export function validateIrImportPayload(_0x304a86){const _0xea2bb6=_0x573b5c;if(!_0x304a86||typeof _0x304a86!==_0xea2bb6(0xcc)||Array[_0xea2bb6(0xe4)+'y'](_0x304a86))throw new Error(_0xea2bb6(0xd4)+'错误:根节点'+_0xea2bb6(0xbe)+_0xea2bb6(0x96));const _0x5ebcc6=_0x304a86;if(_0x5ebcc6[_0xea2bb6(0xba)+'n']!=null&&_0x5ebcc6[_0xea2bb6(0xba)+'n']!==0x1)throw new Error(_0xea2bb6(0xd7)+_0xea2bb6(0xdf)+_0xea2bb6(0xc0)+_0xea2bb6(0xda)+_0xea2bb6(0xb1)+_0xea2bb6(0xc3)+_0xea2bb6(0xcd)+'n');if(!Array[_0xea2bb6(0xe4)+'y'](_0x5ebcc6[_0xea2bb6(0xd8)+'s']))throw new Error('导入文件缺少'+_0xea2bb6(0xb0)+'es\x20数组');if(_0x5ebcc6[_0xea2bb6(0xd8)+'s'][_0xea2bb6(0x9e)]>MAX_APPLIANCES)throw new Error(_0xea2bb6(0xa6)+_0x5ebcc6['device'+'s'][_0xea2bb6(0x9e)]+_0xea2bb6(0xc9)+MAX_APPLIANCES);const _0x44c9e7=new Set(),_0x190428=new Set(),_0x5bbde6=[];for(let _0x17f125=0x0;_0x17f125<_0x5ebcc6[_0xea2bb6(0xd8)+'s'][_0xea2bb6(0x9e)];_0x17f125+=0x1){const _0x402c13=_0x5ebcc6[_0xea2bb6(0xd8)+'s'][_0x17f125],_0x151d36='第\x20'+(_0x17f125+0x1)+_0xea2bb6(0x9d);if(!_0x402c13||typeof _0x402c13!==_0xea2bb6(0xcc)||Array[_0xea2bb6(0xe4)+'y'](_0x402c13))throw new Error(_0x151d36+(_0xea2bb6(0xb2)+_0xea2bb6(0xcb)));const _0x2f3a14=_0x402c13;if(typeof _0x2f3a14['id']!==_0xea2bb6(0xab))throw new Error(_0x151d36+(_0xea2bb6(0xb3)+_0xea2bb6(0xc7)+'的\x20id\x20字'+'段'));if(typeof _0x2f3a14[_0xea2bb6(0x94)]!==_0xea2bb6(0xab))throw new Error(_0x151d36+(_0xea2bb6(0xb3)+_0xea2bb6(0xc7)+_0xea2bb6(0xd9)+_0xea2bb6(0xa7)));if(typeof _0x2f3a14['type']!==_0xea2bb6(0xab))throw new Error(_0x151d36+(_0xea2bb6(0xb3)+'ing\x20类型'+_0xea2bb6(0xbd)+_0xea2bb6(0xa7)));if(!Array[_0xea2bb6(0xe4)+'y'](_0x2f3a14[_0xea2bb6(0xe0)+'ds']))throw new Error(_0xea2bb6(0x98)+(_0x2f3a14[_0xea2bb6(0x94)][_0xea2bb6(0xa3)]()||_0x2f3a14['id'][_0xea2bb6(0xa3)]())+(_0xea2bb6(0xdc)+_0xea2bb6(0xc8)+'\x20数组'));const _0x1f4009=_0x2f3a14['id'][_0xea2bb6(0xa3)](),_0x2cdb52=_0x2f3a14[_0xea2bb6(0x94)][_0xea2bb6(0xa3)](),_0x392dad=_0x2f3a14['type'][_0xea2bb6(0xa3)]();if(!validIrId(_0x1f4009))throw new Error(_0x151d36+'\x20id「'+(_0x1f4009||'(空)')+(_0xea2bb6(0xbc)+_0xea2bb6(0xc1)+_0xea2bb6(0x9c)+_0xea2bb6(0xa8)+'符'));if(!validIrName(_0x2cdb52))throw new Error(_0x151d36+_0xea2bb6(0xce)+(_0x2cdb52||_0xea2bb6(0xe2))+('」不合法,不'+'能为空且不能'+_0xea2bb6(0x9f)));if(!validIrType(_0x392dad))throw new Error(_0xea2bb6(0x98)+_0x2cdb52+_0xea2bb6(0xe6)+_0x392dad+('」不合法,应'+_0xea2bb6(0xe1)+'t/ac/t'+_0xea2bb6(0xad)+'om'));if(_0x44c9e7[_0xea2bb6(0xb8)](_0x1f4009))throw new Error(_0xea2bb6(0xb9)+_0x1f4009+_0xea2bb6(0xaa));if(_0x190428[_0xea2bb6(0xb8)](_0x2cdb52))throw new Error(_0xea2bb6(0xe5)+_0x2cdb52+_0xea2bb6(0xaa));_0x44c9e7[_0xea2bb6(0xa5)](_0x1f4009),_0x190428[_0xea2bb6(0xa5)](_0x2cdb52);if(_0x2f3a14[_0xea2bb6(0xe0)+'ds'][_0xea2bb6(0x9e)]>MAX_COMMANDS)throw new Error(_0xea2bb6(0x98)+_0x2cdb52+_0xea2bb6(0xdb)+_0x2f3a14[_0xea2bb6(0xe0)+'ds'][_0xea2bb6(0x9e)]+_0xea2bb6(0xc9)+MAX_COMMANDS);const _0x146104=new Set(),_0x1c4bbe=new Set(),_0x26632c=[];for(let _0x477545=0x0;_0x477545<_0x2f3a14['comman'+'ds'][_0xea2bb6(0x9e)];_0x477545+=0x1){const _0x42152b=_0x2f3a14[_0xea2bb6(0xe0)+'ds'][_0x477545],_0x1a2300=_0xea2bb6(0x98)+_0x2cdb52+_0xea2bb6(0xc4)+(_0x477545+0x1)+_0xea2bb6(0xa1);if(!_0x42152b||typeof _0x42152b!=='object'||Array[_0xea2bb6(0xe4)+'y'](_0x42152b))throw new Error(_0x1a2300+(_0xea2bb6(0xb2)+'须是对象'));const _0x59453b=_0x42152b;if(typeof _0x59453b['id']!=='string')throw new Error(_0x1a2300+('缺少\x20str'+_0xea2bb6(0xc7)+_0xea2bb6(0xac)+'段'));if(typeof _0x59453b[_0xea2bb6(0x94)]!=='string')throw new Error(_0x1a2300+('缺少\x20str'+_0xea2bb6(0xc7)+_0xea2bb6(0xd9)+_0xea2bb6(0xa7)));if(_0x59453b[_0xea2bb6(0xdd)]!=null&&typeof _0x59453b[_0xea2bb6(0xdd)]!=='string')throw new Error(_0x1a2300+(_0xea2bb6(0xae)+_0xea2bb6(0xd6)));const _0x9a472b=_0x59453b['id'][_0xea2bb6(0xa3)](),_0x565619=_0x59453b[_0xea2bb6(0x94)][_0xea2bb6(0xa3)](),_0x580fcf=_0x59453b[_0xea2bb6(0xdd)]==null?'':_0x59453b[_0xea2bb6(0xdd)];if(!validIrId(_0x9a472b))throw new Error(_0x1a2300+_0xea2bb6(0xd2)+(_0x9a472b||_0xea2bb6(0xe2))+_0xea2bb6(0xb6));if(!validIrName(_0x565619))throw new Error(_0x1a2300+_0xea2bb6(0xce)+(_0x565619||_0xea2bb6(0xe2))+_0xea2bb6(0xb6));if(!validIrCode(_0x580fcf))throw new Error(_0x1a2300+'「'+_0x565619+(_0xea2bb6(0xd0)+_0xea2bb6(0xca)));if(_0x146104[_0xea2bb6(0xb8)](_0x9a472b))throw new Error(_0xea2bb6(0x98)+_0x2cdb52+('」按键\x20id'+'「')+_0x9a472b+'」重复');if(_0x1c4bbe[_0xea2bb6(0xb8)](_0x565619))throw new Error(_0xea2bb6(0x98)+_0x2cdb52+_0xea2bb6(0xa0)+_0x565619+_0xea2bb6(0xaa));_0x146104[_0xea2bb6(0xa5)](_0x9a472b),_0x1c4bbe[_0xea2bb6(0xa5)](_0x565619),_0x26632c[_0xea2bb6(0x9a)]({'id':_0x9a472b,'name':_0x565619,'code':_0x580fcf});}_0x5bbde6[_0xea2bb6(0x9a)]({'id':_0x1f4009,'name':_0x2cdb52,'type':_0x392dad,'commands':_0x26632c});}const _0x28c8f1=_0x5ebcc6[_0xea2bb6(0xd1)]==null?_0xea2bb6(0xd5)+'e':String(_0x5ebcc6[_0xea2bb6(0xd1)])[_0xea2bb6(0xa3)]();if(_0x28c8f1!==_0xea2bb6(0xd5)+'e'&&_0x28c8f1!==_0xea2bb6(0x9b))throw new Error(_0xea2bb6(0xc5)+'法,应为\x20r'+'eplace'+_0xea2bb6(0x95)+'ge');return{'version':0x1,'mode':_0x28c8f1,'devices':_0x5bbde6};}
1
+ const _0x2d667d=_0x3c8f;(function(_0x3ab4ab,_0x53ca59){const _0x4382bd=_0x3c8f,_0x134fe9=_0x3ab4ab();while(!![]){try{const _0x1d6402=-parseInt(_0x4382bd(0x134))/0x1+parseInt(_0x4382bd(0x139))/0x2*(-parseInt(_0x4382bd(0x13b))/0x3)+parseInt(_0x4382bd(0x14c))/0x4*(parseInt(_0x4382bd(0x132))/0x5)+parseInt(_0x4382bd(0x138))/0x6+parseInt(_0x4382bd(0x125))/0x7*(-parseInt(_0x4382bd(0x11e))/0x8)+parseInt(_0x4382bd(0x124))/0x9+parseInt(_0x4382bd(0x123))/0xa;if(_0x1d6402===_0x53ca59)break;else _0x134fe9['push'](_0x134fe9['shift']());}catch(_0x217731){_0x134fe9['push'](_0x134fe9['shift']());}}}(_0x36db,0x73c99));const MAX_APPLIANCES=0x10,MAX_COMMANDS=0x30,MAX_CODE_LEN=0x1000,VALID_TYPES=new Set([_0x2d667d(0x13c),'ac','tv','custom']);function _0x3c8f(_0x383cdc,_0x507db4){_0x383cdc=_0x383cdc-0x105;const _0x36dbfb=_0x36db();let _0x3c8fca=_0x36dbfb[_0x383cdc];if(_0x3c8f['AnMlzz']===undefined){var _0x1d6895=function(_0x1e5b44){const _0x414e2e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xf09405='',_0x2bcdc1='';for(let _0x2f79ad=0x0,_0x2d22cc,_0x2af937,_0x5cac87=0x0;_0x2af937=_0x1e5b44['charAt'](_0x5cac87++);~_0x2af937&&(_0x2d22cc=_0x2f79ad%0x4?_0x2d22cc*0x40+_0x2af937:_0x2af937,_0x2f79ad++%0x4)?_0xf09405+=String['fromCharCode'](0xff&_0x2d22cc>>(-0x2*_0x2f79ad&0x6)):0x0){_0x2af937=_0x414e2e['indexOf'](_0x2af937);}for(let _0x1ed137=0x0,_0x12f051=_0xf09405['length'];_0x1ed137<_0x12f051;_0x1ed137++){_0x2bcdc1+='%'+('00'+_0xf09405['charCodeAt'](_0x1ed137)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2bcdc1);};_0x3c8f['cDuFBk']=_0x1d6895,_0x3c8f['wFBtGp']={},_0x3c8f['AnMlzz']=!![];}const _0x7ffdec=_0x36dbfb[0x0],_0x3517e7=_0x383cdc+_0x7ffdec,_0x3cff57=_0x3c8f['wFBtGp'][_0x3517e7];return!_0x3cff57?(_0x3c8fca=_0x3c8f['cDuFBk'](_0x3c8fca),_0x3c8f['wFBtGp'][_0x3517e7]=_0x3c8fca):_0x3c8fca=_0x3cff57,_0x3c8fca;}export function validIrId(_0xf09405){const _0x59e705=_0x2d667d;return typeof _0xf09405===_0x59e705(0x110)&&_0xf09405['length']>0x0&&_0xf09405['length']<=0x20&&/^[A-Za-z0-9_-]+$/[_0x59e705(0x142)](_0xf09405);}export function validIrName(_0x2bcdc1){const _0xe316e=_0x2d667d;if(typeof _0x2bcdc1!=='string'||_0x2bcdc1['length']===0x0||_0x2bcdc1[_0xe316e(0x106)]>0x40)return![];if(_0x2bcdc1[_0xe316e(0x115)]()[_0xe316e(0x106)]===0x0)return![];for(let _0x2f79ad=0x0;_0x2f79ad<_0x2bcdc1[_0xe316e(0x106)];_0x2f79ad+=0x1){const _0x2d22cc=_0x2bcdc1[_0xe316e(0x140)+_0xe316e(0x148)](_0x2f79ad);if(_0x2d22cc<0x20)return![];}return!![];}export function validIrType(_0x2af937){const _0xc3d614=_0x2d667d;return typeof _0x2af937===_0xc3d614(0x110)&&VALID_TYPES[_0xc3d614(0x13d)](_0x2af937);}function _0x36db(){const _0x42a2a=['ChvZAa','55s15zMO5zcn56EW44cm','44cn5lIn5zci5Rov77Ym5lIn','ig5HBwxJGiW','55s15zMOigLK44cm','BgvUz3rO','koEPUIK','5A+85ywL5QIH5BYp5lIn5zci','55QeigLKiowTLW','55Qeig5HBwu','44cn5lIn5zci5Rov','DI9JDxn0','DMvYC2LV','igLK44cm','zgv2AwnL','C3rYAw5N','5y+kif8T77Ym5PYa','6zsz6k+V77YA5Qc56iQc54k5','CMvWBgfJ','ignVzguG','DhjPBq','zxbSywnL','44cn57Y65BcrignV','5B+f6Ag75PIViePt','ios4QUAmIEMuRG','5Qc85BYp6zsz6k+V77Ym5B+f','5B+f6Ag75PIV5A2x56YM5lIY','5BYp5lIn5zci5Rov','55s15zMO5PwW6yEpia','ntzYsuvQCKW','y29Kzq','lwnHDgfS','44cn6yEn5Asn','ioI2HEI/H+s4IUMzKca','mtGWntiXndbIANnyD2C','mtq0otq1zNHJrMvR','mZCZnZe2ChbvBKrU','C3rHCNrZ','5lI6igXPz2G','ioAvSoE7Ha','5A+85ywL5PAh5lU25Qc85BYp','Bw1HBMrZ','5lIn5PsV5OYb77Ym6k+35l2/','y29TBwfU','B3nZlwLY','55s15zMO44cm','55sOie1pu1m','BMfTzq','t04G5A+56lgH','mZy1BKjjv2Th','B2jQzwn0','mZa3ody0Avvhv1nV','6Ag75PIV5A+56lgH','57Y65Bcrihn0CG','Aw5NioEXU+wEIW','mJuZmdyYuu1IBhns','mta4mZzQDNzTyuu','DhLWzq','ndC3DxfyB1HH','BgLNAhq','AgfZ','iowTL+AUTq','ywrK','y2HHCKnV','44cn5lIn5zci5Rov77Ym5lUf','DgvZDa','zxmG5PwW57Ue','iowVVowhUUEAHcbT','44cnDhLWzEoaJa','AxnbCNjH','44cn5OYj6zsU5zcn56EW44cm','zgvbDa','44cn5lIn5zci5Rov77Ym5BQu','v2L0Aa','5zcR5O6N5yI25A2x56YM','odqYoffOwLzdEa','5A+85ywL5PAh5lU257Y65Bcr'];_0x36db=function(){return _0x42a2a;};return _0x36db();}export function validIrCode(_0x5cac87){const _0x200840=_0x2d667d;if(_0x5cac87===''||_0x5cac87==null)return!![];if(typeof _0x5cac87!==_0x200840(0x110)||_0x5cac87[_0x200840(0x106)]>MAX_CODE_LEN)return![];const _0x1ed137=_0x5cac87[_0x200840(0x113)+'e'](/^zf=/i,'')['replac'+'e'](/[\r\n]/g,'')[_0x200840(0x115)]();if(_0x1ed137[_0x200840(0x126)+_0x200840(0x14a)]('xx'))return _0x1ed137[_0x200840(0x106)]<=0x8&&/^xx[0-9a-fA-F]{0,6}$/[_0x200840(0x142)](_0x1ed137);return/^-?\d+(,-?\d+)*(,len=\d+)?$/[_0x200840(0x142)](_0x1ed137);}export function validateIrImportPayload(_0x12f051){const _0xe114ef=_0x2d667d;if(!_0x12f051||typeof _0x12f051!==_0xe114ef(0x133)||Array[_0xe114ef(0x146)+'y'](_0x12f051))throw new Error(_0xe114ef(0x129)+_0xe114ef(0x112)+_0xe114ef(0x118)+_0xe114ef(0x131));const _0x131e53=_0x12f051;if(_0x131e53['versio'+'n']!=null&&_0x131e53[_0xe114ef(0x10d)+'n']!==0x1)throw new Error('导入文件版本'+_0xe114ef(0x12b)+_0xe114ef(0x12f)+_0xe114ef(0x144)+_0xe114ef(0x12d)+_0xe114ef(0x120)+'og.jso'+'n');if(!Array[_0xe114ef(0x146)+'y'](_0x131e53[_0xe114ef(0x10f)+'s']))throw new Error(_0xe114ef(0x14d)+'\x20devic'+_0xe114ef(0x143));if(_0x131e53[_0xe114ef(0x10f)+'s']['length']>MAX_APPLIANCES)throw new Error(_0xe114ef(0x11d)+_0x131e53['device'+'s'][_0xe114ef(0x106)]+'\x20超过上限\x20'+MAX_APPLIANCES);const _0xa4b456=new Set(),_0x3894b1=new Set(),_0x539844=[];for(let _0x2136b9=0x0;_0x2136b9<_0x131e53[_0xe114ef(0x10f)+'s'][_0xe114ef(0x106)];_0x2136b9+=0x1){const _0x54a3f6=_0x131e53[_0xe114ef(0x10f)+'s'][_0x2136b9],_0x163783='第\x20'+(_0x2136b9+0x1)+'\x20个电器';if(!_0x54a3f6||typeof _0x54a3f6!=='object'||Array['isArra'+'y'](_0x54a3f6))throw new Error(_0x163783+(_0xe114ef(0x11a)+_0xe114ef(0x135)));const _0x459ae8=_0x54a3f6;if(typeof _0x459ae8['id']!==_0xe114ef(0x110))throw new Error(_0x163783+(_0xe114ef(0x136)+'ing\x20类型'+_0xe114ef(0x109)+'段'));if(typeof _0x459ae8['name']!==_0xe114ef(0x110))throw new Error(_0x163783+(_0xe114ef(0x136)+_0xe114ef(0x137)+_0xe114ef(0x10a)+_0xe114ef(0x13e)));if(typeof _0x459ae8[_0xe114ef(0x13a)]!==_0xe114ef(0x110))throw new Error(_0x163783+(_0xe114ef(0x136)+'ing\x20类型'+'的\x20type'+_0xe114ef(0x13e)));if(!Array[_0xe114ef(0x146)+'y'](_0x459ae8[_0xe114ef(0x12c)+'ds']))throw new Error(_0xe114ef(0x12e)+(_0x459ae8[_0xe114ef(0x130)]['trim']()||_0x459ae8['id'][_0xe114ef(0x115)]())+(_0xe114ef(0x117)+_0xe114ef(0x12a)+_0xe114ef(0x128)));const _0x247207=_0x459ae8['id'][_0xe114ef(0x115)](),_0x56661e=_0x459ae8[_0xe114ef(0x130)][_0xe114ef(0x115)](),_0x527adf=_0x459ae8['type'][_0xe114ef(0x115)]();if(!validIrId(_0x247207))throw new Error(_0x163783+_0xe114ef(0x10e)+(_0x247207||_0xe114ef(0x107))+(_0xe114ef(0x141)+'允许字母数字'+_0xe114ef(0x111)+'长\x2032\x20字'+'符'));if(!validIrName(_0x56661e))throw new Error(_0x163783+'\x20name「'+(_0x56661e||_0xe114ef(0x107))+(_0xe114ef(0x150)+'能为空且不能'+_0xe114ef(0x14b)));if(!validIrType(_0x527adf))throw new Error('电器「'+_0x56661e+_0xe114ef(0x145)+_0x527adf+(_0xe114ef(0x149)+_0xe114ef(0x127)+'t/ac/t'+_0xe114ef(0x10c)+'om'));if(_0xa4b456[_0xe114ef(0x13d)](_0x247207))throw new Error(_0xe114ef(0x105)+_0x247207+_0xe114ef(0x121));if(_0x3894b1['has'](_0x56661e))throw new Error(_0xe114ef(0x14f)+_0x56661e+_0xe114ef(0x121));_0xa4b456[_0xe114ef(0x13f)](_0x247207),_0x3894b1['add'](_0x56661e);if(_0x459ae8[_0xe114ef(0x12c)+'ds'][_0xe114ef(0x106)]>MAX_COMMANDS)throw new Error(_0xe114ef(0x12e)+_0x56661e+'」按键数量\x20'+_0x459ae8[_0xe114ef(0x12c)+'ds'][_0xe114ef(0x106)]+_0xe114ef(0x122)+MAX_COMMANDS);const _0x575ce3=new Set(),_0x43e272=new Set(),_0x193538=[];for(let _0x2aba63=0x0;_0x2aba63<_0x459ae8['comman'+'ds'][_0xe114ef(0x106)];_0x2aba63+=0x1){const _0xe4fa7=_0x459ae8['comman'+'ds'][_0x2aba63],_0xb7507b=_0xe114ef(0x12e)+_0x56661e+'」第\x20'+(_0x2aba63+0x1)+_0xe114ef(0x119);if(!_0xe4fa7||typeof _0xe4fa7!==_0xe114ef(0x133)||Array[_0xe114ef(0x146)+'y'](_0xe4fa7))throw new Error(_0xb7507b+('格式错误,必'+_0xe114ef(0x135)));const _0x4fba5f=_0xe4fa7;if(typeof _0x4fba5f['id']!==_0xe114ef(0x110))throw new Error(_0xb7507b+(_0xe114ef(0x136)+_0xe114ef(0x137)+'的\x20id\x20字'+'段'));if(typeof _0x4fba5f['name']!==_0xe114ef(0x110))throw new Error(_0xb7507b+(_0xe114ef(0x136)+_0xe114ef(0x137)+'的\x20name'+'\x20字段'));if(_0x4fba5f[_0xe114ef(0x11f)]!=null&&typeof _0x4fba5f[_0xe114ef(0x11f)]!==_0xe114ef(0x110))throw new Error(_0xb7507b+(_0xe114ef(0x114)+_0xe114ef(0x11b)));const _0x19975a=_0x4fba5f['id'][_0xe114ef(0x115)](),_0x631769=_0x4fba5f[_0xe114ef(0x130)][_0xe114ef(0x115)](),_0x43d9ef=_0x4fba5f['code']==null?'':_0x4fba5f['code'];if(!validIrId(_0x19975a))throw new Error(_0xb7507b+'\x20id「'+(_0x19975a||_0xe114ef(0x107))+_0xe114ef(0x10b));if(!validIrName(_0x631769))throw new Error(_0xb7507b+_0xe114ef(0x151)+(_0x631769||'(空)')+_0xe114ef(0x10b));if(!validIrCode(_0x43d9ef))throw new Error(_0xb7507b+'「'+_0x631769+('」的红外码格'+_0xe114ef(0x11c)));if(_0x575ce3[_0xe114ef(0x13d)](_0x19975a))throw new Error(_0xe114ef(0x12e)+_0x56661e+('」按键\x20id'+'「')+_0x19975a+_0xe114ef(0x121));if(_0x43e272[_0xe114ef(0x13d)](_0x631769))throw new Error(_0xe114ef(0x12e)+_0x56661e+_0xe114ef(0x147)+_0x631769+_0xe114ef(0x121));_0x575ce3[_0xe114ef(0x13f)](_0x19975a),_0x43e272[_0xe114ef(0x13f)](_0x631769),_0x193538[_0xe114ef(0x14e)]({'id':_0x19975a,'name':_0x631769,'code':_0x43d9ef});}_0x539844[_0xe114ef(0x14e)]({'id':_0x247207,'name':_0x56661e,'type':_0x527adf,'commands':_0x193538});}const _0x2cb6b2=_0x131e53['mode']==null?'replac'+'e':String(_0x131e53['mode'])[_0xe114ef(0x115)]();if(_0x2cb6b2!==_0xe114ef(0x113)+'e'&&_0x2cb6b2!=='merge')throw new Error(_0xe114ef(0x108)+'法,应为\x20r'+_0xe114ef(0x116)+'\x20或\x20mer'+'ge');return{'version':0x1,'mode':_0x2cb6b2,'devices':_0x539844};}
@@ -1 +1 @@
1
- (function(_0x42631f,_0x3656d6){const _0x2a353b=_0x45b3,_0x216e9d=_0x42631f();while(!![]){try{const _0x2fffed=parseInt(_0x2a353b(0x1b1))/0x1+parseInt(_0x2a353b(0x1be))/0x2*(-parseInt(_0x2a353b(0x1ae))/0x3)+parseInt(_0x2a353b(0x1ad))/0x4+parseInt(_0x2a353b(0x1b5))/0x5*(parseInt(_0x2a353b(0x1bc))/0x6)+-parseInt(_0x2a353b(0x1b2))/0x7+-parseInt(_0x2a353b(0x1ba))/0x8+-parseInt(_0x2a353b(0x1b3))/0x9*(-parseInt(_0x2a353b(0x1b6))/0xa);if(_0x2fffed===_0x3656d6)break;else _0x216e9d['push'](_0x216e9d['shift']());}catch(_0x35e091){_0x216e9d['push'](_0x216e9d['shift']());}}}(_0xe3f6,0xa7ac9));import{normalizeMac}from'./device-identity.mjs';function _0xe3f6(){const _0x3e944c=['Ag9ZDg5H','mtC1ody2r2HmqK1I','CKnHC2u','mZa5oe9lAwjOrq','ndiYndKXmMzeDK9yAG','mJa1mMHfwxjeyG','CMvWBgfJ','DhjPBq','mtm0mZi3n2Liu3HOyG','odm3nJGWowLSsuzwDG','mJDvDhD6C0W','BwfJ','mZb3BfrOtMS','ndG0ndKYmg96wLPSCa','yMfZzvvY','C29Tzq','zMLSDgvY','ody4nJGWohLZEePdtq'];_0xe3f6=function(){return _0x3e944c;};return _0xe3f6();}export function normalizeBaseUrl(_0xca9180){const _0x5a9c81=_0x45b3;return String(_0xca9180||'')[_0x5a9c81(0x1b0)]()[_0x5a9c81(0x1af)+'e'](/\/$/,'');}function _0x45b3(_0xd5b0b5,_0x30d00a){_0xd5b0b5=_0xd5b0b5-0x1ad;const _0xe3f6de=_0xe3f6();let _0x45b387=_0xe3f6de[_0xd5b0b5];if(_0x45b3['iMjntv']===undefined){var _0x4286c4=function(_0x2a8cdd){const _0x29ed7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xca9180='',_0x1c4d8a='';for(let _0x110ae5=0x0,_0x33992a,_0x5bfa42,_0x41b467=0x0;_0x5bfa42=_0x2a8cdd['charAt'](_0x41b467++);~_0x5bfa42&&(_0x33992a=_0x110ae5%0x4?_0x33992a*0x40+_0x5bfa42:_0x5bfa42,_0x110ae5++%0x4)?_0xca9180+=String['fromCharCode'](0xff&_0x33992a>>(-0x2*_0x110ae5&0x6)):0x0){_0x5bfa42=_0x29ed7['indexOf'](_0x5bfa42);}for(let _0x30bbcd=0x0,_0x5a66af=_0xca9180['length'];_0x30bbcd<_0x5a66af;_0x30bbcd++){_0x1c4d8a+='%'+('00'+_0xca9180['charCodeAt'](_0x30bbcd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1c4d8a);};_0x45b3['zhfoTQ']=_0x4286c4,_0x45b3['NkcUVU']={},_0x45b3['iMjntv']=!![];}const _0x4f2cb1=_0xe3f6de[0x0],_0x3eceba=_0xd5b0b5+_0x4f2cb1,_0x2183d4=_0x45b3['NkcUVU'][_0x3eceba];return!_0x2183d4?(_0x45b387=_0x45b3['zhfoTQ'](_0x45b387),_0x45b3['NkcUVU'][_0x3eceba]=_0x45b387):_0x45b387=_0x2183d4,_0x45b387;}export function isKnownScanDevice(_0x1c4d8a=[],_0x110ae5={}){const _0x4a157d=_0x45b3,_0x33992a=normalizeBaseUrl(_0x110ae5[_0x4a157d(0x1b7)+'l']),_0x5bfa42=normalizeMac(_0x110ae5[_0x4a157d(0x1b4)]);return(_0x1c4d8a||[])[_0x4a157d(0x1b8)](_0x41b467=>{const _0x31a6a1=_0x4a157d,_0x30bbcd=normalizeMac(_0x41b467[_0x31a6a1(0x1b4)])||normalizeMac(_0x41b467['id']);if(_0x5bfa42&&_0x30bbcd)return _0x5bfa42===_0x30bbcd;if(_0x33992a&&_0x41b467['baseUr'+'l']&&normalizeBaseUrl(_0x41b467[_0x31a6a1(0x1b7)+'l'])===_0x33992a)return!![];const _0x5a66af=String(_0x110ae5[_0x31a6a1(0x1bb)+'me']||'')['trim']()['toLowe'+_0x31a6a1(0x1bd)](),_0x389467=String(_0x41b467[_0x31a6a1(0x1bb)+'me']||'')[_0x31a6a1(0x1b0)]()['toLowe'+_0x31a6a1(0x1bd)]();if(_0x5a66af&&_0x389467&&_0x5a66af===_0x389467)return!![];return![];});}export function filterNewScanDevices(_0x3fa918,_0x10aba2=[]){const _0x365e70=_0x45b3;return(_0x10aba2||[])[_0x365e70(0x1b9)](_0x58fbcf=>!isKnownScanDevice(_0x3fa918,_0x58fbcf));}
1
+ function _0x57d7(){const _0x2d7237=['ndG4EKDgzNnV','mta0yuLlt0zM','nte5mJe5Efroy3DN','mZqYnJy0rLjHC05k','mJrPsxryuey','ntG4ntr2z25ABvO','DhjPBq','Ag9ZDg5H','Dg9mB3DL','CKnHC2u','zMLSDgvY','BwfJ','C29Tzq','mtq2nJKZnK1ivhzLBG','CMvWBgfJ','mtC3nJbnEu9ezNK','mty4nda1m0HuAgDvtq','yMfZzvvY'];_0x57d7=function(){return _0x2d7237;};return _0x57d7();}function _0x4baa(_0x18fa74,_0x54615){_0x18fa74=_0x18fa74-0x1d5;const _0x57d758=_0x57d7();let _0x4baa85=_0x57d758[_0x18fa74];if(_0x4baa['jghWUQ']===undefined){var _0x2522d3=function(_0x58af14){const _0x3f7f3b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x98eeb6='',_0x2715f6='';for(let _0x57ab46=0x0,_0xf7f6af,_0x3a43c0,_0x5853dd=0x0;_0x3a43c0=_0x58af14['charAt'](_0x5853dd++);~_0x3a43c0&&(_0xf7f6af=_0x57ab46%0x4?_0xf7f6af*0x40+_0x3a43c0:_0x3a43c0,_0x57ab46++%0x4)?_0x98eeb6+=String['fromCharCode'](0xff&_0xf7f6af>>(-0x2*_0x57ab46&0x6)):0x0){_0x3a43c0=_0x3f7f3b['indexOf'](_0x3a43c0);}for(let _0x420695=0x0,_0x37a007=_0x98eeb6['length'];_0x420695<_0x37a007;_0x420695++){_0x2715f6+='%'+('00'+_0x98eeb6['charCodeAt'](_0x420695)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2715f6);};_0x4baa['BGGlTy']=_0x2522d3,_0x4baa['QSGWTz']={},_0x4baa['jghWUQ']=!![];}const _0x2c6a50=_0x57d758[0x0],_0x3aa869=_0x18fa74+_0x2c6a50,_0x52c851=_0x4baa['QSGWTz'][_0x3aa869];return!_0x52c851?(_0x4baa85=_0x4baa['BGGlTy'](_0x4baa85),_0x4baa['QSGWTz'][_0x3aa869]=_0x4baa85):_0x4baa85=_0x52c851,_0x4baa85;}(function(_0x5253f4,_0xa1fd4f){const _0x1fe311=_0x4baa,_0x53299d=_0x5253f4();while(!![]){try{const _0x440dcc=parseInt(_0x1fe311(0x1e4))/0x1+parseInt(_0x1fe311(0x1e1))/0x2*(-parseInt(_0x1fe311(0x1e5))/0x3)+parseInt(_0x1fe311(0x1dc))/0x4+parseInt(_0x1fe311(0x1de))/0x5+-parseInt(_0x1fe311(0x1e6))/0x6+parseInt(_0x1fe311(0x1df))/0x7+parseInt(_0x1fe311(0x1e2))/0x8*(-parseInt(_0x1fe311(0x1e3))/0x9);if(_0x440dcc===_0xa1fd4f)break;else _0x53299d['push'](_0x53299d['shift']());}catch(_0x26d053){_0x53299d['push'](_0x53299d['shift']());}}}(_0x57d7,0x2ed29));import{normalizeMac}from'./device-identity.mjs';export function normalizeBaseUrl(_0x98eeb6){const _0x354264=_0x4baa;return String(_0x98eeb6||'')[_0x354264(0x1d5)]()[_0x354264(0x1dd)+'e'](/\/$/,'');}export function isKnownScanDevice(_0x2715f6=[],_0x57ab46={}){const _0x20698a=_0x4baa,_0xf7f6af=normalizeBaseUrl(_0x57ab46[_0x20698a(0x1e0)+'l']),_0x3a43c0=normalizeMac(_0x57ab46[_0x20698a(0x1da)]);return(_0x2715f6||[])[_0x20698a(0x1db)](_0x5853dd=>{const _0x27d5d2=_0x20698a,_0x420695=normalizeMac(_0x5853dd['mac'])||normalizeMac(_0x5853dd['id']);if(_0x3a43c0&&_0x420695)return _0x3a43c0===_0x420695;if(_0xf7f6af&&_0x5853dd[_0x27d5d2(0x1e0)+'l']&&normalizeBaseUrl(_0x5853dd[_0x27d5d2(0x1e0)+'l'])===_0xf7f6af)return!![];const _0x37a007=String(_0x57ab46[_0x27d5d2(0x1d6)+'me']||'')[_0x27d5d2(0x1d5)]()[_0x27d5d2(0x1d7)+_0x27d5d2(0x1d8)](),_0x1621d8=String(_0x5853dd[_0x27d5d2(0x1d6)+'me']||'')[_0x27d5d2(0x1d5)]()[_0x27d5d2(0x1d7)+'rCase']();if(_0x37a007&&_0x1621d8&&_0x37a007===_0x1621d8)return!![];return![];});}export function filterNewScanDevices(_0x6384d3,_0x16c396=[]){const _0x3520da=_0x4baa;return(_0x16c396||[])[_0x3520da(0x1d9)](_0x4f0400=>!isKnownScanDevice(_0x6384d3,_0x4f0400));}
@@ -1 +1 @@
1
- const _0x9b3941=_0x1735;(function(_0x5d988c,_0x473671){const _0x33799c=_0x1735,_0x3494eb=_0x5d988c();while(!![]){try{const _0x457ccd=parseInt(_0x33799c(0x7d))/0x1*(parseInt(_0x33799c(0x9b))/0x2)+-parseInt(_0x33799c(0x86))/0x3+parseInt(_0x33799c(0xc2))/0x4+parseInt(_0x33799c(0x7c))/0x5+parseInt(_0x33799c(0xbf))/0x6*(-parseInt(_0x33799c(0xaf))/0x7)+parseInt(_0x33799c(0xa6))/0x8+-parseInt(_0x33799c(0x79))/0x9*(parseInt(_0x33799c(0x82))/0xa);if(_0x457ccd===_0x473671)break;else _0x3494eb['push'](_0x3494eb['shift']());}catch(_0x262223){_0x3494eb['push'](_0x3494eb['shift']());}}}(_0x40cc,0x5a4b2));import _0xb672d9 from'node:os';import _0x2b782c from'bonjour-service';import{normalizeMac}from'./device-identity.mjs';function _0x1735(_0x4c12fe,_0x465096){_0x4c12fe=_0x4c12fe-0x77;const _0x40cc1c=_0x40cc();let _0x17351b=_0x40cc1c[_0x4c12fe];if(_0x1735['JjqwIV']===undefined){var _0x1ffed5=function(_0x132d23){const _0x519741='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb672d9='',_0x2b782c='';for(let _0x3e1483=0x0,_0x5dfb79,_0x25cd04,_0x4b3145=0x0;_0x25cd04=_0x132d23['charAt'](_0x4b3145++);~_0x25cd04&&(_0x5dfb79=_0x3e1483%0x4?_0x5dfb79*0x40+_0x25cd04:_0x25cd04,_0x3e1483++%0x4)?_0xb672d9+=String['fromCharCode'](0xff&_0x5dfb79>>(-0x2*_0x3e1483&0x6)):0x0){_0x25cd04=_0x519741['indexOf'](_0x25cd04);}for(let _0x56cccd=0x0,_0x2a6904=_0xb672d9['length'];_0x56cccd<_0x2a6904;_0x56cccd++){_0x2b782c+='%'+('00'+_0xb672d9['charCodeAt'](_0x56cccd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b782c);};_0x1735['twuIfp']=_0x1ffed5,_0x1735['TdzksN']={},_0x1735['JjqwIV']=!![];}const _0x2dd2e4=_0x40cc1c[0x0],_0x97647e=_0x4c12fe+_0x2dd2e4,_0x597da8=_0x1735['TdzksN'][_0x97647e];return!_0x597da8?(_0x17351b=_0x1735['twuIfp'](_0x17351b),_0x1735['TdzksN'][_0x97647e]=_0x17351b):_0x17351b=_0x597da8,_0x17351b;}const IPV4=/^(\d{1,3}\.){3}\d{1,3}$/;export function formatHttpHost(_0x3e1483){const _0x565afd=_0x1735,_0x5dfb79=String(_0x3e1483||'')[_0x565afd(0x87)]()[_0x565afd(0xb6)+'e'](/^\[|\]$/g,'')['replac'+'e'](/\.$/,'');if(!_0x5dfb79)return'';if(_0x5dfb79[_0x565afd(0xbc)+'es'](':'))return'['+_0x5dfb79+']';return _0x5dfb79;}export function hostsFromBonjourService(_0x25cd04={}){const _0x5eb21c=_0x1735,_0x4b3145=[];if(Array[_0x5eb21c(0x84)+'y'](_0x25cd04[_0x5eb21c(0xc6)+'ses']))_0x4b3145[_0x5eb21c(0xb5)](..._0x25cd04[_0x5eb21c(0xc6)+_0x5eb21c(0x8a)]);if(_0x25cd04[_0x5eb21c(0x8e)+'r']?.[_0x5eb21c(0xc6)+'s'])_0x4b3145[_0x5eb21c(0xb5)](_0x25cd04[_0x5eb21c(0x8e)+'r'][_0x5eb21c(0xc6)+'s']);if(_0x25cd04[_0x5eb21c(0xb3)])_0x4b3145[_0x5eb21c(0xb5)](_0x25cd04[_0x5eb21c(0xb3)]);const _0x56cccd=[],_0x2a6904=[],_0x3b2ec0=[];for(const _0x460d49 of _0x4b3145){const _0x5e8cd5=String(_0x460d49||'')['trim']()[_0x5eb21c(0xb6)+'e'](/^\[|\]$/g,'')[_0x5eb21c(0xb6)+'e'](/\.$/,'');if(!_0x5e8cd5||_0x5e8cd5==='0.0.0.'+'0'||_0x5e8cd5==='::')continue;if(IPV4[_0x5eb21c(0x96)](_0x5e8cd5)){if(!_0x5e8cd5[_0x5eb21c(0xa3)+_0x5eb21c(0x80)](_0x5eb21c(0x8c)+'4.'))_0x56cccd[_0x5eb21c(0xb5)](_0x5e8cd5);continue;}if(_0x5e8cd5['includ'+'es'](':')){if(!_0x5e8cd5['toLowe'+_0x5eb21c(0x9f)]()[_0x5eb21c(0xa3)+_0x5eb21c(0x80)]('fe80:'))_0x3b2ec0['push'](_0x5e8cd5);continue;}_0x2a6904[_0x5eb21c(0xb5)](_0x5e8cd5);}return[...new Set([..._0x56cccd,..._0x2a6904,..._0x3b2ec0])];}export function deviceFromService(_0x44b5fa){const _0x4c0cc8=_0x1735,_0x1ab1d9=Number(_0x44b5fa['port'])||0x157c,_0x5b809e=_0x44b5fa['name']||_0x44b5fa[_0x4c0cc8(0x81)]?.['fn']||_0x4c0cc8(0xa0);return hostsFromBonjourService(_0x44b5fa)[_0x4c0cc8(0x83)](_0x14b790=>({'name':_0x5b809e,'host':_0x14b790,'port':_0x1ab1d9,'baseUrl':_0x4c0cc8(0x94)+'/'+formatHttpHost(_0x14b790)+':'+_0x1ab1d9,'source':_0x4c0cc8(0x92),'product':_0x44b5fa[_0x4c0cc8(0x81)]?.[_0x4c0cc8(0xc4)+'t']||'','board':_0x44b5fa[_0x4c0cc8(0x81)]?.[_0x4c0cc8(0x7f)]||''}));}export function isMossOnlineSignal(_0x514f0a){const _0x9c7d44=_0x1735,_0x5b09ed=String(_0x514f0a?.['type']||''),_0x53e45d=_0x514f0a?.[_0x9c7d44(0xc5)+'d']&&typeof _0x514f0a[_0x9c7d44(0xc5)+'d']===_0x9c7d44(0xa8)?_0x514f0a[_0x9c7d44(0xc5)+'d']:{};if(_0x5b09ed==='device'+_0x9c7d44(0xb2)+'e')return!![];if(_0x5b09ed===_0x9c7d44(0xb7)+'ck'&&_0x53e45d['messag'+'e']!==_0x9c7d44(0x7a)+'d'&&_0x53e45d['ok']!==![])return!![];return![];}export function isLikelyMossHealth(_0x54bf79){const _0x5a71db=_0x1735;if(!_0x54bf79||typeof _0x54bf79!==_0x5a71db(0xa8))return![];if(_0x54bf79[_0x5a71db(0xc4)+'t']==='moss-x'+_0x5a71db(0x90)||_0x54bf79['produc'+'t']===_0x5a71db(0xba)+'amera')return!![];if(_0x54bf79[_0x5a71db(0x7f)]===_0x5a71db(0xab)+_0x5a71db(0x9d)||_0x54bf79[_0x5a71db(0x7f)]===_0x5a71db(0xab)+_0x5a71db(0xb0))return!![];if(_0x54bf79[_0x5a71db(0xb9)]==='ok'&&(_0x54bf79[_0x5a71db(0xbb)]===_0x5a71db(0xaa)+_0x5a71db(0xb4)||_0x54bf79[_0x5a71db(0xbb)]===_0x5a71db(0xab)+_0x5a71db(0x9d)||_0x54bf79['name']===_0x5a71db(0xab)+_0x5a71db(0xb0)||_0x54bf79['hostna'+'me']))return!![];return Boolean(_0x54bf79[_0x5a71db(0xa2)+'me']&&_0x54bf79[_0x5a71db(0xac)+'ce']);}export function enrichFromHealth(_0x63856b,_0x2c3d9b){const _0x482daa=_0x1735;if(!isLikelyMossHealth(_0x2c3d9b))return{..._0x63856b};const _0x8a7c86=_0x2c3d9b[_0x482daa(0xc4)+'t']||_0x63856b[_0x482daa(0xc4)+'t']||'',_0x3e54e6=_0x2c3d9b[_0x482daa(0x7f)]||_0x2c3d9b[_0x482daa(0xbb)]||_0x63856b[_0x482daa(0x7f)]||'',_0x35a4eb=_0x2c3d9b['instan'+'ce']||_0x2c3d9b[_0x482daa(0xa1)+'y_name']||_0x2c3d9b[_0x482daa(0xa2)+'me']||_0x63856b[_0x482daa(0xbb)];return{..._0x63856b,'name':_0x35a4eb,'product':_0x8a7c86,'board':_0x3e54e6,'hostname':_0x2c3d9b[_0x482daa(0xa2)+'me']||_0x63856b[_0x482daa(0xa2)+'me']||'','mac':_0x2c3d9b[_0x482daa(0xc3)]||_0x63856b[_0x482daa(0xc3)]||'','ip':_0x2c3d9b['ip']||_0x63856b['ip']||'','bound':!!_0x2c3d9b['bound']};}export function mergeDevices(_0x232550,_0x12c2a7){const _0x4e9343=_0x1735;if(!_0x12c2a7?.[_0x4e9343(0x7e)+'l'])return _0x232550;const _0x1ff6b3=String(_0x12c2a7[_0x4e9343(0x7e)+'l'])[_0x4e9343(0xb6)+'e'](/\/$/,''),_0x5e3e23={..._0x12c2a7,'baseUrl':_0x1ff6b3},_0x3b36d7=_0x232550[_0x4e9343(0x8d)+_0x4e9343(0xb8)](_0x50e25f=>sameScanDevice(_0x50e25f,_0x5e3e23));if(_0x3b36d7<0x0)return _0x232550[_0x4e9343(0xb5)](_0x5e3e23),_0x232550;const _0x526b0d=_0x232550[_0x3b36d7];return _0x232550[_0x3b36d7]={..._0x526b0d,..._0x5e3e23,'baseUrl':preferScanBaseUrl(_0x526b0d[_0x4e9343(0x7e)+'l'],_0x1ff6b3),'mac':normalizeMac(_0x5e3e23[_0x4e9343(0xc3)])||_0x526b0d[_0x4e9343(0xc3)]||'','hostname':_0x5e3e23[_0x4e9343(0xa2)+'me']||_0x526b0d[_0x4e9343(0xa2)+'me']||''},_0x232550;}export function sameScanDevice(_0x17ac43={},_0xd5c4b5={}){const _0x24be1d=_0x1735,_0x3aae12=String(_0x17ac43['baseUr'+'l']||'')[_0x24be1d(0xb6)+'e'](/\/$/,''),_0x1ff486=String(_0xd5c4b5[_0x24be1d(0x7e)+'l']||'')[_0x24be1d(0xb6)+'e'](/\/$/,'');if(_0x3aae12&&_0x1ff486&&_0x3aae12===_0x1ff486)return!![];const _0x5a16e9=normalizeMac(_0x17ac43['mac']),_0x498c39=normalizeMac(_0xd5c4b5[_0x24be1d(0xc3)]);if(_0x5a16e9&&_0x498c39&&_0x5a16e9===_0x498c39)return!![];const _0x14ff21=scanHostname(_0x17ac43),_0x57db62=scanHostname(_0xd5c4b5);if(_0x14ff21&&_0x57db62&&_0x14ff21===_0x57db62)return!![];return![];}export function scanHostname(_0x5bba7f={}){const _0x5029d2=_0x1735,_0x3e22da=[_0x5bba7f[_0x5029d2(0xa2)+'me'],_0x5bba7f[_0x5029d2(0xb3)]]['map'](_0x5c3a6c=>String(_0x5c3a6c||'')['trim']()[_0x5029d2(0xae)+_0x5029d2(0x9f)]()['replac'+'e'](/\.$/,'')[_0x5029d2(0xb6)+'e'](/\.local$/,''))[_0x5029d2(0xc1)](_0x1920d3=>_0x1920d3&&!IPV4[_0x5029d2(0x96)](_0x1920d3)&&!_0x1920d3[_0x5029d2(0xbc)+'es'](':'));if(_0x3e22da)return _0x3e22da;const _0x4d004d=String(_0x5bba7f['baseUr'+'l']||'')[_0x5029d2(0xb6)+'e'](/^https?:\/\//i,'')['split']('/')[0x0]['split'](':')[0x0][_0x5029d2(0xb6)+'e'](/\[|\]/g,'')['toLowe'+_0x5029d2(0x9f)]()[_0x5029d2(0xb6)+'e'](/\.local$/,'');if(!_0x4d004d||IPV4[_0x5029d2(0x96)](_0x4d004d)||_0x4d004d[_0x5029d2(0xbc)+'es'](':'))return'';return _0x4d004d;}export function preferScanBaseUrl(_0x44f487,_0xd08d14){const _0xbab61a=_0x1735,_0x5b3b9e=String(_0x44f487||'')[_0xbab61a(0xb6)+'e'](/\/$/,''),_0x491f11=String(_0xd08d14||'')[_0xbab61a(0xb6)+'e'](/\/$/,'');if(isIpv4BaseUrl(_0x491f11)&&!isIpv4BaseUrl(_0x5b3b9e))return _0x491f11;if(isIpv4BaseUrl(_0x5b3b9e))return _0x5b3b9e;return _0x491f11||_0x5b3b9e;}function isIpv4BaseUrl(_0x2e388b){const _0x2c03c9=_0x1735,_0x3ff78e=String(_0x2e388b||'')[_0x2c03c9(0xb6)+'e'](/^https?:\/\//i,'')[_0x2c03c9(0xc7)]('/')[0x0][_0x2c03c9(0xc7)](':')[0x0];return IPV4[_0x2c03c9(0x96)](_0x3ff78e);}export function shouldScanIface(_0x5ce838,_0x4ab419){const _0x542840=_0x1735,_0x2d90fa=String(_0x5ce838||'')[_0x542840(0xae)+'rCase']();if(/^(docker|veth|br-|vmnet|vboxnet|lo|awdl|llw|utun|bridge|cni|flannel)/[_0x542840(0x96)](_0x2d90fa))return![];const _0x3d2e1c=String(_0x4ab419||'')[_0x542840(0xc7)]('.')[_0x542840(0x83)](Number);if(_0x3d2e1c[_0x542840(0x91)]!==0x4||_0x3d2e1c[_0x542840(0xa4)](_0x2e60d4=>Number[_0x542840(0xc8)](_0x2e60d4)))return![];const [_0x3b30c0,_0x2f57c1]=_0x3d2e1c;if(_0x3b30c0===0xa)return!![];if(_0x3b30c0===0xc0&&_0x2f57c1===0xa8)return!![];if(_0x3b30c0===0xac&&_0x2f57c1>=0x10&&_0x2f57c1<=0x1f&&_0x2f57c1!==0x11)return!![];return![];}export function listLanPrefixes(_0x28a64a=_0xb672d9[_0x9b3941(0x78)+'kInter'+_0x9b3941(0x77)]()){const _0x2cedf6=_0x9b3941,_0x36ecdb=[];for(const [_0x5a501d,_0x5c8d2c]of Object[_0x2cedf6(0x9a)+'s'](_0x28a64a||{})){for(const _0x1d0129 of _0x5c8d2c||[]){const _0x1c964f=_0x1d0129[_0x2cedf6(0x99)]===0x4||_0x1d0129[_0x2cedf6(0x99)]==='IPv4';if(_0x1d0129[_0x2cedf6(0xb1)+'al']||!_0x1c964f)continue;if(!shouldScanIface(_0x5a501d,_0x1d0129[_0x2cedf6(0xc6)+'s']))continue;const _0x14d70f=_0x1d0129['addres'+'s'][_0x2cedf6(0xc7)]('.');_0x36ecdb[_0x2cedf6(0xb5)](_0x14d70f[0x0]+'.'+_0x14d70f[0x1]+'.'+_0x14d70f[0x2]);}}return[...new Set(_0x36ecdb)];}export async function probeMossHealth(_0x299450,{timeoutMs:timeoutMs=0x384,fetchImpl:fetchImpl=fetch}={}){const _0x5c2411=_0x9b3941,_0x4f9c3d=String(_0x299450||'')[_0x5c2411(0xb6)+'e'](/\/$/,'')+(_0x5c2411(0xbd)+'h');try{const _0x4363cd=await fetchImpl(_0x4f9c3d,{'signal':AbortSignal[_0x5c2411(0x8f)+'t'](timeoutMs)});if(!_0x4363cd['ok'])return null;const _0x2810f9=await _0x4363cd['json']();return isLikelyMossHealth(_0x2810f9)?_0x2810f9:null;}catch{return null;}}async function mapPool(_0x164d5f,_0x4df0ac,_0x481de8){const _0x3fcd91=_0x9b3941,_0x1825a4=new Array(_0x164d5f[_0x3fcd91(0x91)]);let _0x284581=0x0;async function _0x393cda(){const _0x2d641f=_0x3fcd91;while(_0x284581<_0x164d5f[_0x2d641f(0x91)]){const _0x4c7248=_0x284581++;_0x1825a4[_0x4c7248]=await _0x481de8(_0x164d5f[_0x4c7248],_0x4c7248);}}const _0x45ec1f=Math[_0x3fcd91(0xa5)](0x1,Math['min'](_0x4df0ac,_0x164d5f[_0x3fcd91(0x91)]||0x1));return await Promise[_0x3fcd91(0x8b)](Array['from']({'length':_0x45ec1f},()=>_0x393cda())),_0x1825a4;}export async function browseMossHttp(_0x2b75b1=0xfa0){const _0x1c58f8=_0x9b3941,_0x29aecc=[],_0x3768b5=new _0x2b782c(),_0x18500b=_0x3768b5[_0x1c58f8(0xc1)]({'type':'moss-h'+_0x1c58f8(0x7b),'protocol':'tcp'},_0x3fda79=>{for(const _0x4a4c20 of deviceFromService(_0x3fda79))mergeDevices(_0x29aecc,_0x4a4c20);});await new Promise(_0x3cdeed=>setTimeout(_0x3cdeed,_0x2b75b1));try{_0x18500b[_0x1c58f8(0x98)]();}catch{}try{_0x3768b5[_0x1c58f8(0x95)+'y']();}catch{}return _0x29aecc;}export async function scanLanMoss({port:port=0x157c,timeoutMs:timeoutMs=0x1f4,concurrency:concurrency=0x30,fetchImpl:fetchImpl=fetch,prefixes:prefixes=listLanPrefixes()}={}){const _0x4c10cc=_0x9b3941,_0x4be3a8=[],_0x168667=[];for(const _0xfcd9af of prefixes){for(let _0xdc49d5=0x1;_0xdc49d5<=0xfe;_0xdc49d5+=0x1){_0x168667[_0x4c10cc(0xb5)](_0x4c10cc(0x94)+'/'+_0xfcd9af+'.'+_0xdc49d5+':'+port);}}const _0x5e100f=[...new Set(_0x168667)];return await mapPool(_0x5e100f,concurrency,async _0x1eb400=>{const _0x9f8387=_0x4c10cc,_0x389814=await probeMossHealth(_0x1eb400,{'timeoutMs':timeoutMs,'fetchImpl':fetchImpl});if(!_0x389814)return;mergeDevices(_0x4be3a8,enrichFromHealth({'name':_0x389814[_0x9f8387(0xac)+'ce']||_0x389814[_0x9f8387(0xa2)+'me']||_0x9f8387(0xa0),'host':_0x1eb400[_0x9f8387(0xb6)+'e'](/^https?:\/\//,'')[_0x9f8387(0xb6)+'e'](/:\d+$/,''),'port':port,'baseUrl':_0x1eb400,'source':'lan'},_0x389814));}),_0x4be3a8;}export async function discoverMossDevices({lastHostname:lastHostname='',lastBaseUrl:lastBaseUrl='',mdnsMs:mdnsMs=0xfa0,fetchImpl:fetchImpl=fetch}={}){const _0x1dc5df=_0x9b3941,_0x4e5d7e=[],_0xec627f=browseMossHttp(mdnsMs)[_0x1dc5df(0x97)](_0x4fcfa6=>{const _0x1a805f=_0x1dc5df;return console[_0x1a805f(0x88)]('[disco'+_0x1a805f(0x85)+'dns',_0x4fcfa6?.[_0x1a805f(0xad)+'e']||_0x4fcfa6),[];}),_0x2de6b1=scanLanMoss({'fetchImpl':fetchImpl})['catch'](_0xf0c23f=>{const _0x2195ee=_0x1dc5df;return console[_0x2195ee(0x88)](_0x2195ee(0x89)+_0x2195ee(0xa7)+'an',_0xf0c23f?.['messag'+'e']||_0xf0c23f),[];}),_0x18f494=[];if(lastBaseUrl)_0x18f494[_0x1dc5df(0xb5)]({'name':_0x1dc5df(0xc0),'baseUrl':String(lastBaseUrl)[_0x1dc5df(0xb6)+'e'](/\/$/,''),'source':_0x1dc5df(0xbe)});lastHostname&&_0x18f494['push']({'name':lastHostname,'baseUrl':_0x1dc5df(0x94)+'/'+lastHostname+(_0x1dc5df(0x93)+_0x1dc5df(0x9e)),'source':_0x1dc5df(0xa2)+'me'});const [_0x43b0cc,_0x5b67b7]=await Promise[_0x1dc5df(0x8b)]([_0xec627f,_0x2de6b1]);for(const _0x128ab0 of[..._0x43b0cc,..._0x5b67b7,..._0x18f494])mergeDevices(_0x4e5d7e,_0x128ab0);const _0x411fbc=await mapPool(_0x4e5d7e,0x8,async _0x319ad3=>{const _0x45ca26=_0x1dc5df,_0x4a5769=await probeMossHealth(_0x319ad3[_0x45ca26(0x7e)+'l'],{'timeoutMs':0x4b0,'fetchImpl':fetchImpl});if(_0x4a5769)return enrichFromHealth(_0x319ad3,_0x4a5769);if(_0x319ad3[_0x45ca26(0x9c)]==='mdns'||_0x319ad3['source']===_0x45ca26(0xa9))return _0x319ad3;return null;}),_0x42da30=[];for(const _0x5ba2d2 of _0x411fbc){if(_0x5ba2d2)mergeDevices(_0x42da30,_0x5ba2d2);}return _0x42da30;}function _0x40cc(){const _0x23b1b5=['DMvYxsbS','B2jQzwn0','BgfU','Bw9ZCY1K','Bw9ZCY1V','Aw5ZDgfU','BwvZC2fN','Dg9mB3DL','mZy5mZeZy0joqNbJ','DJi2nda','Aw50zxjU','lM9UBgLU','Ag9ZDa','zxnRDg9W','ChvZAa','CMvWBgfJ','yMLUzc5H','zgv4','C3rHDhvZ','Bw9ZCY1J','BMfTzq','Aw5JBhvK','l2HLywX0','C2f2zwq','nM9uDuzWua','5lIk5QYH6l+E5O6L','zMLUza','mta1ndqXnMrSv1jXrq','BwfJ','ChjVzhvJ','Cgf5Bg9H','ywrKCMvZ','C3bSAxq','Axnoyu4','zMfJzxm','BMv0D29Y','nZa0mZrZEhvmzLG','y2XLyxjL','DhrW','mtq5mde5meHmtM5NBG','nwXYEuzTuG','yMfZzvvY','yM9HCMq','v2L0Aa','DhH0','nZaWu1rrt3Ho','BwfW','AxnbCNjH','DMvYxsbT','nte2mdG0AgD5wKPm','DhjPBq','D2fYBG','w2rPC2nV','C2vZ','ywXS','mty5lJi1','zMLUzeLU','CMvMzxjL','DgLTzw91','AwfVEMHP','BgvUz3rO','BwrUCW','lMXVy2fS','Ahr0CdOV','zgvZDhjV','DgvZDa','y2f0y2G','C3rVCa','zMfTAwX5','zw50CMLL','mtq5mZC0DxbquwTh','C291CMnL','BNzPzG','oJu1mda','CKnHC2u','tu9tuW','zgLZCgXH','Ag9ZDg5H','C3rHCNrZ','C29Tzq','Bwf4','mty1odK3nLrAzg9rwa'];_0x40cc=function(){return _0x23b1b5;};return _0x40cc();}
1
+ const _0xe095ed=_0x113e;(function(_0x43c773,_0x39e4bf){const _0x1a65e0=_0x113e,_0xb9ee6d=_0x43c773();while(!![]){try{const _0x9fa9c1=parseInt(_0x1a65e0(0x107))/0x1*(parseInt(_0x1a65e0(0x120))/0x2)+parseInt(_0x1a65e0(0x135))/0x3+parseInt(_0x1a65e0(0x12b))/0x4+parseInt(_0x1a65e0(0x100))/0x5+parseInt(_0x1a65e0(0xe8))/0x6+-parseInt(_0x1a65e0(0x126))/0x7*(-parseInt(_0x1a65e0(0x10d))/0x8)+-parseInt(_0x1a65e0(0x124))/0x9;if(_0x9fa9c1===_0x39e4bf)break;else _0xb9ee6d['push'](_0xb9ee6d['shift']());}catch(_0x583c48){_0xb9ee6d['push'](_0xb9ee6d['shift']());}}}(_0x14c4,0x884da));function _0x113e(_0x376d4a,_0x218146){_0x376d4a=_0x376d4a-0xe1;const _0x14c4ab=_0x14c4();let _0x113ef1=_0x14c4ab[_0x376d4a];if(_0x113e['pjGUhL']===undefined){var _0x2a91e3=function(_0x2e9eee){const _0x9d16b2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24b524='',_0x2413a2='';for(let _0x2d0e57=0x0,_0x150278,_0x231555,_0x5ec8c0=0x0;_0x231555=_0x2e9eee['charAt'](_0x5ec8c0++);~_0x231555&&(_0x150278=_0x2d0e57%0x4?_0x150278*0x40+_0x231555:_0x231555,_0x2d0e57++%0x4)?_0x24b524+=String['fromCharCode'](0xff&_0x150278>>(-0x2*_0x2d0e57&0x6)):0x0){_0x231555=_0x9d16b2['indexOf'](_0x231555);}for(let _0xc2fc9b=0x0,_0x426097=_0x24b524['length'];_0xc2fc9b<_0x426097;_0xc2fc9b++){_0x2413a2+='%'+('00'+_0x24b524['charCodeAt'](_0xc2fc9b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2413a2);};_0x113e['JesSDQ']=_0x2a91e3,_0x113e['xAKRmK']={},_0x113e['pjGUhL']=!![];}const _0x551b8e=_0x14c4ab[0x0],_0x3166b8=_0x376d4a+_0x551b8e,_0x131213=_0x113e['xAKRmK'][_0x3166b8];return!_0x131213?(_0x113ef1=_0x113e['JesSDQ'](_0x113ef1),_0x113e['xAKRmK'][_0x3166b8]=_0x113ef1):_0x113ef1=_0x131213,_0x113ef1;}import _0x24b524 from'node:os';import _0x2413a2 from'bonjour-service';import{normalizeMac}from'./device-identity.mjs';const IPV4=/^(\d{1,3}\.){3}\d{1,3}$/;export function formatHttpHost(_0x2d0e57){const _0x525782=_0x113e,_0x150278=String(_0x2d0e57||'')[_0x525782(0x10f)]()['replac'+'e'](/^\[|\]$/g,'')[_0x525782(0x11c)+'e'](/\.$/,'');if(!_0x150278)return'';if(_0x150278[_0x525782(0x136)+'es'](':'))return'['+_0x150278+']';return _0x150278;}export function hostsFromBonjourService(_0x231555={}){const _0x2fd6ad=_0x113e,_0x5ec8c0=[];if(Array[_0x2fd6ad(0x101)+'y'](_0x231555[_0x2fd6ad(0x12a)+_0x2fd6ad(0xf7)]))_0x5ec8c0['push'](..._0x231555[_0x2fd6ad(0x12a)+_0x2fd6ad(0xf7)]);if(_0x231555[_0x2fd6ad(0xf6)+'r']?.[_0x2fd6ad(0x12a)+'s'])_0x5ec8c0['push'](_0x231555[_0x2fd6ad(0xf6)+'r'][_0x2fd6ad(0x12a)+'s']);if(_0x231555[_0x2fd6ad(0x138)])_0x5ec8c0['push'](_0x231555[_0x2fd6ad(0x138)]);const _0xc2fc9b=[],_0x426097=[],_0x56af61=[];for(const _0x1ae97e of _0x5ec8c0){const _0x47508a=String(_0x1ae97e||'')['trim']()[_0x2fd6ad(0x11c)+'e'](/^\[|\]$/g,'')['replac'+'e'](/\.$/,'');if(!_0x47508a||_0x47508a===_0x2fd6ad(0x109)+'0'||_0x47508a==='::')continue;if(IPV4[_0x2fd6ad(0x119)](_0x47508a)){if(!_0x47508a[_0x2fd6ad(0xec)+_0x2fd6ad(0xf1)](_0x2fd6ad(0x106)+'4.'))_0xc2fc9b[_0x2fd6ad(0xfc)](_0x47508a);continue;}if(_0x47508a[_0x2fd6ad(0x136)+'es'](':')){if(!_0x47508a[_0x2fd6ad(0xf5)+_0x2fd6ad(0x10e)]()[_0x2fd6ad(0xec)+_0x2fd6ad(0xf1)](_0x2fd6ad(0x115)))_0x56af61['push'](_0x47508a);continue;}_0x426097[_0x2fd6ad(0xfc)](_0x47508a);}return[...new Set([..._0xc2fc9b,..._0x426097,..._0x56af61])];}function _0x14c4(){const _0xb6f1f8=['AxnbCNjH','Aw5ZDgfU','yM91BMq','AwfVEMHP','DgLTzw91','mty5lJi1','mvbewhH0ua','Bw9ZCY1K','mc4WlJaU','DhrW','l2HLywX0','Ag9ZDg5H','mtCYmdi0AuTgqKLu','CKnHC2u','DhjPBq','Cg9YDa','Bw9ZCY14','A0LUDgvY','zMLUzeLU','zw50CMLL','zMu4mdO','ANnVBG','zMLUza','zgv2AwnL','DgvZDa','Cgf5Bg9H','yw1LCMe','CMvWBgfJ','BMv0D29Y','ywXS','Bwf4','mJeWmdiWDvPzExPv','C3rVCa','BgfU','zgvZDhjV','mJa2nZm1ntHusxnmweG','DhLWzq','mZvvCwnOzeG','Bw9ZCY1J','yM9HCMq','zMfTAwX5','ywrKCMvZ','ndaYmtqXmNvPwe91yW','C2f2zwq','y2XLyxjL','lMXVy2fS','DMvYxsbT','BwfJ','Ev9Uyw1L','B2jQzwn0','yMfZzvvY','BwLU','mte1ody5m3vqBNv2AG','Aw5JBhvK','w2rPC2nV','Ag9ZDa','zg5Z','ChjVzhvJ','C3rHDhvZ','BMfTzq','BwfW','C291CMnL','BgvUz3rO','DJi2nda','Ahr0CdOV','Axnoyu4','ntm0ota3oejuDvbrzG','DhH0','lM9UBgLU','C3bSAxq','C3rHCNrZ','zMfJzxm','y2f0y2G','oJu1mda','Bw9ZCY1O','v2L0Aa','BwvZC2fN','BwrUCW','svb2na','Dg9mB3DL','CMvMzxjL','C2vZ','BNzPzG','tu9tuW','zxnRDg9W','yMLUzc5H','ChvZAa','Aw50zxjU','Bw9ZCY1V','D2fYBG','mtC5ody5mhbkBM15uG'];_0x14c4=function(){return _0xb6f1f8;};return _0x14c4();}export function deviceFromService(_0x38779b){const _0x53eb4c=_0x113e,_0x1d1a83=Number(_0x38779b[_0x53eb4c(0x110)])||0x157c,_0x341dc7=_0x38779b[_0x53eb4c(0xe1)]||_0x38779b[_0x53eb4c(0xe9)]?.['fn']||_0x53eb4c(0xf9);return hostsFromBonjourService(_0x38779b)[_0x53eb4c(0xe2)](_0x295f5c=>({'name':_0x341dc7,'host':_0x295f5c,'port':_0x1d1a83,'baseUrl':_0x53eb4c(0xe6)+'/'+formatHttpHost(_0x295f5c)+':'+_0x1d1a83,'source':_0x53eb4c(0xf3),'product':_0x38779b['txt']?.['produc'+'t']||'','board':_0x38779b[_0x53eb4c(0xe9)]?.[_0x53eb4c(0x128)]||''}));}export function isMossOnlineSignal(_0x558afb){const _0x7e2177=_0x113e,_0x5e69eb=String(_0x558afb?.[_0x7e2177(0x125)]||''),_0x5856ad=_0x558afb?.['payloa'+'d']&&typeof _0x558afb[_0x7e2177(0x11a)+'d']==='object'?_0x558afb['payloa'+'d']:{};if(_0x5e69eb===_0x7e2177(0x118)+_0x7e2177(0xea)+'e')return!![];if(_0x5e69eb===_0x7e2177(0xfb)+'ck'&&_0x5856ad['messag'+'e']!==_0x7e2177(0x12d)+'d'&&_0x5856ad['ok']!==![])return!![];return![];}export function isLikelyMossHealth(_0x26b47a){const _0x79a76=_0x113e;if(!_0x26b47a||typeof _0x26b47a!==_0x79a76(0x132))return![];if(_0x26b47a[_0x79a76(0x13a)+'t']===_0x79a76(0x111)+_0x79a76(0x104)||_0x26b47a[_0x79a76(0x13a)+'t']===_0x79a76(0x127)+_0x79a76(0x11b))return!![];if(_0x26b47a[_0x79a76(0x128)]===_0x79a76(0xfe)+'nvif'||_0x26b47a[_0x79a76(0x128)]===_0x79a76(0xfe)+_0x79a76(0xe5))return!![];if(_0x26b47a[_0x79a76(0x13b)]==='ok'&&(_0x26b47a[_0x79a76(0xe1)]===_0x79a76(0x108)+_0x79a76(0xfa)||_0x26b47a[_0x79a76(0xe1)]===_0x79a76(0xfe)+_0x79a76(0xf8)||_0x26b47a[_0x79a76(0xe1)]===_0x79a76(0xfe)+_0x79a76(0xe5)||_0x26b47a[_0x79a76(0x10c)+'me']))return!![];return Boolean(_0x26b47a['hostna'+'me']&&_0x26b47a[_0x79a76(0x102)+'ce']);}export function enrichFromHealth(_0x163bae,_0x3acd03){const _0x3940c5=_0x113e;if(!isLikelyMossHealth(_0x3acd03))return{..._0x163bae};const _0x2c3bc9=_0x3acd03[_0x3940c5(0x13a)+'t']||_0x163bae[_0x3940c5(0x13a)+'t']||'',_0x1a3637=_0x3acd03[_0x3940c5(0x128)]||_0x3acd03[_0x3940c5(0xe1)]||_0x163bae['board']||'',_0x5e9ee3=_0x3acd03[_0x3940c5(0x102)+'ce']||_0x3acd03['displa'+_0x3940c5(0x131)]||_0x3acd03[_0x3940c5(0x10c)+'me']||_0x163bae[_0x3940c5(0xe1)];return{..._0x163bae,'name':_0x5e9ee3,'product':_0x2c3bc9,'board':_0x1a3637,'hostname':_0x3acd03['hostna'+'me']||_0x163bae[_0x3940c5(0x10c)+'me']||'','mac':_0x3acd03['mac']||_0x163bae[_0x3940c5(0x130)]||'','ip':_0x3acd03['ip']||_0x163bae['ip']||'','bound':!!_0x3acd03[_0x3940c5(0x103)]};}export function mergeDevices(_0x1e8b9c,_0x2f76a3){const _0xd202bd=_0x113e;if(!_0x2f76a3?.[_0xd202bd(0x133)+'l'])return _0x1e8b9c;const _0x5bdd61=String(_0x2f76a3[_0xd202bd(0x133)+'l'])[_0xd202bd(0x11c)+'e'](/\/$/,''),_0x3b494c={..._0x2f76a3,'baseUrl':_0x5bdd61},_0x36f0c8=_0x1e8b9c[_0xd202bd(0x113)+'dex'](_0x3411c0=>sameScanDevice(_0x3411c0,_0x3b494c));if(_0x36f0c8<0x0)return _0x1e8b9c[_0xd202bd(0xfc)](_0x3b494c),_0x1e8b9c;const _0x9bef1f=_0x1e8b9c[_0x36f0c8];return _0x1e8b9c[_0x36f0c8]={..._0x9bef1f,..._0x3b494c,'baseUrl':preferScanBaseUrl(_0x9bef1f[_0xd202bd(0x133)+'l'],_0x5bdd61),'mac':normalizeMac(_0x3b494c[_0xd202bd(0x130)])||_0x9bef1f[_0xd202bd(0x130)]||'','hostname':_0x3b494c[_0xd202bd(0x10c)+'me']||_0x9bef1f[_0xd202bd(0x10c)+'me']||''},_0x1e8b9c;}export function sameScanDevice(_0x373109={},_0x128375={}){const _0x6c1548=_0x113e,_0x5f22a7=String(_0x373109[_0x6c1548(0x133)+'l']||'')[_0x6c1548(0x11c)+'e'](/\/$/,''),_0x2095a6=String(_0x128375[_0x6c1548(0x133)+'l']||'')[_0x6c1548(0x11c)+'e'](/\/$/,'');if(_0x5f22a7&&_0x2095a6&&_0x5f22a7===_0x2095a6)return!![];const _0x3cc426=normalizeMac(_0x373109[_0x6c1548(0x130)]),_0x105922=normalizeMac(_0x128375[_0x6c1548(0x130)]);if(_0x3cc426&&_0x105922&&_0x3cc426===_0x105922)return!![];const _0x496a47=scanHostname(_0x373109),_0x51d88f=scanHostname(_0x128375);if(_0x496a47&&_0x51d88f&&_0x496a47===_0x51d88f)return!![];return![];}export function scanHostname(_0x52065a={}){const _0x239e8e=_0x113e,_0x3ab3e7=[_0x52065a[_0x239e8e(0x10c)+'me'],_0x52065a[_0x239e8e(0x138)]][_0x239e8e(0xe2)](_0x468d96=>String(_0x468d96||'')[_0x239e8e(0x10f)]()['toLowe'+_0x239e8e(0x10e)]()[_0x239e8e(0x11c)+'e'](/\.$/,'')[_0x239e8e(0x11c)+'e'](/\.local$/,''))[_0x239e8e(0x117)](_0x59a85c=>_0x59a85c&&!IPV4[_0x239e8e(0x119)](_0x59a85c)&&!_0x59a85c[_0x239e8e(0x136)+'es'](':'));if(_0x3ab3e7)return _0x3ab3e7;const _0x4d7927=String(_0x52065a['baseUr'+'l']||'')['replac'+'e'](/^https?:\/\//i,'')[_0x239e8e(0xeb)]('/')[0x0]['split'](':')[0x0][_0x239e8e(0x11c)+'e'](/\[|\]/g,'')[_0x239e8e(0xf5)+_0x239e8e(0x10e)]()[_0x239e8e(0x11c)+'e'](/\.local$/,'');if(!_0x4d7927||IPV4[_0x239e8e(0x119)](_0x4d7927)||_0x4d7927[_0x239e8e(0x136)+'es'](':'))return'';return _0x4d7927;}export function preferScanBaseUrl(_0x134b70,_0x377805){const _0x33926b=_0x113e,_0x45accf=String(_0x134b70||'')['replac'+'e'](/\/$/,''),_0x3749d3=String(_0x377805||'')[_0x33926b(0x11c)+'e'](/\/$/,'');if(isIpv4BaseUrl(_0x3749d3)&&!isIpv4BaseUrl(_0x45accf))return _0x3749d3;if(isIpv4BaseUrl(_0x45accf))return _0x45accf;return _0x3749d3||_0x45accf;}function isIpv4BaseUrl(_0x2bfae7){const _0x39619a=_0x113e,_0x2b7cc0=String(_0x2bfae7||'')[_0x39619a(0x11c)+'e'](/^https?:\/\//i,'')['split']('/')[0x0][_0x39619a(0xeb)](':')[0x0];return IPV4[_0x39619a(0x119)](_0x2b7cc0);}export function shouldScanIface(_0x50624c,_0x525594){const _0x1022b4=_0x113e,_0x597ebd=String(_0x50624c||'')[_0x1022b4(0xf5)+_0x1022b4(0x10e)]();if(/^(docker|veth|br-|vmnet|vboxnet|lo|awdl|llw|utun|bridge|cni|flannel)/[_0x1022b4(0x119)](_0x597ebd))return![];const _0x3e0ce7=String(_0x525594||'')[_0x1022b4(0xeb)]('.')[_0x1022b4(0xe2)](Number);if(_0x3e0ce7[_0x1022b4(0xe4)]!==0x4||_0x3e0ce7['some'](_0x54deb6=>Number[_0x1022b4(0xe7)](_0x54deb6)))return![];const [_0x5419de,_0x343151]=_0x3e0ce7;if(_0x5419de===0xa)return!![];if(_0x5419de===0xc0&&_0x343151===0xa8)return!![];if(_0x5419de===0xac&&_0x343151>=0x10&&_0x343151<=0x1f&&_0x343151!==0x11)return!![];return![];}export function listLanPrefixes(_0x44cae2=_0x24b524[_0xe095ed(0x11d)+_0xe095ed(0x112)+_0xe095ed(0xed)]()){const _0x19253=_0xe095ed,_0x3e1d77=[];for(const [_0x48e2d7,_0x14c62e]of Object[_0x19253(0x114)+'s'](_0x44cae2||{})){for(const _0x2fb875 of _0x14c62e||[]){const _0x40f974=_0x2fb875[_0x19253(0x129)]===0x4||_0x2fb875[_0x19253(0x129)]===_0x19253(0xf4);if(_0x2fb875[_0x19253(0xfd)+'al']||!_0x40f974)continue;if(!shouldScanIface(_0x48e2d7,_0x2fb875[_0x19253(0x12a)+'s']))continue;const _0x31e4ac=_0x2fb875[_0x19253(0x12a)+'s'][_0x19253(0xeb)]('.');_0x3e1d77[_0x19253(0xfc)](_0x31e4ac[0x0]+'.'+_0x31e4ac[0x1]+'.'+_0x31e4ac[0x2]);}}return[...new Set(_0x3e1d77)];}export async function probeMossHealth(_0xda7bbc,{timeoutMs:timeoutMs=0x384,fetchImpl:fetchImpl=fetch}={}){const _0x4773d8=_0xe095ed,_0x5b03e7=String(_0xda7bbc||'')[_0x4773d8(0x11c)+'e'](/\/$/,'')+(_0x4773d8(0x10b)+'h');try{const _0x51f3d9=await fetchImpl(_0x5b03e7,{'signal':AbortSignal[_0x4773d8(0x105)+'t'](timeoutMs)});if(!_0x51f3d9['ok'])return null;const _0x259f7b=await _0x51f3d9[_0x4773d8(0x116)]();return isLikelyMossHealth(_0x259f7b)?_0x259f7b:null;}catch{return null;}}async function mapPool(_0xf810c8,_0x4df1a7,_0x1a6137){const _0x14754b=_0xe095ed,_0x32c8f8=new Array(_0xf810c8[_0x14754b(0xe4)]);let _0x419750=0x0;async function _0xa6390(){const _0xb89183=_0x14754b;while(_0x419750<_0xf810c8[_0xb89183(0xe4)]){const _0x25a943=_0x419750++;_0x32c8f8[_0x25a943]=await _0x1a6137(_0xf810c8[_0x25a943],_0x25a943);}}const _0x2b357e=Math[_0x14754b(0x11f)](0x1,Math[_0x14754b(0x134)](_0x4df1a7,_0xf810c8[_0x14754b(0xe4)]||0x1));return await Promise[_0x14754b(0x11e)](Array['from']({'length':_0x2b357e},()=>_0xa6390())),_0x32c8f8;}export async function browseMossHttp(_0x32011b=0xfa0){const _0x3248f0=_0xe095ed,_0x5441a7=[],_0x17de95=new _0x2413a2(),_0x5971c8=_0x17de95[_0x3248f0(0x117)]({'type':_0x3248f0(0xf0)+_0x3248f0(0x10a),'protocol':'tcp'},_0x2bbad1=>{for(const _0x475e14 of deviceFromService(_0x2bbad1))mergeDevices(_0x5441a7,_0x475e14);});await new Promise(_0x4be456=>setTimeout(_0x4be456,_0x32011b));try{_0x5971c8[_0x3248f0(0x121)]();}catch{}try{_0x17de95[_0x3248f0(0x123)+'y']();}catch{}return _0x5441a7;}export async function scanLanMoss({port:port=0x157c,timeoutMs:timeoutMs=0x1f4,concurrency:concurrency=0x30,fetchImpl:fetchImpl=fetch,prefixes:prefixes=listLanPrefixes()}={}){const _0x3b02b1=_0xe095ed,_0x56de08=[],_0x1dbb73=[];for(const _0x4591fb of prefixes){for(let _0x32ce14=0x1;_0x32ce14<=0xfe;_0x32ce14+=0x1){_0x1dbb73[_0x3b02b1(0xfc)](_0x3b02b1(0xe6)+'/'+_0x4591fb+'.'+_0x32ce14+':'+port);}}const _0x3109eb=[...new Set(_0x1dbb73)];return await mapPool(_0x3109eb,concurrency,async _0xddf30a=>{const _0x12344e=_0x3b02b1,_0x43a3f7=await probeMossHealth(_0xddf30a,{'timeoutMs':timeoutMs,'fetchImpl':fetchImpl});if(!_0x43a3f7)return;mergeDevices(_0x56de08,enrichFromHealth({'name':_0x43a3f7['instan'+'ce']||_0x43a3f7[_0x12344e(0x10c)+'me']||_0x12344e(0xf9),'host':_0xddf30a[_0x12344e(0x11c)+'e'](/^https?:\/\//,'')[_0x12344e(0x11c)+'e'](/:\d+$/,''),'port':port,'baseUrl':_0xddf30a,'source':_0x12344e(0x122)},_0x43a3f7));}),_0x56de08;}export async function discoverMossDevices({lastHostname:lastHostname='',lastBaseUrl:lastBaseUrl='',mdnsMs:mdnsMs=0xfa0,fetchImpl:fetchImpl=fetch}={}){const _0xf38c63=_0xe095ed,_0x139177=[],_0x1b0899=browseMossHttp(mdnsMs)[_0xf38c63(0xee)](_0x220168=>{const _0x462ad9=_0xf38c63;return console[_0x462ad9(0xff)](_0x462ad9(0x137)+_0x462ad9(0x12f)+_0x462ad9(0x139),_0x220168?.[_0x462ad9(0xf2)+'e']||_0x220168),[];}),_0x46ef98=scanLanMoss({'fetchImpl':fetchImpl})[_0xf38c63(0xee)](_0x9dedff=>{const _0x194917=_0xf38c63;return console[_0x194917(0xff)](_0x194917(0x137)+'ver]\x20l'+'an',_0x9dedff?.[_0x194917(0xf2)+'e']||_0x9dedff),[];}),_0x192de9=[];if(lastBaseUrl)_0x192de9[_0xf38c63(0xfc)]({'name':'上次连接','baseUrl':String(lastBaseUrl)[_0xf38c63(0x11c)+'e'](/\/$/,''),'source':_0xf38c63(0x12c)});lastHostname&&_0x192de9[_0xf38c63(0xfc)]({'name':lastHostname,'baseUrl':'http:/'+'/'+lastHostname+(_0xf38c63(0x12e)+_0xf38c63(0xef)),'source':_0xf38c63(0x10c)+'me'});const [_0x53fde5,_0x557427]=await Promise['all']([_0x1b0899,_0x46ef98]);for(const _0x41d6b8 of[..._0x53fde5,..._0x557427,..._0x192de9])mergeDevices(_0x139177,_0x41d6b8);const _0x1676f8=await mapPool(_0x139177,0x8,async _0x3e22a8=>{const _0x34976c=_0xf38c63,_0x258d91=await probeMossHealth(_0x3e22a8[_0x34976c(0x133)+'l'],{'timeoutMs':0x4b0,'fetchImpl':fetchImpl});if(_0x258d91)return enrichFromHealth(_0x3e22a8,_0x258d91);if(_0x3e22a8[_0x34976c(0xe3)]===_0x34976c(0xf3)||_0x3e22a8[_0x34976c(0xe3)]==='lan')return _0x3e22a8;return null;}),_0x35a26b=[];for(const _0x47bd31 of _0x1676f8){if(_0x47bd31)mergeDevices(_0x35a26b,_0x47bd31);}return _0x35a26b;}