@web-to-figma/desktop 1.0.0

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 (108) hide show
  1. package/README.md +93 -0
  2. package/assets/chrome-version.json +11 -0
  3. package/assets/extension/README.md +18 -0
  4. package/assets/extension/chrome-mv3-headed.crx +0 -0
  5. package/assets/extension/chrome-mv3-headless.crx +0 -0
  6. package/bin/web-to-figma.js +5 -0
  7. package/db/migrations/000001_create_artifact_tables.up.sql +69 -0
  8. package/db/migrations/000002_create_tag_tables.up.sql +39 -0
  9. package/db/migrations/000003_seed_tag_values.up.sql +97 -0
  10. package/dist/auth/captureSession.d.ts +14 -0
  11. package/dist/auth/captureSession.js +1 -0
  12. package/dist/auth/jwtSecret.d.ts +2 -0
  13. package/dist/auth/jwtSecret.js +1 -0
  14. package/dist/capture/browserPool.d.ts +24 -0
  15. package/dist/capture/browserPool.js +1 -0
  16. package/dist/capture/captureService.d.ts +25 -0
  17. package/dist/capture/captureService.js +1 -0
  18. package/dist/capture/captureStatus.d.ts +7 -0
  19. package/dist/capture/captureStatus.js +1 -0
  20. package/dist/capture/chromeDownloader.d.ts +21 -0
  21. package/dist/capture/chromeDownloader.js +1 -0
  22. package/dist/capture/crxUtils.d.ts +4 -0
  23. package/dist/capture/crxUtils.js +1 -0
  24. package/dist/capture/extensionPinPolicy.d.ts +10 -0
  25. package/dist/capture/extensionPinPolicy.js +1 -0
  26. package/dist/capture/headedBrowserState.d.ts +22 -0
  27. package/dist/capture/headedBrowserState.js +1 -0
  28. package/dist/capture/headedExtension.d.ts +7 -0
  29. package/dist/capture/headedExtension.js +1 -0
  30. package/dist/capture/manualLaunch.d.ts +2 -0
  31. package/dist/capture/manualLaunch.js +1 -0
  32. package/dist/cli.d.ts +1 -0
  33. package/dist/cli.js +85 -0
  34. package/dist/config.d.ts +49 -0
  35. package/dist/config.js +109 -0
  36. package/dist/constants.d.ts +1 -0
  37. package/dist/constants.js +2 -0
  38. package/dist/index.d.ts +17 -0
  39. package/dist/index.js +241 -0
  40. package/dist/loadEnv.d.ts +1 -0
  41. package/dist/loadEnv.js +14 -0
  42. package/dist/logger.d.ts +4 -0
  43. package/dist/logger.js +32 -0
  44. package/dist/port.d.ts +4 -0
  45. package/dist/port.js +19 -0
  46. package/dist/security/redact.d.ts +3 -0
  47. package/dist/security/redact.js +34 -0
  48. package/dist/sentry.d.ts +3 -0
  49. package/dist/sentry.js +66 -0
  50. package/dist/server/app.d.ts +18 -0
  51. package/dist/server/app.js +82 -0
  52. package/dist/server/checkServer.d.ts +2 -0
  53. package/dist/server/checkServer.js +24 -0
  54. package/dist/server/context.d.ts +20 -0
  55. package/dist/server/context.js +20 -0
  56. package/dist/server/middleware/desktopJwt.d.ts +10 -0
  57. package/dist/server/middleware/desktopJwt.js +1 -0
  58. package/dist/server/routes/capture.d.ts +4 -0
  59. package/dist/server/routes/capture.js +39 -0
  60. package/dist/server/routes/captures.d.ts +3 -0
  61. package/dist/server/routes/captures.js +75 -0
  62. package/dist/server/routes/collections.d.ts +3 -0
  63. package/dist/server/routes/collections.js +41 -0
  64. package/dist/server/routes/files.d.ts +3 -0
  65. package/dist/server/routes/files.js +18 -0
  66. package/dist/server/routes/health.d.ts +2 -0
  67. package/dist/server/routes/health.js +8 -0
  68. package/dist/server/routes/image.d.ts +2 -0
  69. package/dist/server/routes/image.js +58 -0
  70. package/dist/server/routes/proxy.d.ts +2 -0
  71. package/dist/server/routes/proxy.js +24 -0
  72. package/dist/server/routes/upload.d.ts +3 -0
  73. package/dist/server/routes/upload.js +102 -0
  74. package/dist/server/uploadBody.d.ts +1 -0
  75. package/dist/server/uploadBody.js +5 -0
  76. package/dist/storage/captureRepo.d.ts +21 -0
  77. package/dist/storage/captureRepo.js +172 -0
  78. package/dist/storage/collectionRepo.d.ts +14 -0
  79. package/dist/storage/collectionRepo.js +104 -0
  80. package/dist/storage/db.d.ts +10 -0
  81. package/dist/storage/db.js +30 -0
  82. package/dist/storage/fileStore.d.ts +26 -0
  83. package/dist/storage/fileStore.js +93 -0
  84. package/dist/storage/migrate.d.ts +8 -0
  85. package/dist/storage/migrate.js +61 -0
  86. package/dist/storage/seeds.d.ts +7 -0
  87. package/dist/storage/seeds.js +30 -0
  88. package/dist/storage/tagRepo.d.ts +7 -0
  89. package/dist/storage/tagRepo.js +31 -0
  90. package/dist/terminal/banner.d.ts +10 -0
  91. package/dist/terminal/banner.js +115 -0
  92. package/dist/terminal/chromeInstall.d.ts +3 -0
  93. package/dist/terminal/chromeInstall.js +45 -0
  94. package/dist/types.d.ts +102 -0
  95. package/dist/types.js +1 -0
  96. package/dist/updater/installer.d.ts +2 -0
  97. package/dist/updater/installer.js +61 -0
  98. package/dist/updater/runtime.d.ts +25 -0
  99. package/dist/updater/runtime.js +153 -0
  100. package/dist/updater/types.d.ts +29 -0
  101. package/dist/updater/types.js +1 -0
  102. package/dist/updater/updateLog.d.ts +3 -0
  103. package/dist/updater/updateLog.js +7 -0
  104. package/dist/updater/versionCheck.d.ts +5 -0
  105. package/dist/updater/versionCheck.js +59 -0
  106. package/dist/utils.d.ts +9 -0
  107. package/dist/utils.js +55 -0
  108. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ const _0x79a5a=_0x3a27;(function(_0x48ffed,_0x2d02ac){const _0x34e00e=_0x3a27,_0xdf612e=_0x48ffed();while(!![]){try{const _0xbc46af=parseInt(_0x34e00e(0x7c))/0x1+parseInt(_0x34e00e(0xc8))/0x2+parseInt(_0x34e00e(0x90))/0x3+-parseInt(_0x34e00e(0x9c))/0x4*(parseInt(_0x34e00e(0xca))/0x5)+-parseInt(_0x34e00e(0xa2))/0x6*(-parseInt(_0x34e00e(0xa7))/0x7)+-parseInt(_0x34e00e(0xc6))/0x8+-parseInt(_0x34e00e(0x89))/0x9*(-parseInt(_0x34e00e(0x77))/0xa);if(_0xbc46af===_0x2d02ac)break;else _0xdf612e['push'](_0xdf612e['shift']());}catch(_0x12cf42){_0xdf612e['push'](_0xdf612e['shift']());}}}(_0x3639,0x34108));import _0x160a6f from'fs';import{execFileSync}from'node:child_process';import _0xa3ffc8 from'os';function _0x3639(){const _0x1cd8e6=['BgLUDxG2na','Ahr0Chm6lY9ZDg9YywDLlMDVB2DSzwfWAxmUy29Tl2nOCM9Tzs1MB3iTDgvZDgLUzY1WDwjSAwm','q2HYB21LigLUC3rHBgXHDgLVBIbPBMnVBxbSzxrLigfMDgvYigv4DhjHy3rPB24','AgvHzgvKq3j4ugf0Aa','CMvWBgfJzq','l2nOCM9TzwrYAxzLCI0','rg93BMXVywrPBMCGq2HYB21LigzVCIbuzxn0Aw5N','rxH0zw5ZAw9UienswcbUB3qGyNvUzgXLzcdIGjqGyNvPBgqGzxH0zw5ZAw9UigrLC2T0B3aGDgfYz2v0CYbMAxjZDa','oda3otzUCNLcD2y','l2nOCM9Tzs0','y2HYB21Llw12mY1OzwfKBgvZCY5JCNG','BwfJlxG2na','BxrPBwvnCW','y2HYB21LzhjPDMvY','nNL5CLLWyG','C3vJy2vZCW','y2HYB21LzhjPDMvYlMv4zq','yxjTnJq','y2HYB21LlxzLCNnPB24UANnVBG','mtu1otu5m3zzrM1Rtq','BwfJ','C3rHDhvZ','y2HYB21Llw12mY1OzwfKzwqUy3j4','AM9PBG','Aw5MBW','Ahr0Chm6lY9Jzg4UD2vIlxrVlwzPz21HlMrLC2LNBI9JAhjVBwu','y2HYB21LzhjPDMvYrgLY','AxneAxjLy3rVCNK','lu5VuhjVzMLSzq','CgfYC2u','BM9KztPJAgLSzf9WCM9JzxnZ','Aw5JBhvKzxm','zNjVBq','zgf0yurPCG','y2HYB21LrgLY','r29Vz2XLienOCM9TzsbMB3iGvgvZDgLUzY5HChaVq29UDgvUDhmVtwfJt1mVr29Vz2XLienOCM9TzsbMB3iGvgvZDgLUzW','y29WEuzPBgvtEw5J','CgXHDgzVCM0','D2LUnJq','rMfPBgvKihrVigrVD25SB2fKia','DxjSCW','y2HYB21LvxjS','D2LUmZi','CM1tEw5J','y2HYB21LlNPPCa','lNPPCa','qNvUzgXLzcbJAhjVBwuTDMvYC2LVBI5QC29Uig5VDcbMB3vUza','CMvHzgrPCLn5BMm','D2fYBG','D3jPDgvgAwXLu3LUyW','mJe5mJm3nKnItMXQyW','y2HYB21LlwrVD25SB2fK','mtqZnJm4sKvKtM9J','yMfZzw5HBwu','ndbvCuDNzg0','Dw56Axa','DxrMoa','C3rVChbLza','C3rHCNrZv2L0Aa','nJbArKnmDxK','y2HYB21LlMv4zq','jYaTrgvZDgLUyxrPB25qyxrOicC','sw5ZDwzMAwnPzw50igrPC2SGC3bHy2uGzM9YignHChr1CMu','Aw5OzxjPDa','otmWotnZuuLMr0y','jYaTrM9Yy2u','y2HYB21LzhjPDMvYlNPPCa','C3rHDfn5BMm','zxH0zw5ZAw9U','zxHPC3rZu3LUyW','zhjPDMvYvxjS','zgLYBMfTzq','BwTKAxjtEw5J','y2HYB21LzhjPDMvYugf0Aa','zgfYD2LU','Dg1WrgLY','vw5IBg9JAY1gAwXLic1qyxrOicC','mte5nZaWt2TvrKX0','yxjJAa','rxHWyw5KlufYy2HPDMuGlvbHDgGGjW','y2HYB21L','y2HYB21Lugf0Aa','lunVBw1HBMq','C2L6zq','ntq0mtuYwxflq1H1','BMfTzq','Cg93zxjZAgvSBa','y2rU'];_0x3639=function(){return _0x1cd8e6;};return _0x3639();}import _0x43aece from'path';import{bundledAssetsDir}from'../config.js';import{startChromeInstallSpinner,stopChromeInstallSpinner}from'../terminal/chromeInstall.js';function _0x3a27(_0x5069d7,_0xbbda30){_0x5069d7=_0x5069d7-0x74;const _0x3639c7=_0x3639();let _0x3a2741=_0x3639c7[_0x5069d7];if(_0x3a27['xxhrZX']===undefined){var _0x35d167=function(_0x8d5a6a){const _0x454ba0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x160a6f='',_0xa3ffc8='';for(let _0x43aece=0x0,_0x40ee74,_0x147d1f,_0x28711a=0x0;_0x147d1f=_0x8d5a6a['charAt'](_0x28711a++);~_0x147d1f&&(_0x40ee74=_0x43aece%0x4?_0x40ee74*0x40+_0x147d1f:_0x147d1f,_0x43aece++%0x4)?_0x160a6f+=String['fromCharCode'](0xff&_0x40ee74>>(-0x2*_0x43aece&0x6)):0x0){_0x147d1f=_0x454ba0['indexOf'](_0x147d1f);}for(let _0x2af5c8=0x0,_0x505c20=_0x160a6f['length'];_0x2af5c8<_0x505c20;_0x2af5c8++){_0xa3ffc8+='%'+('00'+_0x160a6f['charCodeAt'](_0x2af5c8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xa3ffc8);};_0x3a27['qZxHrL']=_0x35d167,_0x3a27['ZsqOfJ']={},_0x3a27['xxhrZX']=!![];}const _0x7319d5=_0x3639c7[0x0],_0x124efd=_0x5069d7+_0x7319d5,_0x28cebb=_0x3a27['ZsqOfJ'][_0x124efd];return!_0x28cebb?(_0x3a2741=_0x3a27['qZxHrL'](_0x3a2741),_0x3a27['ZsqOfJ'][_0x124efd]=_0x3a2741):_0x3a2741=_0x28cebb,_0x3a2741;}import{freeDiskBytes}from'../utils.js';const CHROME_FOR_TESTING_BASE=_0x79a5a(0x95),CHROME_CDN_BASE=_0x79a5a(0xad);function loadBundledChromeManifest(){const _0x94121a=_0x79a5a,_0x40ee74=_0x43aece[_0x94121a(0xab)](bundledAssetsDir(),_0x94121a(0xa6));if(!_0x160a6f[_0x94121a(0x81)](_0x40ee74))throw new Error(_0x94121a(0xc2));return JSON[_0x94121a(0xb1)](_0x160a6f['readFileSync'](_0x40ee74,_0x94121a(0x74)));}function getPinnedChromeVersion(){const _0x34357e=_0x79a5a,_0x147d1f=loadBundledChromeManifest()[_0x34357e(0x8c)]?.['version'];if(!_0x147d1f)throw new Error('Pinned\x20Chrome\x20version\x20not\x20configured\x20in\x20chrome-version.json');return _0x147d1f;}function cfetDownloadUrls(_0x28711a,_0x2af5c8){const _0x40a8a4=_0x79a5a;return{'chromeUrl':CHROME_FOR_TESTING_BASE+'/'+_0x28711a+'/'+_0x2af5c8+_0x40a8a4(0x9d)+_0x2af5c8+_0x40a8a4(0xc1),'driverUrl':CHROME_FOR_TESTING_BASE+'/'+_0x28711a+'/'+_0x2af5c8+'/chromedriver-'+_0x2af5c8+_0x40a8a4(0xc1)};}function cdnDownloadUrls(_0x505c20,_0x45811d,_0x4dd590){const _0x58ab8c=_0x79a5a,_0x13fe40=_0x4dd590[_0x58ab8c(0x8c)]?.[_0x58ab8c(0xbc)]?.[_0x45811d];if(!_0x13fe40)return null;return{'chromeUrl':_0x13fe40,'driverUrl':CHROME_CDN_BASE+'/'+_0x505c20+_0x58ab8c(0x99)+_0x45811d+_0x58ab8c(0xc1)};}function detectPlatform(){const _0xaaa96a=_0x79a5a,_0x3c318b=_0xa3ffc8[_0xaaa96a(0xb9)](),_0x569511=_0xa3ffc8[_0xaaa96a(0x8a)]();if(_0x3c318b===_0xaaa96a(0xbe))return _0xaaa96a(0xba);if(_0x3c318b===_0xaaa96a(0x86))return _0x569511===_0xaaa96a(0xa5)?'mac-arm64':_0xaaa96a(0x9f);return _0xaaa96a(0x94);}function chromeBinaryName(_0x426f52){const _0x5ad828=_0x79a5a;if(_0x426f52===_0x5ad828(0xba))return _0x5ad828(0x78);if(_0x426f52[_0x5ad828(0x76)](_0x5ad828(0xa8)))return _0x5ad828(0xb7);return _0x5ad828(0x8c);}function chromedriverBinaryName(_0x4dae42){const _0x266fc6=_0x79a5a;return _0x4dae42==='win64'?_0x266fc6(0xa4):_0x266fc6(0xa1);}function platformDir(_0x294842){return _0x294842;}async function downloadFile(_0x41cb3e,_0x52533b){const _0x14dbb1=_0x79a5a,_0x1eabc5=await fetch(_0x41cb3e);if(!_0x1eabc5['ok'])throw new Error(_0x14dbb1(0xbb)+_0x41cb3e+':\x20'+_0x1eabc5[_0x14dbb1(0xa9)]);const _0x37c6e7=Buffer[_0x14dbb1(0xb4)](await _0x1eabc5['arrayBuffer']());_0x160a6f['mkdirSync'](_0x43aece[_0x14dbb1(0x83)](_0x52533b),{'recursive':!![]}),_0x160a6f[_0x14dbb1(0xc5)](_0x52533b,_0x37c6e7);}async function extractZip(_0x176bdb,_0x1afa64){const _0x35c210=_0x79a5a,{execFileSync:_0x583c04}=await import(_0x35c210(0xb2));_0x160a6f[_0x35c210(0x84)](_0x1afa64,{'recursive':!![]}),process[_0x35c210(0xb9)]===_0x35c210(0xbe)?_0x583c04(_0x35c210(0x92),['-NoProfile',_0x35c210(0x8e),_0x35c210(0x8b)+_0x176bdb[_0x35c210(0x98)](/'/g,'\x27\x27')+_0x35c210(0x79)+_0x1afa64[_0x35c210(0x98)](/'/g,'\x27\x27')+_0x35c210(0x7d)]):_0x583c04(_0x35c210(0xcb),['-o',_0x176bdb,'-d',_0x1afa64],{'stdio':_0x35c210(0x7b)});}function findFile(_0x1618bd,_0x56fc75){const _0x4dc6e3=_0x79a5a;if(!_0x160a6f[_0x4dc6e3(0x81)](_0x1618bd))return null;const _0x58c41b=_0x160a6f[_0x4dc6e3(0xc3)](_0x1618bd,{'withFileTypes':!![]});for(const _0x2d27da of _0x58c41b){const _0x2b3d48=_0x43aece[_0x4dc6e3(0xab)](_0x1618bd,_0x2d27da[_0x4dc6e3(0x91)]);if(_0x2d27da['isFile']()&&_0x2d27da['name']===_0x43aece[_0x4dc6e3(0xc9)](_0x56fc75))return _0x2b3d48;if(_0x2d27da[_0x4dc6e3(0xaf)]()){const _0x593cd5=findFile(_0x2b3d48,_0x56fc75);if(_0x593cd5)return _0x593cd5;}}if(_0x56fc75[_0x4dc6e3(0xb3)]('/')){const _0x549a2e=_0x43aece[_0x4dc6e3(0xab)](_0x1618bd,_0x56fc75);if(_0x160a6f[_0x4dc6e3(0x81)](_0x549a2e))return _0x549a2e;}return null;}async function downloadChromeBinaries(_0x5ad7d0,_0x302301,_0x1b6698,_0x27d986){const _0x4f1269=_0x79a5a,_0x571e3a=loadBundledChromeManifest(),_0x1862cf=getPinnedChromeVersion(),_0x600552=cfetDownloadUrls(_0x1862cf,_0x5ad7d0),_0x19906a=cdnDownloadUrls(_0x1862cf,_0x5ad7d0,_0x571e3a);try{return await downloadFile(_0x600552[_0x4f1269(0xbd)],_0x302301),await downloadFile(_0x600552[_0x4f1269(0x82)],_0x1b6698),{'version':_0x1862cf,'source':'chrome-for-testing'};}catch(_0x2cc462){if(!_0x19906a)throw _0x2cc462;_0x27d986['warn']({'platform':_0x5ad7d0,'version':_0x1862cf},'Chrome\x20for\x20Testing\x20download\x20failed,\x20falling\x20back\x20to\x20CDN');try{return await downloadFile(_0x19906a[_0x4f1269(0xbd)],_0x302301),await downloadFile(_0x19906a['driverUrl'],_0x1b6698),{'version':_0x1862cf,'source':_0x4f1269(0x93)};}catch{throw _0x2cc462;}}}export async function forceChromeUpdate(_0x510886,_0x20ff5c,_0x49b5c2={}){const _0x3e5c5a=_0x79a5a,_0x30c0c6=detectPlatform(),_0x2d5de4=_0x43aece[_0x3e5c5a(0xab)](_0x510886[_0x3e5c5a(0xb6)],platformDir(_0x30c0c6)),_0xad8c84=_0x43aece[_0x3e5c5a(0xab)](_0x510886['chromedriverDir'],platformDir(_0x30c0c6));return _0x160a6f[_0x3e5c5a(0xbf)](_0x2d5de4,{'recursive':!![],'force':!![]}),_0x160a6f[_0x3e5c5a(0xbf)](_0xad8c84,{'recursive':!![],'force':!![]}),ensureChromeInstalled(_0x510886,_0x20ff5c,{..._0x49b5c2,'chromePath':null,'chromedriverPath':null});}export async function ensureChromeInstalled(_0x3be982,_0x1b8baf,_0x12e99e={}){const _0x2fef64=_0x79a5a,_0x13d38d=detectPlatform(),_0x21dfc0=_0x13d38d,_0x2f0a54=_0x43aece[_0x2fef64(0xab)](_0x3be982[_0x2fef64(0xb6)],platformDir(_0x13d38d)),_0x50bf65=_0x43aece['join'](_0x3be982[_0x2fef64(0xae)],platformDir(_0x13d38d));if(_0x12e99e[_0x2fef64(0x8d)]&&_0x160a6f[_0x2fef64(0x81)](_0x12e99e['chromePath'])){const _0x5bbe34=_0x12e99e[_0x2fef64(0x85)]&&_0x160a6f[_0x2fef64(0x81)](_0x12e99e[_0x2fef64(0x85)])?_0x12e99e[_0x2fef64(0x85)]:findFile(_0x50bf65,chromedriverBinaryName(_0x13d38d))??_0x12e99e[_0x2fef64(0x85)];if(_0x5bbe34&&_0x160a6f[_0x2fef64(0x81)](_0x5bbe34))return{'chromePath':_0x12e99e[_0x2fef64(0x8d)],'chromedriverPath':_0x5bbe34};}const _0x249dbc=_0x43aece[_0x2fef64(0xab)](_0x2f0a54,chromeBinaryName(_0x13d38d)),_0x4ecd5e=_0x43aece['join'](_0x50bf65,chromedriverBinaryName(_0x13d38d)),_0xb3690c=findFile(_0x2f0a54,_0x43aece[_0x2fef64(0xc9)](chromeBinaryName(_0x13d38d)))??_0x249dbc,_0x21fded=findFile(_0x50bf65,chromedriverBinaryName(_0x13d38d))??_0x4ecd5e;if(_0x160a6f[_0x2fef64(0x81)](_0xb3690c)&&_0x160a6f['existsSync'](_0x21fded))return process[_0x2fef64(0xb9)]===_0x2fef64(0xbe)&&unblockWindowsExecutables(_0xb3690c,_0x21fded),{'chromePath':_0xb3690c,'chromedriverPath':_0x21fded};const _0x130ff1=getPinnedChromeVersion();_0x1b8baf[_0x2fef64(0xac)]({'platform':_0x13d38d,'version':_0x130ff1},_0x2fef64(0x9a)),startChromeInstallSpinner();try{const _0xd13777=_0x43aece[_0x2fef64(0xab)](_0x3be982[_0x2fef64(0x87)],_0x2fef64(0xc7));_0x160a6f[_0x2fef64(0x84)](_0xd13777,{'recursive':!![]});const _0x310288=_0x43aece[_0x2fef64(0xab)](_0xd13777,_0x2fef64(0xc0)),_0x4db31c=_0x43aece[_0x2fef64(0xab)](_0xd13777,_0x2fef64(0x7e)),{version:_0x592f42,source:_0x4acee8}=await downloadChromeBinaries(_0x21dfc0,_0x310288,_0x4db31c,_0x1b8baf);_0x1b8baf[_0x2fef64(0xac)]({'version':_0x592f42,'platform':_0x13d38d,'source':_0x4acee8},'Downloaded\x20Chrome\x20binaries'),await extractZip(_0x310288,_0x2f0a54),await extractZip(_0x4db31c,_0x50bf65);const _0x3684e9=findFile(_0x2f0a54,_0x43aece[_0x2fef64(0xc9)](chromeBinaryName(_0x13d38d))),_0x3be921=findFile(_0x50bf65,chromedriverBinaryName(_0x13d38d));if(!_0x3684e9||!_0x3be921)throw new Error(_0x2fef64(0x96));return process[_0x2fef64(0xb9)]===_0x2fef64(0xbe)&&unblockWindowsExecutables(_0x3684e9,_0x3be921),_0x1b8baf[_0x2fef64(0xac)]({'chromePath':_0x3684e9,'chromedriverPath':_0x3be921},'Chrome\x20installed'),stopChromeInstallSpinner(_0x2fef64(0xa3)),{'chromePath':_0x3684e9,'chromedriverPath':_0x3be921};}catch(_0x247375){stopChromeInstallSpinner(_0x2fef64(0x75));throw _0x247375;}}function unblockWindowsExecutables(..._0x2a9f93){const _0x253367=_0x79a5a;for(const _0x212c36 of _0x2a9f93){try{execFileSync(_0x253367(0x92),[_0x253367(0xb0),'-Command',_0x253367(0x88)+_0x212c36['replace'](/'/g,'\x27\x27')+'\x27']);}catch{}}}export async function ensureExtensionsCopied(_0x93455,_0x56595d){const _0x199d6b=_0x79a5a,{bundledAssetsDir:_0x17e014}=await import('../config.js'),_0x511583=_0x43aece['join'](_0x17e014(),_0x199d6b(0x80)),_0x1fdf19=[[_0x199d6b(0x9e),_0x93455['headlessCrxPath']],[_0x199d6b(0xaa),_0x93455[_0x199d6b(0x97)]]];for(const [_0x206a9f,_0x3e7134]of _0x1fdf19){const _0x2b2c6a=_0x43aece['join'](_0x511583,_0x206a9f);if(!_0x160a6f['existsSync'](_0x2b2c6a)){!_0x160a6f[_0x199d6b(0x81)](_0x3e7134)&&_0x56595d[_0x199d6b(0xc4)]({'name':_0x206a9f},_0x199d6b(0x9b));continue;}const _0x2b066b=!_0x160a6f['existsSync'](_0x3e7134)||_0x160a6f[_0x199d6b(0x7f)](_0x2b2c6a)[_0x199d6b(0xa0)]>_0x160a6f[_0x199d6b(0x7f)](_0x3e7134)['mtimeMs']||_0x160a6f['statSync'](_0x2b2c6a)[_0x199d6b(0x8f)]!==_0x160a6f[_0x199d6b(0x7f)](_0x3e7134)['size'];_0x2b066b&&(_0x160a6f[_0x199d6b(0x84)](_0x43aece[_0x199d6b(0x83)](_0x3e7134),{'recursive':!![]}),_0x160a6f[_0x199d6b(0xb8)](_0x2b2c6a,_0x3e7134),_0x56595d[_0x199d6b(0xac)]({'src':_0x2b2c6a,'dest':_0x3e7134},'Copied\x20extension\x20CRX'));}}export function checkDiskSpace(_0x1b4922,_0x46f769){const _0x5744bb=_0x79a5a,_0x3591a7=freeDiskBytes(_0x1b4922[_0x5744bb(0xb5)]);if(_0x3591a7<_0x46f769)throw new Error(_0x5744bb(0x7a));}export{detectPlatform,chromeBinaryName,chromedriverBinaryName};
@@ -0,0 +1,4 @@
1
+ export declare function extensionIdFromPublicKey(publicKey: Buffer): string;
2
+ export declare function extensionIdFromCrx(crxPath: string): string;
3
+ export declare function unpackCrxWithStableKey(crxPath: string, destDir: string): string;
4
+ export declare function shouldRefreshUnpackedExtension(crxPath: string, unpackedDir: string): boolean;
@@ -0,0 +1 @@
1
+ (function(_0x472ac4,_0x2afe4d){const _0x2e11a6=_0x414d,_0x4e87a4=_0x472ac4();while(!![]){try{const _0x1c6f1e=parseInt(_0x2e11a6(0xc0))/0x1*(parseInt(_0x2e11a6(0x9f))/0x2)+-parseInt(_0x2e11a6(0xa1))/0x3+parseInt(_0x2e11a6(0xa2))/0x4*(-parseInt(_0x2e11a6(0x9e))/0x5)+-parseInt(_0x2e11a6(0xb3))/0x6+-parseInt(_0x2e11a6(0xbc))/0x7*(-parseInt(_0x2e11a6(0xb7))/0x8)+parseInt(_0x2e11a6(0xa6))/0x9*(-parseInt(_0x2e11a6(0x9d))/0xa)+parseInt(_0x2e11a6(0xb2))/0xb;if(_0x1c6f1e===_0x2afe4d)break;else _0x4e87a4['push'](_0x4e87a4['shift']());}catch(_0x3d10ae){_0x4e87a4['push'](_0x4e87a4['shift']());}}}(_0x97c5,0xc2ae8));import _0x3bdb97 from'crypto';import{execFileSync}from'node:child_process';import _0x7e63a5 from'node:fs';import _0x5b307e from'node:os';import _0x3852d7 from'node:path';function readVarint(_0x598c3d,_0x286f89){let _0x50e39e=0x0,_0x4873c1=0x0,_0x2982c1=_0x286f89;while(_0x2982c1<_0x598c3d['length']){const _0x5ac3fc=_0x598c3d[_0x2982c1++];_0x50e39e|=(_0x5ac3fc&0x7f)<<_0x4873c1;if((_0x5ac3fc&0x80)===0x0)break;_0x4873c1+=0x7;}return{'value':_0x50e39e,'nextOffset':_0x2982c1};}function readCrxZipOffset(_0x317a6f){const _0x30a61c=_0x414d;if(_0x317a6f[_0x30a61c(0xa0)]<0xc||_0x317a6f[_0x30a61c(0xba)](_0x30a61c(0x95),0x0,0x4)!=='Cr24')throw new Error(_0x30a61c(0x93));const _0x495f36=_0x317a6f['readUInt32LE'](0x4);if(_0x495f36===0x2){const _0x34296b=_0x317a6f[_0x30a61c(0xb9)](0x8),_0x4bc283=_0x317a6f[_0x30a61c(0xb9)](0xc);return 0x10+_0x34296b+_0x4bc283;}if(_0x495f36===0x3){const _0x17920f=_0x317a6f['readUInt32LE'](0x8);return 0xc+_0x17920f;}throw new Error(_0x30a61c(0xae)+_0x495f36);}function readCrxPublicKey(_0xafbe69){const _0x4811ec=_0x414d;if(_0xafbe69[_0x4811ec(0xa0)]<0xc||_0xafbe69[_0x4811ec(0xba)](_0x4811ec(0x95),0x0,0x4)!==_0x4811ec(0xa4))throw new Error(_0x4811ec(0x93));const _0x56bbb4=_0xafbe69[_0x4811ec(0xb9)](0x4);if(_0x56bbb4===0x2){const _0x3c3d10=_0xafbe69[_0x4811ec(0xb9)](0x8);return _0xafbe69[_0x4811ec(0xb1)](0x10,0x10+_0x3c3d10);}if(_0x56bbb4!==0x3)throw new Error(_0x4811ec(0xae)+_0x56bbb4);const _0x25c359=_0xafbe69[_0x4811ec(0xb9)](0x8),_0x2c2966=_0xafbe69['subarray'](0xc,0xc+_0x25c359);let _0x4dbb92=0x0;while(_0x4dbb92<_0x2c2966[_0x4811ec(0xa0)]){const _0xac69a6=_0x2c2966[_0x4dbb92++],_0x2257d6=_0xac69a6>>0x3,_0x4f67d3=_0xac69a6&0x7;if(_0x4f67d3===0x2){const {value:_0x27915d,nextOffset:_0x271c97}=readVarint(_0x2c2966,_0x4dbb92);_0x4dbb92=_0x271c97;const _0x1b5dbe=_0x2c2966[_0x4811ec(0xb1)](_0x4dbb92,_0x4dbb92+_0x27915d);_0x4dbb92+=_0x27915d;if(_0x2257d6===0x2)return _0x1b5dbe;continue;}if(_0x4f67d3===0x0){const {nextOffset:_0x57bd48}=readVarint(_0x2c2966,_0x4dbb92);_0x4dbb92=_0x57bd48;continue;}break;}throw new Error(_0x4811ec(0xa5));}export function extensionIdFromPublicKey(_0x315352){const _0x2a25b3=_0x414d,_0x4944af=_0x3bdb97[_0x2a25b3(0xac)](_0x2a25b3(0x99))['update'](_0x315352)['digest']();let _0x28395f='';for(let _0x5c776c=0x0;_0x5c776c<0x10;_0x5c776c++){_0x28395f+=String[_0x2a25b3(0x97)](0x61+(_0x4944af[_0x5c776c]>>0x4&0xf)),_0x28395f+=String[_0x2a25b3(0x97)](0x61+(_0x4944af[_0x5c776c]&0xf));}return _0x28395f;}export function extensionIdFromCrx(_0x122d90){const _0x3c8c24=_0x7e63a5['readFileSync'](_0x122d90);return extensionIdFromPublicKey(readCrxPublicKey(_0x3c8c24));}function extractZipArchive(_0x32c0d0,_0x13d4b5){const _0x428a5a=_0x414d,_0x5e0e52=_0x7e63a5['readFileSync'](_0x32c0d0),_0x5dcf7a=readCrxZipOffset(_0x5e0e52);_0x7e63a5[_0x428a5a(0x9c)](_0x13d4b5,_0x5e0e52[_0x428a5a(0xb1)](_0x5dcf7a));}function extractZipArchiveToDir(_0x51fa11,_0x37fe06){const _0x4b9dd6=_0x414d;_0x7e63a5[_0x4b9dd6(0xbe)](_0x37fe06,{'recursive':!![]});if(_0x5b307e[_0x4b9dd6(0xa8)]()==='win32'){execFileSync(_0x4b9dd6(0xaa),[_0x4b9dd6(0xb5),_0x51fa11,'-C',_0x37fe06],{'stdio':_0x4b9dd6(0xaf)});return;}execFileSync(_0x4b9dd6(0x9a),[_0x4b9dd6(0x94),_0x51fa11,'-d',_0x37fe06],{'stdio':_0x4b9dd6(0xaf)});}function injectManifestKey(_0x3ec19c,_0x95647e){const _0x204714=_0x414d,_0x10dfb7=_0x3852d7[_0x204714(0xbb)](_0x3ec19c,_0x204714(0xa9));if(!_0x7e63a5[_0x204714(0xb6)](_0x10dfb7))throw new Error(_0x204714(0xad)+_0x3ec19c);const _0x48954d=JSON[_0x204714(0xa7)](_0x7e63a5[_0x204714(0xb8)](_0x10dfb7,'utf8'));_0x48954d[_0x204714(0xbf)]=_0x95647e[_0x204714(0xba)](_0x204714(0xb0)),_0x7e63a5['writeFileSync'](_0x10dfb7,JSON['stringify'](_0x48954d,null,0x2)+'\x0a');}export function unpackCrxWithStableKey(_0x45a75b,_0x1e37ad){const _0x1170ed=_0x414d,_0x23b53d=_0x7e63a5[_0x1170ed(0xb8)](_0x45a75b),_0x1a8f77=readCrxPublicKey(_0x23b53d),_0x14a72f=extensionIdFromPublicKey(_0x1a8f77);_0x7e63a5[_0x1170ed(0x98)](_0x1e37ad,{'recursive':!![],'force':!![]}),_0x7e63a5['mkdirSync'](_0x1e37ad,{'recursive':!![]});const _0xbc723d=_0x3852d7[_0x1170ed(0xbb)](_0x1e37ad,_0x1170ed(0xb4));try{extractZipArchive(_0x45a75b,_0xbc723d),extractZipArchiveToDir(_0xbc723d,_0x1e37ad);}finally{_0x7e63a5['rmSync'](_0xbc723d,{'force':!![]});}injectManifestKey(_0x1e37ad,_0x1a8f77);const _0x2c1e11=_0x7e63a5[_0x1170ed(0xa3)](_0x45a75b);return _0x7e63a5[_0x1170ed(0x9c)](_0x3852d7[_0x1170ed(0xbb)](_0x1e37ad,_0x1170ed(0xab)),JSON[_0x1170ed(0xbd)]({'mtimeMs':_0x2c1e11['mtimeMs'],'size':_0x2c1e11[_0x1170ed(0x96)]})+'\x0a'),_0x14a72f;}export function shouldRefreshUnpackedExtension(_0x39c5ef,_0xce7f3f){const _0x446538=_0x414d;if(!_0x7e63a5['existsSync'](_0x39c5ef)||!_0x7e63a5['existsSync'](_0x3852d7['join'](_0xce7f3f,_0x446538(0xa9))))return!![];const _0x5ee466=_0x3852d7[_0x446538(0xbb)](_0xce7f3f,'.crx-source.json');if(!_0x7e63a5['existsSync'](_0x5ee466))return!![];const _0x361f87=JSON[_0x446538(0xa7)](_0x7e63a5[_0x446538(0xb8)](_0x5ee466,'utf8')),_0x1c17d3=_0x7e63a5[_0x446538(0xa3)](_0x39c5ef);return _0x1c17d3[_0x446538(0x9b)]>_0x361f87[_0x446538(0x9b)]||_0x1c17d3['size']!==_0x361f87['size'];}function _0x414d(_0x5d77e4,_0x48ed4e){_0x5d77e4=_0x5d77e4-0x93;const _0x97c5a2=_0x97c5();let _0x414d76=_0x97c5a2[_0x5d77e4];if(_0x414d['rPLueW']===undefined){var _0x55b0fc=function(_0x3131e3){const _0x93a1a7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bdb97='',_0x7e63a5='';for(let _0x5b307e=0x0,_0x3852d7,_0x598c3d,_0x286f89=0x0;_0x598c3d=_0x3131e3['charAt'](_0x286f89++);~_0x598c3d&&(_0x3852d7=_0x5b307e%0x4?_0x3852d7*0x40+_0x598c3d:_0x598c3d,_0x5b307e++%0x4)?_0x3bdb97+=String['fromCharCode'](0xff&_0x3852d7>>(-0x2*_0x5b307e&0x6)):0x0){_0x598c3d=_0x93a1a7['indexOf'](_0x598c3d);}for(let _0x50e39e=0x0,_0x4873c1=_0x3bdb97['length'];_0x50e39e<_0x4873c1;_0x50e39e++){_0x7e63a5+='%'+('00'+_0x3bdb97['charCodeAt'](_0x50e39e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x7e63a5);};_0x414d['AvBfKO']=_0x55b0fc,_0x414d['QKuedM']={},_0x414d['rPLueW']=!![];}const _0x1561be=_0x97c5a2[0x0],_0x938966=_0x5d77e4+_0x1561be,_0x2f60a2=_0x414d['QKuedM'][_0x938966];return!_0x2f60a2?(_0x414d76=_0x414d['AvBfKO'](_0x414d76),_0x414d['QKuedM'][_0x938966]=_0x414d76):_0x414d76=_0x2f60a2,_0x414d76;}function _0x97c5(){const _0x227878=['lw9X','Bgf0Aw4X','C2L6zq','zNjVBunOyxjdB2rL','CM1tEw5J','C2HHmJu2','Dw56Axa','BxrPBwvnCW','D3jPDgvgAwXLu3LUyW','mJb6vxLdBvq','oduWmZvXrenfD0C','ntm3otHLq3ryC0e','BgvUz3rO','mZG1mdq2mwDfEgXwtG','mJbLqMXzq0y','C3rHDfn5BMm','q3iYna','q1jyihb1yMXPyYbRzxKGBM90igzVDw5K','ntq1nta4ouXtAMjWza','CgfYC2u','CgXHDgzVCM0','BwfUAwzLC3qUANnVBG','DgfY','lMnYEc1ZB3vYy2uUANnVBG','y3jLyxrLsgfZAa','BwfUAwzLC3qUANnVBIbUB3qGzM91BMqGAw4GDw5WywnRzwqGzxH0zw5ZAw9UoIa','vw5ZDxbWB3j0zwqGq1jyihzLCNnPB246ia','AwDUB3jL','yMfZzty0','C3vIyxjYyxK','mZi2mdG4ndbZsxfZC1u','mJyXndeXmhvAB2DOrq','lNbHy2TLzc56Axa','lxHM','zxHPC3rZu3LUyW','ntzMExzWqLe','CMvHzezPBgvtEw5J','CMvHzfvjBNqZmKXf','Dg9tDhjPBMC','AM9PBG','nde5mdqXuK1dzvLw','C3rYAw5NAwz5','BwTKAxjtEw5J','A2v5','mtzSvgTnuee','sw52ywXPzcbduLGGzMLSzq'];_0x97c5=function(){return _0x227878;};return _0x97c5();}
@@ -0,0 +1,10 @@
1
+ import type { ResolvedPaths } from '../config.js';
2
+ import type { Logger } from '../logger.js';
3
+ /** Stable ID for the desktop headed CRX (derived from extension/build/chrome-mv3-prod.pem). */
4
+ export declare const HEADED_EXTENSION_ID = "fcbgineplkbcpmhibgmbanppfghdgoeo";
5
+ export type ExtensionSettingsPolicy = Record<string, {
6
+ toolbar_pin: 'default_pinned' | 'force_pinned' | 'default_unpinned';
7
+ }>;
8
+ export declare function buildExtensionSettingsPolicy(extensionId?: string, toolbarPin?: ExtensionSettingsPolicy[string]['toolbar_pin']): ExtensionSettingsPolicy;
9
+ export declare function mergeExtensionSettingsPolicy(existing: ExtensionSettingsPolicy | null | undefined, extensionId?: string): ExtensionSettingsPolicy;
10
+ export declare function ensureHeadedExtensionPinPolicy(paths: ResolvedPaths, logger: Logger): void;
@@ -0,0 +1 @@
1
+ (function(_0x31acce,_0x2c4747){const _0x4baf9d=_0x4aa1,_0x415f99=_0x31acce();while(!![]){try{const _0x11c721=-parseInt(_0x4baf9d(0x253))/0x1*(-parseInt(_0x4baf9d(0x24d))/0x2)+-parseInt(_0x4baf9d(0x20f))/0x3+parseInt(_0x4baf9d(0x20b))/0x4+parseInt(_0x4baf9d(0x213))/0x5+parseInt(_0x4baf9d(0x203))/0x6*(parseInt(_0x4baf9d(0x1f7))/0x7)+-parseInt(_0x4baf9d(0x262))/0x8*(-parseInt(_0x4baf9d(0x258))/0x9)+-parseInt(_0x4baf9d(0x275))/0xa*(parseInt(_0x4baf9d(0x269))/0xb);if(_0x11c721===_0x2c4747)break;else _0x415f99['push'](_0x415f99['shift']());}catch(_0x11a078){_0x415f99['push'](_0x415f99['shift']());}}}(_0x17e4,0xb6972),function(_0x643026,_0x661d26){const _0xe9063f=_0x4aa1,_0x285598=_0x1830,_0x30d041=_0x643026();while(!![]){try{const _0x21a045=parseInt(_0x285598(0x1aa))/0x1*(parseInt(_0x285598(0x1ff))/0x2)+-parseInt(_0x285598(0x1a6))/0x3*(-parseInt(_0x285598(0x1a1))/0x4)+-parseInt(_0x285598(0x1c4))/0x5+parseInt(_0x285598(0x1c5))/0x6+parseInt(_0x285598(0x220))/0x7+parseInt(_0x285598(0x1c8))/0x8+parseInt(_0x285598(0x225))/0x9*(-parseInt(_0x285598(0x216))/0xa);if(_0x21a045===_0x661d26)break;else _0x30d041[_0xe9063f(0x27e)](_0x30d041[_0xe9063f(0x248)]());}catch(_0x436ede){_0x30d041[_0xe9063f(0x27e)](_0x30d041[_0xe9063f(0x248)]());}}}(_0x5cf6,0x7b155));function _0x47f5(){const _0x2bd790=_0x4aa1,_0x22a71f=_0x1830,_0x4c8e7d=[_0x2bd790(0x280),_0x2bd790(0x1fc),_0x22a71f(0x201),_0x22a71f(0x1b5),_0x22a71f(0x1e3),_0x2bd790(0x23d),_0x2bd790(0x267),_0x22a71f(0x1b8),_0x22a71f(0x1be),_0x22a71f(0x22b),_0x2bd790(0x1e9),_0x2bd790(0x25e),_0x22a71f(0x1a2),_0x22a71f(0x1a4),_0x22a71f(0x1e0),_0x2bd790(0x21d),_0x22a71f(0x226),_0x22a71f(0x21e),_0x2bd790(0x1f3),_0x22a71f(0x207),_0x2bd790(0x24e),_0x22a71f(0x1cf),_0x2bd790(0x1dd),_0x22a71f(0x1e7),_0x22a71f(0x1d8),'mJi0wfbKDM51',_0x22a71f(0x1e1),_0x22a71f(0x1e6),_0x22a71f(0x20a),_0x22a71f(0x22e),_0x22a71f(0x1eb),_0x22a71f(0x1b7),_0x22a71f(0x19d),_0x22a71f(0x22c),_0x22a71f(0x1b2),_0x22a71f(0x229),_0x2bd790(0x221),_0x22a71f(0x1b3),_0x22a71f(0x211),'CtnYuxP1DJrcs1HKC1P2turNshfZmhjpq0Th',_0x22a71f(0x1cc),_0x22a71f(0x1c0),'q3rQzuv3mtfdsZuWEK0W',_0x2bd790(0x1ec),_0x22a71f(0x1d6),_0x22a71f(0x1f4),_0x2bd790(0x27c),_0x22a71f(0x221),_0x22a71f(0x1ac),_0x22a71f(0x1a0),_0x22a71f(0x22d),_0x2bd790(0x1f8),_0x22a71f(0x1fe),_0x2bd790(0x23c),_0x22a71f(0x1ee),_0x2bd790(0x283),_0x22a71f(0x1ab),_0x2bd790(0x239),_0x22a71f(0x1a9),_0x2bd790(0x27f),_0x2bd790(0x235),_0x22a71f(0x1fd),'Etf6uNqYmte',_0x22a71f(0x210),_0x22a71f(0x1ea),_0x22a71f(0x208),_0x22a71f(0x1ba),_0x22a71f(0x21d),_0x22a71f(0x219),_0x2bd790(0x215),_0x22a71f(0x1f5),_0x22a71f(0x1bc),_0x2bd790(0x264),_0x22a71f(0x217),_0x22a71f(0x206),_0x22a71f(0x213),_0x22a71f(0x1dc),_0x22a71f(0x227),_0x22a71f(0x20c),_0x22a71f(0x21b),_0x22a71f(0x1d3),_0x22a71f(0x1b0),_0x22a71f(0x1f6),_0x22a71f(0x1b6),_0x22a71f(0x1fb),'CvPQAxvOug9dCq',_0x22a71f(0x22a),_0x22a71f(0x1de),_0x22a71f(0x1ca),_0x22a71f(0x1ed),_0x2bd790(0x24c),_0x22a71f(0x1f0),_0x22a71f(0x204),_0x22a71f(0x205),_0x22a71f(0x1c9),_0x22a71f(0x1da),_0x22a71f(0x1b9),_0x22a71f(0x1fa),'Cu52Cw53mu5TDvq1C01qEKrLnvfeEgvACMDx',_0x22a71f(0x1ad),_0x22a71f(0x1c6),_0x22a71f(0x1a5),_0x22a71f(0x1dd),_0x2bd790(0x1e2),_0x2bd790(0x23f),_0x22a71f(0x1f8),_0x22a71f(0x1db),_0x22a71f(0x21f),_0x22a71f(0x202),_0x22a71f(0x1f9),_0x22a71f(0x1ae),_0x2bd790(0x218),_0x2bd790(0x207),_0x22a71f(0x1e2),_0x22a71f(0x1e8),_0x22a71f(0x1c3),_0x22a71f(0x1a7),_0x22a71f(0x1bd),_0x2bd790(0x1e7),_0x22a71f(0x1b1),_0x22a71f(0x1bf),_0x2bd790(0x208),_0x2bd790(0x277),'q01Yuw1oBJn3zhjKDgHqDhjKBNfdDxzRqxziwNOXr1PYzvbzENHpwKvoELH3tvbureTuuufnmtj1zhPMqwDmEen4sgrTEhjSqK5qvurnEKTcDvbTreC',_0x2bd790(0x210),_0x22a71f(0x1f7),_0x2bd790(0x287),_0x22a71f(0x1b4),_0x2bd790(0x263),_0x22a71f(0x1af),_0x22a71f(0x20e),_0x22a71f(0x222),_0x22a71f(0x1df),_0x22a71f(0x1d0),_0x22a71f(0x1cd),_0x22a71f(0x228),_0x2bd790(0x209),_0x2bd790(0x238),_0x22a71f(0x20d),_0x2bd790(0x261),_0x22a71f(0x1bb),_0x22a71f(0x1d5),_0x22a71f(0x20f),_0x22a71f(0x21c),_0x22a71f(0x223)];return _0x47f5=function(){return _0x4c8e7d;},_0x47f5();}(function(_0x480fe5,_0x46a07d){const _0xb532da=_0x4aa1,_0x5d2c0f=_0x1830,_0x113f21=_0x3117,_0x13dae1=_0x480fe5();while(!![]){try{const _0x3055ed=parseInt(_0x113f21(0x1a4))/0x1*(parseInt(_0x113f21(0x201))/0x2)+-parseInt(_0x113f21(0x197))/0x3*(parseInt(_0x113f21(0x1d2))/0x4)+-parseInt(_0x113f21(0x17b))/0x5+-parseInt(_0x113f21(0x1ec))/0x6+parseInt(_0x113f21(0x1be))/0x7*(parseInt(_0x113f21(0x1c7))/0x8)+parseInt(_0x113f21(0x1b9))/0x9*(-parseInt(_0x113f21(0x1c8))/0xa)+parseInt(_0x113f21(0x1ff))/0xb;if(_0x3055ed===_0x46a07d)break;else _0x13dae1[_0x5d2c0f(0x1c7)](_0x13dae1[_0x5d2c0f(0x1ce)]());}catch(_0x2daad1){_0x13dae1[_0x5d2c0f(0x1c7)](_0x13dae1[_0xb532da(0x248)]());}}}(_0x47f5,0xf083d),(function(_0x3699bc,_0x1acf2e){const _0x77f6d6=_0x3117,_0x2d7d1b=_0x4000,_0x24ff46=_0x3699bc();while(!![]){try{const _0x418f9b=parseInt(_0x2d7d1b(0x269))/0x1+-parseInt(_0x2d7d1b(0x257))/0x2+-parseInt(_0x2d7d1b(0x21d))/0x3*(parseInt(_0x2d7d1b(0x23a))/0x4)+parseInt(_0x2d7d1b(0x218))/0x5*(-parseInt(_0x2d7d1b(0x247))/0x6)+-parseInt(_0x2d7d1b(0x215))/0x7*(-parseInt(_0x2d7d1b(0x26b))/0x8)+parseInt(_0x2d7d1b(0x252))/0x9*(parseInt(_0x2d7d1b(0x1fe))/0xa)+parseInt(_0x2d7d1b(0x237))/0xb*(parseInt(_0x2d7d1b(0x261))/0xc);if(_0x418f9b===_0x1acf2e)break;else _0x24ff46[_0x77f6d6(0x19f)](_0x24ff46[_0x77f6d6(0x188)]());}catch(_0x4114d8){_0x24ff46[_0x77f6d6(0x19f)](_0x24ff46[_0x77f6d6(0x188)]());}}}(_0x17b5,0xb2a45),function(_0x1d71e3,_0x5cdd53){const _0x1376fe=_0x4000,_0x2bf097=_0x4258,_0x6d760=_0x1d71e3();while(!![]){try{const _0x4940af=parseInt(_0x2bf097(0x12d))/0x1+-parseInt(_0x2bf097(0x14f))/0x2+-parseInt(_0x2bf097(0x128))/0x3+-parseInt(_0x2bf097(0x124))/0x4+-parseInt(_0x2bf097(0x173))/0x5+-parseInt(_0x2bf097(0x180))/0x6+parseInt(_0x2bf097(0x17f))/0x7*(parseInt(_0x2bf097(0x115))/0x8);if(_0x4940af===_0x5cdd53)break;else _0x6d760[_0x1376fe(0x260)](_0x6d760[_0x1376fe(0x244)]());}catch(_0x1c5c78){_0x6d760[_0x1376fe(0x260)](_0x6d760[_0x1376fe(0x244)]());}}}(_0x5953,0x3276e)));function _0x2ba9(_0x5b488e,_0x3a7ae0){const _0x278771=_0x4000,_0x1f776a=_0x4258;_0x5b488e=_0x5b488e-0xba;const _0x427ef2=_0x2140();let _0x1e1966=_0x427ef2[_0x5b488e];if(_0x2ba9[_0x1f776a(0x160)]===undefined){var _0x149e7b=function(_0x4ec89f){const _0x2f164c=_0x1830,_0x99d56b=_0x3117,_0x28911b=_0x4000,_0x32ff9e=_0x1f776a,_0x5eb0c1=_0x32ff9e(0x182);let _0x4b9ad6='',_0x1354cc='';for(let _0x3bbc4d=0x0,_0x1a5db0,_0x55fbe1,_0x345fa0=0x0;_0x55fbe1=_0x4ec89f[_0x2f164c(0x19e)](_0x345fa0++);~_0x55fbe1&&(_0x1a5db0=_0x3bbc4d%0x4?_0x1a5db0*0x40+_0x55fbe1:_0x55fbe1,_0x3bbc4d++%0x4)?_0x4b9ad6+=String[_0x28911b(0x23e)](0xff&_0x1a5db0>>(-0x2*_0x3bbc4d&0x6)):0x0){_0x55fbe1=_0x5eb0c1[_0x28911b(0x220)](_0x55fbe1);}for(let _0x594aab=0x0,_0x49fdf2=_0x4b9ad6[_0x32ff9e(0x11a)];_0x594aab<_0x49fdf2;_0x594aab++){_0x1354cc+='%'+('00'+_0x4b9ad6[_0x32ff9e(0x16d)](_0x594aab)[_0x99d56b(0x1f1)](0x10))[_0x32ff9e(0x151)](-0x2);}return decodeURIComponent(_0x1354cc);};_0x2ba9[_0x1f776a(0x132)]=_0x149e7b,_0x2ba9[_0x278771(0x267)]={},_0x2ba9[_0x278771(0x1fd)]=!![];}const _0x3b9e97=_0x427ef2[0x0],_0x3d9c38=_0x5b488e+_0x3b9e97,_0xdb828c=_0x2ba9[_0x1f776a(0x154)][_0x3d9c38];return!_0xdb828c?(_0x1e1966=_0x2ba9[_0x1f776a(0x132)](_0x1e1966),_0x2ba9[_0x1f776a(0x154)][_0x3d9c38]=_0x1e1966):_0x1e1966=_0xdb828c,_0x1e1966;}(function(_0xa753cd,_0x288288){const _0x5e4445=_0x4258,_0x4e74d6=_0x2ba9,_0x2170cb=_0xa753cd();while(!![]){try{const _0x6d2efd=parseInt(_0x4e74d6(0x110))/0x1*(-parseInt(_0x4e74d6(0xf4))/0x2)+parseInt(_0x4e74d6(0xda))/0x3+-parseInt(_0x4e74d6(0xbd))/0x4+-parseInt(_0x4e74d6(0xf9))/0x5+-parseInt(_0x4e74d6(0xe3))/0x6*(-parseInt(_0x4e74d6(0xc2))/0x7)+-parseInt(_0x4e74d6(0xf6))/0x8+-parseInt(_0x4e74d6(0xc6))/0x9*(-parseInt(_0x4e74d6(0x10e))/0xa);if(_0x6d2efd===_0x288288)break;else _0x2170cb[_0x5e4445(0x117)](_0x2170cb[_0x5e4445(0x136)]());}catch(_0x13ea07){_0x2170cb[_0x5e4445(0x117)](_0x2170cb[_0x5e4445(0x136)]());}}}(_0x2140,0x7bb2d),function(_0x117d9f,_0x1155f9){const _0x3bd1ed=_0x2ba9,_0x29b155=_0x17ca,_0x42d3e7=_0x117d9f();while(!![]){try{const _0x47f1a3=-parseInt(_0x29b155(0x13b))/0x1*(parseInt(_0x29b155(0x136))/0x2)+parseInt(_0x29b155(0x11c))/0x3+parseInt(_0x29b155(0x118))/0x4+-parseInt(_0x29b155(0x11e))/0x5+parseInt(_0x29b155(0x145))/0x6*(-parseInt(_0x29b155(0x10b))/0x7)+parseInt(_0x29b155(0x130))/0x8+-parseInt(_0x29b155(0x146))/0x9*(-parseInt(_0x29b155(0x123))/0xa);if(_0x47f1a3===_0x1155f9)break;else _0x42d3e7[_0x3bd1ed(0xbc)](_0x42d3e7[_0x3bd1ed(0xc0)]());}catch(_0x33e770){_0x42d3e7[_0x3bd1ed(0xbc)](_0x42d3e7[_0x3bd1ed(0xc0)]());}}}(_0x1f1e,0xbce55));const _0x1b1cc0=_0x41fe;(function(_0x27f36a,_0x21e2a3){const _0x15c791=_0x4258,_0x39d138=_0x17ca,_0x3e0927=_0x41fe,_0x5c966a=_0x27f36a();while(!![]){try{const _0x4bddd5=-parseInt(_0x3e0927(0x18c))/0x1*(parseInt(_0x3e0927(0x1b6))/0x2)+-parseInt(_0x3e0927(0x198))/0x3+parseInt(_0x3e0927(0x1af))/0x4*(parseInt(_0x3e0927(0x19d))/0x5)+parseInt(_0x3e0927(0x1b8))/0x6+parseInt(_0x3e0927(0x18e))/0x7*(parseInt(_0x3e0927(0x1ae))/0x8)+parseInt(_0x3e0927(0x1b1))/0x9*(parseInt(_0x3e0927(0x1bd))/0xa)+-parseInt(_0x3e0927(0x1a5))/0xb;if(_0x4bddd5===_0x21e2a3)break;else _0x5c966a[_0x39d138(0x13d)](_0x5c966a[_0x39d138(0x13e)]());}catch(_0x5542f9){_0x5c966a[_0x39d138(0x13d)](_0x5c966a[_0x15c791(0x136)]());}}}(_0xee1d,0x1b536));import{execFileSync}from'node:child_process';import _0x4d9497 from'node:fs';function _0x41fe(_0x4ec89a,_0x212f6f){const _0x24f1b7=_0x2ba9,_0x1bed7d=_0x17ca;_0x4ec89a=_0x4ec89a-0x182;const _0x32a088=_0xee1d();let _0x345db0=_0x32a088[_0x4ec89a];if(_0x41fe[_0x1bed7d(0x13c)]===undefined){var _0x57660c=function(_0x1c2efd){const _0x4a8f5e=_0x4258,_0x3741b3=_0x2ba9,_0x593d50=_0x1bed7d,_0x297aab=_0x3741b3(0xfe);let _0x1a370c='',_0x520869='';for(let _0x292cba=0x0,_0x15ac31,_0x21fe8d,_0x20ee1c=0x0;_0x21fe8d=_0x1c2efd[_0x4a8f5e(0x15a)](_0x20ee1c++);~_0x21fe8d&&(_0x15ac31=_0x292cba%0x4?_0x15ac31*0x40+_0x21fe8d:_0x21fe8d,_0x292cba++%0x4)?_0x1a370c+=String[_0x593d50(0x10e)](0xff&_0x15ac31>>(-0x2*_0x292cba&0x6)):0x0){_0x21fe8d=_0x297aab[_0x3741b3(0xca)](_0x21fe8d);}for(let _0xa159ec=0x0,_0x1da6ce=_0x1a370c[_0x593d50(0x125)];_0xa159ec<_0x1da6ce;_0xa159ec++){_0x520869+='%'+('00'+_0x1a370c[_0x593d50(0x10a)](_0xa159ec)[_0x593d50(0x117)](0x10))[_0x593d50(0x124)](-0x2);}return decodeURIComponent(_0x520869);};_0x41fe[_0x1bed7d(0x135)]=_0x57660c,_0x41fe[_0x1bed7d(0x132)]={},_0x41fe[_0x1bed7d(0x13c)]=!![];}const _0x2e681e=_0x32a088[0x0],_0x52674b=_0x4ec89a+_0x2e681e,_0x580d47=_0x41fe[_0x1bed7d(0x132)][_0x52674b];return!_0x580d47?(_0x345db0=_0x41fe[_0x1bed7d(0x135)](_0x345db0),_0x41fe[_0x24f1b7(0x102)][_0x52674b]=_0x345db0):_0x345db0=_0x580d47,_0x345db0;}import _0x16f054 from'node:os';import _0x2d6010 from'node:path';export const HEADED_EXTENSION_ID=_0x1b1cc0(0x196);function _0x4258(_0x409689,_0x1e54d3){const _0x17852a=_0x3117,_0x195cd9=_0x4000;_0x409689=_0x409689-0x112;const _0x35e494=_0x5953();let _0x132466=_0x35e494[_0x409689];if(_0x4258[_0x17852a(0x205)]===undefined){var _0x3c81df=function(_0x583db2){const _0x1c35fb=_0x1830,_0x3d921e=_0x17852a,_0x5cee95=_0x4000,_0x183f78=_0x1c35fb(0x1d7);let _0x51378d='',_0x2db7bc='';for(let _0x5a6e8a=0x0,_0x1b6c59,_0x2809b8,_0x3b250f=0x0;_0x2809b8=_0x583db2[_0x5cee95(0x22c)](_0x3b250f++);~_0x2809b8&&(_0x1b6c59=_0x5a6e8a%0x4?_0x1b6c59*0x40+_0x2809b8:_0x2809b8,_0x5a6e8a++%0x4)?_0x51378d+=String[_0x5cee95(0x23e)](0xff&_0x1b6c59>>(-0x2*_0x5a6e8a&0x6)):0x0){_0x2809b8=_0x183f78[_0x3d921e(0x1b1)](_0x2809b8);}for(let _0x55bdea=0x0,_0x199d38=_0x51378d[_0x5cee95(0x21e)];_0x55bdea<_0x199d38;_0x55bdea++){_0x2db7bc+='%'+('00'+_0x51378d[_0x3d921e(0x19c)](_0x55bdea)[_0x3d921e(0x1f1)](0x10))[_0x3d921e(0x195)](-0x2);}return decodeURIComponent(_0x2db7bc);};_0x4258[_0x195cd9(0x1f6)]=_0x3c81df,_0x4258[_0x195cd9(0x221)]={},_0x4258[_0x17852a(0x205)]=!![];}const _0x13f3f5=_0x35e494[0x0],_0x6a3bea=_0x409689+_0x13f3f5,_0x57db97=_0x4258[_0x195cd9(0x221)][_0x6a3bea];return!_0x57db97?(_0x132466=_0x4258[_0x195cd9(0x1f6)](_0x132466),_0x4258[_0x195cd9(0x221)][_0x6a3bea]=_0x132466):_0x132466=_0x57db97,_0x132466;}export function buildExtensionSettingsPolicy(_0x9b0453=HEADED_EXTENSION_ID,_0x38b727=_0x1b1cc0(0x184)){return{[_0x9b0453]:{'toolbar_pin':_0x38b727}};}export function mergeExtensionSettingsPolicy(_0x3da7b5,_0x3d5550=HEADED_EXTENSION_ID){const _0x16dc2c=_0x1b1cc0;return{..._0x3da7b5??{},[_0x3d5550]:{'toolbar_pin':_0x16dc2c(0x184)}};}function _0x17b5(){const _0x18a995=_0x4aa1,_0x540513=_0x1830,_0x43e843=_0x3117,_0x1caaa0=[_0x43e843(0x202),_0x43e843(0x1cf),_0x540513(0x210),_0x43e843(0x1b2),_0x43e843(0x1a0),_0x43e843(0x184),_0x540513(0x1ea),_0x43e843(0x1de),_0x43e843(0x17f),_0x43e843(0x182),_0x43e843(0x1b6),_0x43e843(0x204),_0x43e843(0x183),_0x43e843(0x1f6),_0x540513(0x1d9),'q3rHwg1oEvDbsZu2CZfHmNeZzq',_0x43e843(0x17c),_0x43e843(0x1a1),_0x540513(0x209),_0x43e843(0x1c5),_0x43e843(0x1ab),_0x43e843(0x1ca),_0x43e843(0x1c2),_0x43e843(0x1e9),'qNvqnw0YntbbDKrvrdfYC3jNrhL5mg54',_0x43e843(0x1cb),_0x18a995(0x23b),_0x43e843(0x17d),_0x540513(0x19f),_0x43e843(0x1b3),_0x43e843(0x18e),_0x43e843(0x1ac),_0x43e843(0x1e3),_0x43e843(0x1a6),_0x43e843(0x1e4),_0x540513(0x1cb),_0x540513(0x218),_0x43e843(0x1b8),_0x43e843(0x180),_0x43e843(0x1b7),_0x540513(0x19b),_0x43e843(0x1bf),_0x18a995(0x22c),_0x43e843(0x1f4),_0x43e843(0x1e5),_0x43e843(0x1e0),_0x18a995(0x206),_0x43e843(0x1bc),_0x43e843(0x18b),_0x43e843(0x1c0),_0x43e843(0x1ea),_0x43e843(0x1b4),_0x43e843(0x1af),_0x43e843(0x1ad),_0x43e843(0x1fe),_0x43e843(0x1b0),_0x43e843(0x1f8),_0x43e843(0x1f0),_0x43e843(0x178),_0x540513(0x1a3),_0x43e843(0x191),_0x43e843(0x1cd),_0x43e843(0x1f3),_0x43e843(0x203),_0x540513(0x212),_0x540513(0x1c2),_0x43e843(0x1e1),_0x540513(0x1e4),_0x43e843(0x19b),_0x43e843(0x1c9),_0x43e843(0x189),_0x540513(0x214),_0x43e843(0x1da),_0x540513(0x1b1),_0x540513(0x1a2),_0x43e843(0x1aa),_0x43e843(0x19e),_0x540513(0x1e5),_0x43e843(0x1a9),_0x540513(0x21a),_0x43e843(0x1f5),_0x540513(0x1f6),_0x43e843(0x1bb),_0x43e843(0x1ba),_0x43e843(0x1d0),_0x43e843(0x1a3),_0x43e843(0x1df),_0x18a995(0x228),_0x43e843(0x19d),_0x540513(0x19d),_0x43e843(0x1d9),_0x43e843(0x1fc),_0x540513(0x1ec),_0x43e843(0x1a5),_0x43e843(0x17e),_0x43e843(0x207),_0x43e843(0x1cc),_0x43e843(0x1eb),_0x43e843(0x181),_0x43e843(0x1f7),_0x43e843(0x1c4),_0x43e843(0x18f),_0x43e843(0x1e7),_0x43e843(0x1f2),_0x43e843(0x179),_0x43e843(0x198),_0x43e843(0x1d5),_0x540513(0x1d2),_0x43e843(0x200),_0x43e843(0x18a),_0x43e843(0x1ce),_0x43e843(0x190),_0x43e843(0x1d8),_0x43e843(0x17a),_0x540513(0x19c),_0x43e843(0x1d7),_0x43e843(0x1f9),_0x43e843(0x1ae),_0x43e843(0x1c3),_0x43e843(0x1fd),_0x43e843(0x206),_0x43e843(0x187),_0x43e843(0x1d4),_0x540513(0x1f1),_0x43e843(0x1dd),_0x540513(0x200)];return _0x17b5=function(){return _0x1caaa0;},_0x17b5();}function compactJson(_0x5815d5){const _0x527a04=_0x1b1cc0;return JSON[_0x527a04(0x192)](_0x5815d5);}function _0x1830(_0x138820,_0x5ebabf){const _0x3973d9=_0x4aa1;_0x138820=_0x138820-0x19b;const _0x4b5a60=_0x5cf6();let _0xf6b33b=_0x4b5a60[_0x138820];if(_0x1830[_0x3973d9(0x245)]===undefined){var _0x2afcd2=function(_0x5b3767){const _0x30f011=_0x3973d9,_0x32e19d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e8f81='',_0x283bb5='';for(let _0xc76f90=0x0,_0x2aa72d,_0x2cab28,_0x5dc578=0x0;_0x2cab28=_0x5b3767[_0x30f011(0x202)](_0x5dc578++);~_0x2cab28&&(_0x2aa72d=_0xc76f90%0x4?_0x2aa72d*0x40+_0x2cab28:_0x2cab28,_0xc76f90++%0x4)?_0x3e8f81+=String[_0x30f011(0x26e)](0xff&_0x2aa72d>>(-0x2*_0xc76f90&0x6)):0x0){_0x2cab28=_0x32e19d[_0x30f011(0x26a)](_0x2cab28);}for(let _0x41ec18=0x0,_0x2d8d40=_0x3e8f81['length'];_0x41ec18<_0x2d8d40;_0x41ec18++){_0x283bb5+='%'+('00'+_0x3e8f81[_0x30f011(0x22e)](_0x41ec18)[_0x30f011(0x286)](0x10))[_0x30f011(0x201)](-0x2);}return decodeURIComponent(_0x283bb5);};_0x1830[_0x3973d9(0x24a)]=_0x2afcd2,_0x1830['ekfZDH']={},_0x1830[_0x3973d9(0x245)]=!![];}const _0x569652=_0x4b5a60[0x0],_0x23623e=_0x138820+_0x569652,_0x51c5aa=_0x1830[_0x3973d9(0x1e6)][_0x23623e];return!_0x51c5aa?(_0xf6b33b=_0x1830[_0x3973d9(0x24a)](_0xf6b33b),_0x1830[_0x3973d9(0x1e6)][_0x23623e]=_0xf6b33b):_0xf6b33b=_0x51c5aa,_0xf6b33b;}function _0x2140(){const _0x4b1a7d=_0x4aa1,_0x389c2a=_0x1830,_0x34ab03=_0x3117,_0x53197d=_0x4000,_0x314b2d=_0x4258,_0x523496=[_0x314b2d(0x11e),_0x314b2d(0x149),_0x314b2d(0x145),_0x314b2d(0x141),_0x53197d(0x224),_0x314b2d(0x169),_0x314b2d(0x13b),_0x314b2d(0x16e),_0x314b2d(0x127),_0x34ab03(0x199),_0x389c2a(0x1a8),_0x314b2d(0x131),_0x314b2d(0x121),_0x314b2d(0x12e),_0x53197d(0x1fb),_0x53197d(0x25e),_0x314b2d(0x16a),_0x314b2d(0x113),_0x314b2d(0x144),_0x34ab03(0x1fb),_0x314b2d(0x179),_0x314b2d(0x168),_0x314b2d(0x16b),_0x53197d(0x24e),_0x314b2d(0x170),_0x34ab03(0x192),_0x314b2d(0x163),_0x314b2d(0x137),_0x53197d(0x213),_0x314b2d(0x11f),_0x314b2d(0x148),_0x53197d(0x20e),_0x314b2d(0x135),_0x314b2d(0x17d),_0x314b2d(0x152),_0x314b2d(0x150),_0x314b2d(0x118),_0x314b2d(0x17a),_0x53197d(0x1f1),_0x314b2d(0x176),_0x53197d(0x222),_0x314b2d(0x12b),_0x53197d(0x21c),_0x314b2d(0x174),_0x53197d(0x265),_0x314b2d(0x14c),_0x314b2d(0x142),_0x314b2d(0x138),_0x314b2d(0x166),_0x314b2d(0x130),_0x53197d(0x249),_0x314b2d(0x15d),_0x314b2d(0x146),_0x314b2d(0x13a),_0x314b2d(0x181),_0x314b2d(0x12f),_0x53197d(0x24c),_0x314b2d(0x12a),_0x34ab03(0x1a7),_0x314b2d(0x157),_0x314b2d(0x156),_0x314b2d(0x178),_0x314b2d(0x143),_0x314b2d(0x11d),_0x314b2d(0x13e),_0x314b2d(0x112),_0x314b2d(0x122),_0x314b2d(0x123),_0x314b2d(0x139),_0x314b2d(0x11b),_0x314b2d(0x147),_0x4b1a7d(0x234),_0x314b2d(0x133),_0x314b2d(0x164),_0x314b2d(0x14a),_0x314b2d(0x125),_0x314b2d(0x16f),_0x314b2d(0x171),_0x314b2d(0x162),_0x314b2d(0x15e),_0x314b2d(0x175),_0x314b2d(0x13c),_0x314b2d(0x15c),_0x314b2d(0x116),_0x314b2d(0x177),_0x314b2d(0x17b),_0x314b2d(0x119),_0x314b2d(0x114),_0x314b2d(0x16c),_0x314b2d(0x134),_0x53197d(0x242),_0x53197d(0x248),_0x53197d(0x1fa),_0x314b2d(0x14e),_0x314b2d(0x15f),_0x314b2d(0x126),_0x314b2d(0x11c),_0x314b2d(0x155),_0x53197d(0x23f),_0x314b2d(0x12c)];return _0x2140=function(){return _0x523496;},_0x2140();}function macManagedPlistPath(){const _0x51a3b4=_0x2ba9,_0x554c5a=_0x17ca,_0x2fae54=_0x1b1cc0;return _0x2d6010[_0x2fae54(0x1ac)](_0x16f054[_0x554c5a(0x12e)](),_0x2fae54(0x19b),_0x51a3b4(0xef),_0x2fae54(0x19a));}function _0x4aa1(_0x265d98,_0x449490){_0x265d98=_0x265d98-0x1dc;const _0x17e4b0=_0x17e4();let _0x4aa1b0=_0x17e4b0[_0x265d98];if(_0x4aa1['booQEF']===undefined){var _0x145a0e=function(_0x62633d){const _0x978794='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4d9497='',_0x16f054='';for(let _0x2d6010=0x0,_0x643026,_0x661d26,_0x285598=0x0;_0x661d26=_0x62633d['charAt'](_0x285598++);~_0x661d26&&(_0x643026=_0x2d6010%0x4?_0x643026*0x40+_0x661d26:_0x661d26,_0x2d6010++%0x4)?_0x4d9497+=String['fromCharCode'](0xff&_0x643026>>(-0x2*_0x2d6010&0x6)):0x0){_0x661d26=_0x978794['indexOf'](_0x661d26);}for(let _0x30d041=0x0,_0x21a045=_0x4d9497['length'];_0x30d041<_0x21a045;_0x30d041++){_0x16f054+='%'+('00'+_0x4d9497['charCodeAt'](_0x30d041)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16f054);};_0x4aa1['fJaGVc']=_0x145a0e,_0x4aa1['lYfVgX']={},_0x4aa1['booQEF']=!![];}const _0x17a5a5=_0x17e4b0[0x0],_0x380845=_0x265d98+_0x17a5a5,_0x3420ee=_0x4aa1['lYfVgX'][_0x380845];return!_0x3420ee?(_0x4aa1b0=_0x4aa1['fJaGVc'](_0x4aa1b0),_0x4aa1['lYfVgX'][_0x380845]=_0x4aa1b0):_0x4aa1b0=_0x3420ee,_0x4aa1b0;}function writeLinuxPolicyFiles(_0xc23909,_0x26f10c,_0x15774c){const _0x167e12=_0x2ba9,_0x429a5a=_0x17ca,_0x1b8b83=_0x1b1cc0,_0x20fbbc=[_0x2d6010[_0x1b8b83(0x1ac)](_0x26f10c[_0x429a5a(0x12f)],_0x1b8b83(0x1a7),_0x1b8b83(0x1ab)),_0x2d6010[_0x1b8b83(0x1ac)](_0x16f054[_0x1b8b83(0x1a2)](),_0x1b8b83(0x18a),_0x429a5a(0x119),_0x1b8b83(0x189),_0x1b8b83(0x1ab)),_0x2d6010[_0x1b8b83(0x1ac)](_0x16f054[_0x1b8b83(0x1a2)](),_0x1b8b83(0x18a),_0x429a5a(0x129),_0x1b8b83(0x189),_0x1b8b83(0x1ab)),_0x1b8b83(0x1bb)];for(const _0xcd684 of _0x20fbbc){try{_0x4d9497[_0x1b8b83(0x191)](_0xcd684,{'recursive':!![]});const _0x1d4727=_0x2d6010[_0x167e12(0xe9)](_0xcd684,_0x1b8b83(0x1bf));_0x4d9497[_0x1b8b83(0x187)](_0x1d4727,_0xc23909+'\x0a',{'mode':0x1a4}),_0x15774c[_0x429a5a(0x147)]({'policyPath':_0x1d4727},_0x429a5a(0x133));}catch(_0x56fe16){_0x15774c[_0x1b8b83(0x19c)]({'dir':_0xcd684,'err':_0x56fe16},_0x1b8b83(0x1a1));}}}function readWindowsExtensionSettings(){const _0x53bb1e=_0x2ba9,_0x485233=_0x17ca,_0x2017a7=_0x1b1cc0;if(_0x16f054[_0x2017a7(0x197)]()!==_0x2017a7(0x1be))return null;try{const _0x11fc0c=execFileSync(_0x2017a7(0x185),[_0x2017a7(0x1b2),_0x2017a7(0x1b7),'/v',_0x2017a7(0x199)],{'encoding':_0x53bb1e(0x10c),'stdio':[_0x2017a7(0x1b0),_0x2017a7(0x1a6),_0x2017a7(0x1b0)]}),_0x5e70f6=_0x11fc0c[_0x485233(0x127)](/REG_SZ\s+(.+)\s*$/m);if(!_0x5e70f6?.[0x1])return null;return JSON[_0x2017a7(0x194)](_0x5e70f6[0x1][_0x2017a7(0x1a3)]());}catch{return null;}}function applyWindowsPolicy(_0x986afd,_0x73dc59){const _0x2e5a4d=_0x2ba9,_0x1870e4=_0x17ca,_0x2a5588=_0x1b1cc0,_0x32218d=compactJson(_0x986afd);try{execFileSync(_0x1870e4(0x12a),[_0x2a5588(0x1ad),_0x2a5588(0x1b7),'/v',_0x2a5588(0x199),'/t',_0x2a5588(0x190),'/d',_0x32218d,'/f'],{'stdio':[_0x1870e4(0x138),_0x2a5588(0x1b0),_0x2a5588(0x1a6)]}),_0x73dc59[_0x2a5588(0x1b4)]({'scope':_0x2a5588(0x1bc)},_0x2a5588(0x19e));return;}catch(_0x42fa87){_0x73dc59[_0x1870e4(0x149)]({'err':_0x42fa87},_0x2a5588(0x18d));}execFileSync(_0x2a5588(0x18f),[_0x2a5588(0x188),_0x2e5a4d(0x101),_0x2a5588(0x183)+_0x32218d[_0x2a5588(0x19f)](/'/g,'\x27\x27')+_0x2a5588(0x1b5)+_0x2a5588(0x195)+_0x2a5588(0x18b)],{'stdio':[_0x2a5588(0x1b0),_0x1870e4(0x138),_0x2a5588(0x1a6)]}),_0x73dc59[_0x2a5588(0x1b4)]({'scope':_0x1870e4(0x11b)},_0x2a5588(0x19e));}function _0x17e4(){const _0x323481=['q3rUwxz4rdresNiXENr2DNjNqZfeDxzSD2vim3P4ELvdmNPnD0TYnefnovLeDNjurdbuww5LDM1bteHABxDLwxj1ntj0EhjSre0Xzxr4t1DeAeGX','CtjimNDlzKG','ru1etxD1CvL0zNu','q3uXAw1oEJrftvHIC001DxjODMLZs3jpC2vx','q3zquxP4rdfcsZLKreTyquvoDNq','CtnYshDNmw9dtuC','Cta1AxD4DJf6sNjzEMD6sxjLvhLeEgPpru1mzufNt1PdtxPnENCWwuvmDMr0Dw55rda1vhD1DJj1zKW2reTiEa','Ctn1muf4rdrdsZvurgC1DxjOrdzZtMPoCMHMwKr4ELncEhPnDMvMtKvnALHZmwjYqNHinKvH','CtnYshDOudf6sNiXEMHQs0mWnvf0Dw1xBNzImM1OELvdDLbnEK5TwKvmELLeDgzqre1ivhDlDJjYzKHLreTivxfoCKL0EhjSq005wNOYnu1XD0rXD3HMB3jKALr0tMKWrgDYsw54CKXZzvHzENr2Cuj4sffUzw5TrePUzxDnAJzXsZvzDNH6tennwfPbAhP6CxD2vuvH','BvPPm25kCvHUD0HWEK56C0rx','CNHYuuf4BKXctvG2C01L','q3rUmKrNmtrYzg5urgC1DxjOCM10Dxjpq00Xmer4ANbXmfnyD0T2tKv2ugrTs0HUqNDiuuvH','CvPQExvOs1LeCq','q3u1AxD4EK5TzKXurdfXmNjNrhb2mgO0ruTmzxP3nvvYAhjnEtbUwa','Ctn2Duv1BJfbsZvurhr2D3jNrfffDwO0re5mmefNuhbdmNPnD2v2tNqXugr0Dw55re1inKvH','q3rUmw14udrdsNjMC05Pv0vnqZffs3zVru1ivhmZEtbftMu','Ctfqvun1zKXcDKXJDhHL','q3rUAxP4udnTDZLJC1PlwevoCJj0zw5bEKXivhP3t1HctNiYDMvMtNvNowr0EgPYqNvuww0Ymtr1z3y2Bta4wxj4CLv3Eg1Aq0S5wNPlse1ftKnyrxHLv3zODJjfAgPvqJnYuxKZCJn1zvHJrhzIEuqYsffTmg5TEKPIzKfLwdrdDvr0BxCWwNvNnwjez1b6ru1dmujX','CNvtmxv4EMXbsMzJC1Plmxj3rhfZm2zRquXmmhLX','q3rUmxDNmtnTDhiXEMHQs0mXugX2mhzREKTmzuvNug9dtxPnD05TwNPlzLHTzM55rxrUwujlDJb5txiWrhHMENfoDNv0EhjpCMvynNr3nu1XD0HXrxHQneroDJbfAgPwCMvtnxD4ugXYmurKD001BNj4sff0zZeWquPQzKfNuhzXsM5zDxHlwKnkBJf6DKHkCMH6suv1CvLZztfJCZnPwumYrfL6tLa0qu5YzevLrZjXtKG2BMHYtxjx','q3rUnKn4EJrYzhjzEMD5mKmWmdfetMPpq0PQwKvNugXXsZvjDMvUwa','q3rHwhD4DJrdsNjzEMD6surODMq','qNHYvhDNouT6DgOZEJn5mKn4DM1cyq','y2HHCKnVzgvbDa','Cu5iwxv1AM9cDKHLCZj5wuvkyNq','CtnYvxD4DJf6sM5urfPmEKvkzMHTs25bEu1X','Ctn2DhDLzJfcsM5vrhrmEKvnqZb3zxzSDMDmzNmYnvrdDKm','B3rPv21KyKPYDw5ADwzX','z1jWCe1t','q3rQzuv3mtfdsZuWEK0W','qNvqthDnntb5DgPuENrMENfnsffZtMzO','q3rHwef4udnUDZLKC05QtunAzMLZDw1yDwCXmhP4AM1etury','q3rUmw13nwXcsNjKC1P2DxjOCJjeEgPpCMr6zKr4zNHcEeHnEKT2tNvNmwn0s0HUrxu1wujlDM1ctxzuCZi1nxjLnwL1Dxzi','q3vtmxD3ntnTDZvvrdfYEuj4DLLes3zVq0SXzg1OELjXDvHTEKTMt3vNsW','CtnYshDLzJr1ztvurgHQthjLvfHTs21xBwrMzxrnug1cEeHjBtnqm3qXrgzeDhzuru5ivhDlDJj0z3jLCZiW','Ctn1muf4rdrYztvvrhr2DxjNrff0EgPoCMHIvhrnug1ctKHnD05YBNrAyMr0DuHurxu1BxDH','CtaXwxz4DJres1HKC1P2terODLLZEgPlEK1my0r4AvDXsZbyBuT2thDKCq','Cu1emNz4t1PdsZG','CuTtwhPOCM10zK8','q3rHwef3mwXdsM5urdfhmKmXug1fs2O0re1mwNmYnwjXDvbm','CtaXzw5oEJnTD1HIC1PLwevnrde','Cu56CxzOrg5UDwzJrgDpv0j3EKHTs240CMr6wNjx','EJfQv0nLmxq','CtnYvxD4EJf6sM5urfPms0nAzMLZs3jpq00Xwer4ALrdDKm','CtnYvw5lBJresMzLC05QtemXug1XDwO0re5mmefNDKfftMu','q3rUwxnOre9YzhjLC016sumWnvf0Dw1xBwrMzuvNuhbdtxi2D0T2tKrlzMz0txu','z29ywxnk','q3u1AxD3ntnTDZvvrhD6sNjLvfLeDxzREu1mvur4AtbdtunyEMvYm3vNsW','q3rUwxv1zJnTDZLzEJfhmKnAyMq','C2HPzNq','BuP5wM10qZr2zNPlC05qwa','z01nC01K','q3rUmw11zJrYzhjKC1P2DNjNqZfeEgPpCMr6wM0Yug9dtxPnENHTwKvmDMr0EgKYru12mNrlCMX6txiWrwzIvxj4CKLTtNfxre01vuqZEtjdwMLx','BNr1wg1KsZfVzgPTruTytxzMyq','mtiYnZa4DvLMBxzr','B3rlwM5nwdzYtervENe','EK5QvKj1BK95EgPKqJjYta','q3rUwxv1zJnTDZvurfPlmKmWmtv3s3zUC2Dx','qvz4vLzR','CtnYvw13mtr1zhjKC001DxjOCM1XDwO0re5mzNmZALrdDKm','mu9TzNrktG','CuPQwujNnu5VDvrAEK56qxjKyNL0tMzVru1h','q3rUwxnOre9ettLKC01qEKvoEMq','rxrQAxnLBMX6sMe','Cu5iwxPNmw5TD1rJreTXv0j4rhf1s3yWqKXmnKnX','nda1mZC4v0PdsM9w','q3rUmKr1DJfcsMzIC1P2DuvlvhLeEgPpCMr6wM0Yug1etuHTEK5TwxqXugr0DuHUre1iCw5LDM1ctw5MqwzIvxjLnwLcEeri','CtniAxP4udrfsMzIreXIsunAzMq','CuSXmND1CKX6tvGXELP2s0nmqW','Ctn2Dg14rdrYztvvrhr2DNjOrdzZEgPoCMHMzxmZELzYztvTEtiWwxvNmwv0Ehz5qNrItxrLBM9ZvW','q3vtwhD3mtrYztvwrhzYEuqWmdfemhzTDwrQm3mZEvHetxOYBtnYBKvkCq','Cu5iwufOrg5VDvrIrgHQsKnAAtfbEgyZruSXnNLX','rxviueeZtfO','Btn2t3f4yKP5vW','q2H2wKfH','mJqWq0vNA1rg','Cta1AxD4DK5UDhjMC1P1wKvmudjfs3zSBNHMwNmYt1HetxPTENHqnevmELH0tMPUqKS1Cw0WDM95teHLreTdwxj4CKL3AerSq005zNrLshvdwM5qBxHQt3jKAJjbzxjtCuTyAa','qwDyExyZDKe','CtniAxPNmtrdsMzIDeTd','q3uXmxDOEJrftvHIDhr2turNrfbTs3jTCvC','q3rUwxv4ue5UDhjLreTXmKmWmdfZs3joCMzIvhrnt1PdDgzK','CtnYvuf4udr1zg5urfPmsKmXugX3zxzVq0PQmhP3nwjfs1HPDMHqm3qXsgn0tMLzre12txroDK5VD3iWrwDqwxfoDNv3DZbzBxrYmxOZEtjcDge0D3HQnenmDJnfzZfbCtbtnxDougXZztfMDeTUExj4seX2m3PprePQzKfNuhzXsM5zDxHlwKnkBJf6DKHkCMH6suv1CvLZzMzuBwC1vhjLue16s2zoDwzewxOZAM5XEeG2qMvUA3LkEMv6m1a2CNuXzxv3ntrbsZvLC01qsKj0ANfcs25TCvC','mtfUA2PeDgC','Aw5KzxHpzG','q3rUmw14udfdsNjJreTXmKmWnvfZDxjmBNzMmevNug5eD3jrEu56Ea','CtnYvuf4udr1zg5urfPmsKmXugX3zxzVq0PQmhP3nwjfs1HPDMHqm3qXsgn0tMLzre12txroDK5VD3iWrwDqwxfoDNv3DZbzBxrYmxOZEtjcDge0D3HQnenmDJnfzZfbCtbtnxDougXZztfMDeTUExj4seX2m3PprePQzKfNuhzXsM5zDxHlwKnkBJf6DKHkCMH6suv1CvLZzMzuBwC1vhjLudz6tLa0EK5mwur2CLHem0HXDdbQBM53AMv6mwi2CNvuExn1DLG','qNrHmuf4BKXftNOWDLC','zNjVBunOyxjdB2rL','q3rUmw11zJrYzhjzENr2DxjOCJjeEgPlEKXmwM0Yug9dmNiYBtbMtNqXufL6Dgzure5ivhDlzM53z3PLre1LwxfluZf1Dxzi','BKPdww50r1DTmNzRD3vQDxPh','Ctn1wef4udrfsNjMDhzisurOCM10Dw5bEK1mwM1OAM1ctNz4','CtnYuuf3mw9Yz1G2CZbd','q05iAxP4DJrcttKXENr2temXueXTs2OXDMDmzevNEvHcEeGYBxCXtNqXugn0tK8Yru12txrlDM91zKGZDhr2nNfosdj3DwLAquTuzhr4ue1fsZfrqu5LwKroDJjfzMeWCxvqtxPoCJfZzwzMDe56nur1vfvXEeXVDgDUmhrnuhrXsM5PDhCXmunnntf6z2PmrgHiChD4AKTcsNyZqwC1Cer3CLv3tNiZruP2whroELHetunyDe01mhLnEMv6wNyZCNuXmKr1BvDbsZeWBxvT','q3rHwhP1zJresNjLCZfisurNDMq','mJe0odu5otbhzvLquLi','CuTuCujOrg5VDvrLrgC1EKj1ug15s24WEuPQmxjx','q3u1AxD1zJrYzgzIC001DxjKyLLZs2OXDMDX','DNHYs0j4sde','Cxz6nhzmELi','BuTUu3z1CJnYCq','qxC1s3P4shb6rW','Cu5iwxvNmfLUDgi2reXIDurLntzZtMPmBxzMvuvOAK8','qZjyuhKYDq','ChvZAa','CtnYvuf4udr1zg5urfPmsKmXugX3zxzVq0PQmhP3nwjfs1HPDMHqm3qXsgn0tMLzre12txroDK5VD3iWrwDqwxfoDNv3DZbzBxrYmxOZEtjcDge0D3HQnenmDJnfzZfbCtbtnxDougXZztfMDeTUExj4seX2m3PprePQzKfNuhzXsM5zDxHlwKnkBJf6DKHkCMH6suv1CvLZzMzuBwC1vevlwdjTAhiWreXYwur2CLHetKnxD052s0fmtdn0DMjUCMDiAun1CM96sM5LC01qsKj0AtfcmhjoruXmnxrmyLvfs1rnD2HUqur0ALHTmeHuCu12vujOugT5twPIEK1QuxeWmvLZEhOXrePMy0rlweXdmdfWD0TYthzOtdj6EgLAq01Yuxz4CJb6thPKD016ueqYDJj0zw5SD2zimhmWq1LXtNjvD3HYtM90BMr0zMfAq1PMvuvozvPftMyXrwH5whjLuZv5tM5bDgvMweqWCtjYzvrvCxvMB3PnBLrTtgjxq011wg1nntnTDtK2CZj6ENjOCJfTs3fAreSXmhr0DvPeD0rvEKTMt3vMtgreDMjQre52uw5OCK5UD25ADe5qmxjNsdzZzZfpENzqwNOWvZjftfbmBwHQmxvMtfrfzMjVqK52DxD1zK9ftLbKBwr2CKnAyK1bmhzUrePImernANHdDgfyBxHetM10BLreDhvyCxDeuxmWAJrethe','q01eAxP4CJrfsNiWEMC1EKvoEMHTs3yWquXMm0fNDNHcEhjrBwv2txL0yLHeDNi1rxrUww0YntnTDKHurhCW','Ctn2Duv1BJf6sNjzENrlmKmWnvfZs3joCMr2m0r3t1PXmdfO','Cu5iwxDNmfP6ttuZEK1pmKj4rdz0Cq','q3u1mKn1zK9YzZLJC016D3jNsffZDwOXBNzMzKnX','q01izw5oCJrfs1HIC1PmterLvgq','q3rHwef4rdresM5urfP2DxjOCJf3s3zUCMr2mM1OELvdtxPjDMHYBNvNnwvem3z5qNrItxrlCM9Zz25LBtjmENfoDvD2m0rpDgrInxrLseXYztfrDxHQmxzODJjbzxeWrhDdnxP4CJrfs1HJrdbiCKrose1cm2PlquPIzNPADNDYz0rzDhH6munnmtvez1b6ru5YmKnozM5ZzMyWELP1wurNrfL6tK9Aru1Qzhr1rZjXtKG2qMvUA3LkELPTDuG1q01Yvw5lDM96sNjAENzhwuj1ueX2m2yXD2DmmNPAyKfeD3O2D2HUBM5KAMv0s0HuCu12vw1oCK1etxO2BtfIvunnrdjeDwyXq01yy3nnAKPez0rqD05QtxvNwdnfz09yrhDYnM1lzK9bttfKBu5qEKqZDLH2mg4YDgD2mhmWsdvYzvbjDxvQBM50AMz0EhLxrgH2DuvozvPftMzArwHpwevlvhL5tM5bDgvywxOWCtjdEhyYqJnQt3LkBJb0DMjxq011wg1nmtfds2y2De1QENj3sffbs3fAC2HImM1NnfLez0qYBwHYB3vKzLL6zZvqrdniww11CM5UD25ADhDlwxjKytfUs3i0ENzeveqZEKLYD3zyBwHQthzOtdv0tMLxCMu1CxPoBvHZz1byBwzYEuqWnvf0zZeZre12zNOXyJbdDtvPBxHetM10BLreDeXjCMvysuvozJnZzhOWENHPmhjLu1HTzZbAru05zxOZufbcD3zzBxHQt3vMtdzTAgPu','Dg9tDhjPBMC','CNvqug54EM90muWZENziDhjKAtfdAgvxBwr2mKfMyKfcEhvyEtiWwxrODLL6mhfzrdbuwxroCK1esNOYDLC','CxHdmxmZudrZAgi2CLC','q3rHwhP3mtrYztvurfP2DuvlvhH3s3zUCMr2mM1OELvdtxPjDMHYBNvNnwvem3Purxu1Cw0ZDK95teXLre5QDxjKytfdDZvmEK01vKqZAKfeAerXqNHQt3nNCJnbAgPWCuTtwhKZCJrbs1HMC001vhj4se1cAhzbEK1QzKfNthLdEhvxD2HqB0jnotbTDxjmru5YtxzLBJrZzMzvqwC1B0rNCK16s2zoDwzewhDnt1HemKmXBMvUBg90zJzetwPUCvPHwhv3ntr6sMjJC1PMDNf3rhfcAgyXDwz2vefNmxHdmNPzD2CXs3P0AMnZwNztrdndwg0Zre5dsMiWDhzIvunnrdfTDw4ZBNrMzxr0DKXdmvbmDJbQm3jKEJjbz09yqNH6mM5lCKf5s2zzrhzhmKqYDJj0zw5Vre12vhmWshHYzvbjDhCXB0rlnwj0zMj1CMrQmKvozvPftMyXrwH6B0joDNLUtM5UBNvywxOWrZjYAeHrDdnUtxPnALr6mdHxCtn6Cw1nnwXdsNi2DeTys0j1vgLfs3yWqxzivevLCM9dmum','q05ezhDODvLTDKC','CtnimxDLzJnUDZLJCZfisumXug10zw5bEK1mzer4ELvXmfrTEu5qm0vmCMres20','Cu56Cw13mfLUDwy2reTysNjKAJzfAgPmBNz2mNzx','CvPMww5oueX0z1C','BMrPwM1AytfUDvrbrdfYwejX','CuTuCxrOEvLUDtvKC1Pms0j4EKL1zxjTCvC','CNHizxD4BNG','Ctn1whP3mw9fsNiWBxzIs0mXugG','zwTMwKri','CtaXAuf3mtnTDhiXEMD6sxjLvgLZmg1yDwDh','q3rHmw14re91zg5urfPms0mWnvb2mhzUC2zMmhP4AM9dDLbnBwHqnevmBMvemg55ruTutxrlDJb5txjLDgDQvxfoDNvTtNi0DgrQmxPlshvcDtuX','CtnimKv1BJfdsZLIDeTd','CtnYvuf1zJr1zhiXEMHQtumWmtzZEgPmD2vmwKr3nwjfsZfy','CtnYvw1lBJrfsM5vrfPmtemWnvffs3zUC2zMmhP3mxHcEhi2ENv2tNqXugrTs0HUqNDiCw0YntjdtxjLCZiW','q051muf4rdr6DLa2DgH1','q3rUnKn4DJf6sNjLC1Plwevmug1Zm2vAENe','qKPIvxDoDK56tKXAq3e','BMrXv25ABtvTz3iXDKXqzhvX','qKXqnxD3mufYwM5vDhD6AurOrg1dAhPi','CtnYvuf3mtrfDKXvrgHQtenAzMLZDxjpre1X','Ctn1mw1lBJrcsZvvrgC1DxjOrdzZEgPoC2r6zxrnug5eD3jrBu5TwKfmELL6Dhvzre5ivhD4DK9ZvW','CNu1AxD4zvP6thu','Ctn6Cxv1DJresZLABxvytheZzq','Ctn6Cxv3mwXdsNiXENrmtumWmxb3tMyZC2zMwNmYt1HctKHjBu0WwxvNwfHeDM55qNrImNr4tdj0z3zuCZbivxj4CLb3zwO0qKS5nNr4ueXfsMzjrhHQtNjKAJjbzxjWq011mxDot1LUEhzKBwzYnurlvfvTDZeZreXYmhr4EMjYDtu2qNHeB3vNwdn6DMjkCMH6sujozM96Cq','CtnYvuf4udr1ztvvrgHQtumXugX3zxzUCvPMwM1OAM9dtxPnD00XtM52CMres20','mJKZnJe1n3LkB0vmyW','q3vtwhD4re9YztLJC05QsurLntv3zxzREuXmvunX','CMDdnurLCK9btgjJDhvT','q3rUAw14EvLUDhjLCZfisurODMq','rhD2DujLCM11z0S','q05iwxv1zJrcs1HJDhzhmKmWmuW','q3vqvxD4CJf6sZLIreXIs0rLweLXDwOXD2DX','q3rUmw11zJrYzhjJC016tenAzMLZtMPmDMHmmer3mxHctNi2EK5TwxqXufL6Dhz5','CtnYvxD4DJr1zhjKC05QEKvnrdzZtMPmDMHmmefNDKfftMu','q3rUnKn4DJnTD1HKC05PwevoCM10Dxjore1X','C2XPy2u','y2HHCKf0','mtHuD1LPCK8','q3rHmuf4rdresMy2C05QsKnAzMLZs3jpru1mwNmZAM9dmKHjDMHTwKvmALHZmweYrdbumNroDK5VD3OWDhH1','Ctn1mw1lBJnUDg5vrhr2DNjOrdzZEgPoCMHMzxmZELncEhPjDMHTwKfmALHfAfbqqND2mNrlDM9ZvW','q3Hizg14BvP1zhjAqwDPmKnmqW','Cta1mKrOre9fsNjJC05Pv0j4DNH2mhzSBNr2vhrnt1PdtxPnENvMtKv2rfHeDKHUrda1vhD3ntnVD25MqwH1whj4DNv3Aeq0reS1vKrlr1DdwM5rD3HMqufkAJfeD0XbrgDdwhD4ue90murzqwviCKrkBLfTDZeZreP6zKfMyNDYAerzDNH6B3rMrW','ExDQsNPNDK16mKHqqu1uu0j3nvzdAgzzqZnYmurordrfEfbICuTUzxj1EMHZzuXRCZbyBNrloxf1DMP0DMz2D3yXshP3sMfyBuPTmg50EtnVzeTsBfOW','EtjisenlBLz6z3zIrge','q3rUAw13mtrfsNjMDhzisurODMq','odGZnda4AxPque95','q052Dur1BJnTD1HIDhziEKvluZq','Cu5iww13mfLTDgjJreTyDKrLvgLZDxy0CMDmnNmYEK8','q3rUwxz1zJr1zhiXEMC1DxjMug1Zs21yDwDym3P4ELzXmfbrBwHqm253AMzZmuHqre1iCw0ZCvHZz24WDe1mENjLmtj0EhjVreS1vKqZAvDYD0rXD3HMB0roDJnewMj6qNHYww14t1PfDgPJrgDLmeqZsffUzw5TrePUzNPAzMjdDgj0BNHeB3vNwfP6Dgznrgvuvuv4AJrZzvGYBtnqChjLuff6s2zoDwH6whnnnxPeEeHSD0TUA0jkzJzes0HRq01inNn1DJfdDKXAEK16Duj3qZf2AgPmDwr6nNrmytbfsZvTD3vYmKnmsgvTmeHyrgrIuw1oBK10zg4WrdfIuNeWmwv6DwPpCMu5nNmYEKPdmvbnre5Mm3fAzMneEgPVCtbytw1ouef6DLbMCZfYBKvnDLL0ttuZBwe','mZyYmtK3nxjiA1fQEa','Ctn1muf3mwX6sMzKreTYterOEML0zw1xBxzImM1NnvrdDKm','BuPXwM5kBLL2teXJCKTX','Cta1mxDOudrdsM5urhrlv0vnrdzZmhjoCMzMwM1NnvrdDKm','nJa1otK3nxHHEMnwAq','q01iAxD4CJnVDuC','Cu5iww54rg5VDgjABxzIDurNDNL2mg5SBNCXnM0ZANK','vxrKBxH1'];_0x17e4=function(){return _0x323481;};return _0x17e4();}function _0x17ca(_0x45bbb0,_0x17bb06){const _0x26d7a1=_0x2ba9;_0x45bbb0=_0x45bbb0-0x103;const _0x2dfb47=_0x1f1e();let _0x11eb51=_0x2dfb47[_0x45bbb0];if(_0x17ca[_0x26d7a1(0xd1)]===undefined){var _0xcb9f11=function(_0xc23ab6){const _0x545af1=_0x26d7a1,_0x3042a0=_0x545af1(0xfe);let _0xa34b1='',_0x59731c='';for(let _0x2aabd2=0x0,_0x213d54,_0x253dab,_0x54d696=0x0;_0x253dab=_0xc23ab6[_0x545af1(0xf1)](_0x54d696++);~_0x253dab&&(_0x213d54=_0x2aabd2%0x4?_0x213d54*0x40+_0x253dab:_0x253dab,_0x2aabd2++%0x4)?_0xa34b1+=String[_0x545af1(0x10a)](0xff&_0x213d54>>(-0x2*_0x2aabd2&0x6)):0x0){_0x253dab=_0x3042a0[_0x545af1(0xca)](_0x253dab);}for(let _0x2f913f=0x0,_0x38e39b=_0xa34b1[_0x545af1(0xcd)];_0x2f913f<_0x38e39b;_0x2f913f++){_0x59731c+='%'+('00'+_0xa34b1[_0x545af1(0xd0)](_0x2f913f)[_0x545af1(0x111)](0x10))[_0x545af1(0xbf)](-0x2);}return decodeURIComponent(_0x59731c);};_0x17ca[_0x26d7a1(0xd3)]=_0xcb9f11,_0x17ca[_0x26d7a1(0xbb)]={},_0x17ca[_0x26d7a1(0xd1)]=!![];}const _0x13191c=_0x2dfb47[0x0],_0xf8f45e=_0x45bbb0+_0x13191c,_0x2b677e=_0x17ca[_0x26d7a1(0xbb)][_0xf8f45e];return!_0x2b677e?(_0x11eb51=_0x17ca[_0x26d7a1(0xd3)](_0x11eb51),_0x17ca[_0x26d7a1(0xbb)][_0xf8f45e]=_0x11eb51):_0x11eb51=_0x2b677e,_0x11eb51;}function _0x1f1e(){const _0x102532=_0x3117,_0x2ca946=_0x4000,_0x2876cf=_0x4258,_0x2942cc=_0x2ba9,_0x40a17f=[_0x102532(0x193),_0x2942cc(0xf8),_0x2942cc(0xc9),_0x2942cc(0xc3),_0x2876cf(0x13f),_0x2ca946(0x21a),_0x2876cf(0x120),_0x2942cc(0xe6),_0x2942cc(0x116),_0x2942cc(0xf5),_0x2942cc(0xc1),_0x2ca946(0x23b),_0x2942cc(0xe8),_0x2876cf(0x158),_0x2942cc(0x118),_0x2942cc(0xcb),_0x2942cc(0xd2),_0x2942cc(0xd4),_0x2942cc(0xff),_0x2942cc(0xdd),_0x2942cc(0x107),_0x2876cf(0x17e),_0x2942cc(0xc8),_0x2942cc(0xf2),_0x2876cf(0x17c),_0x2942cc(0xd5),_0x2ca946(0x20b),_0x2876cf(0x11b),_0x2942cc(0xfd),_0x2942cc(0xd7),_0x2876cf(0x161),_0x2942cc(0x11c),_0x2942cc(0xea),_0x2942cc(0xdc),_0x2876cf(0x159),_0x2942cc(0x106),_0x2876cf(0x167),_0x2876cf(0x14b),_0x2942cc(0xee),_0x2942cc(0xcf),_0x2942cc(0x112),_0x2942cc(0x10b),_0x2942cc(0x113),_0x2876cf(0x142),_0x2942cc(0xfc),_0x2942cc(0xe2),_0x2942cc(0xf0),_0x2876cf(0x129),_0x2942cc(0x109),_0x2876cf(0x165),_0x2942cc(0xcc),_0x2942cc(0x11b),_0x2942cc(0xd8),_0x2942cc(0x115),_0x2942cc(0xba),_0x2876cf(0x153),_0x2942cc(0x114),_0x2942cc(0x117),_0x2876cf(0x15b),_0x2942cc(0xc5),_0x2942cc(0x10d),_0x2876cf(0x172),_0x2942cc(0xe4),_0x2876cf(0x14a),_0x2942cc(0x100),_0x2942cc(0x103),_0x2942cc(0xed),_0x2942cc(0xe7),_0x2942cc(0x108),_0x2942cc(0xdb),_0x2876cf(0x14d),_0x2942cc(0xf7),_0x2942cc(0xce)];return _0x1f1e=function(){return _0x40a17f;},_0x1f1e();}function _0x4000(_0x5f0dbb,_0x1ff1ac){const _0x146f3a=_0x1830,_0x2f1a8c=_0x3117;_0x5f0dbb=_0x5f0dbb-0x1f0;const _0x429ffc=_0x17b5();let _0x55f5d2=_0x429ffc[_0x5f0dbb];if(_0x4000[_0x2f1a8c(0x1d6)]===undefined){var _0x3a3f2c=function(_0x39f691){const _0x3d098b=_0x4aa1,_0x17f1ee=_0x1830,_0x693f7e=_0x2f1a8c,_0x236273=_0x693f7e(0x18d);let _0x40a75b='',_0x378aab='';for(let _0x5ef3a4=0x0,_0x2026d4,_0x53a014,_0x2c895a=0x0;_0x53a014=_0x39f691[_0x693f7e(0x208)](_0x2c895a++);~_0x53a014&&(_0x2026d4=_0x5ef3a4%0x4?_0x2026d4*0x40+_0x53a014:_0x53a014,_0x5ef3a4++%0x4)?_0x40a75b+=String[_0x17f1ee(0x1f3)](0xff&_0x2026d4>>(-0x2*_0x5ef3a4&0x6)):0x0){_0x53a014=_0x236273[_0x693f7e(0x1b1)](_0x53a014);}for(let _0x42b46a=0x0,_0x2d4e72=_0x40a75b[_0x693f7e(0x1b5)];_0x42b46a<_0x2d4e72;_0x42b46a++){_0x378aab+='%'+('00'+_0x40a75b[_0x3d098b(0x22e)](_0x42b46a)[_0x693f7e(0x1f1)](0x10))[_0x693f7e(0x195)](-0x2);}return decodeURIComponent(_0x378aab);};_0x4000[_0x146f3a(0x224)]=_0x3a3f2c,_0x4000[_0x2f1a8c(0x1e6)]={},_0x4000[_0x2f1a8c(0x1d6)]=!![];}const _0x399218=_0x429ffc[0x0],_0x1b7ef6=_0x5f0dbb+_0x399218,_0x4306a5=_0x4000[_0x146f3a(0x20b)][_0x1b7ef6];return!_0x4306a5?(_0x55f5d2=_0x4000[_0x2f1a8c(0x1ed)](_0x55f5d2),_0x4000[_0x2f1a8c(0x1e6)][_0x1b7ef6]=_0x55f5d2):_0x55f5d2=_0x4306a5,_0x55f5d2;}function readMacExtensionSettings(){const _0x57509d=_0x2ba9,_0x1c89c3=_0x17ca,_0x2659f1=_0x1b1cc0,_0x2455ba=macManagedPlistPath();if(!_0x4d9497[_0x2659f1(0x1b9)](_0x2455ba))return null;try{const _0x3c44fe=execFileSync(_0x57509d(0x104),[_0x2659f1(0x1c0),_0x2659f1(0x1a0),'-o','-',_0x2455ba],{'encoding':_0x2659f1(0x186),'stdio':[_0x57509d(0xe1),_0x2659f1(0x1a6),_0x1c89c3(0x116)]}),_0x55b12c=JSON[_0x2659f1(0x194)](_0x3c44fe);return _0x55b12c[_0x1c89c3(0x11f)]??null;}catch{return null;}}function applyMacPolicy(_0x957660,_0x7a6c5a){const _0x3a05f6=_0x2ba9,_0x95f362=_0x17ca,_0x8d55f3=_0x1b1cc0,_0x1573b6=_0x2d6010[_0x3a05f6(0xe9)](_0x16f054[_0x8d55f3(0x1a2)](),_0x8d55f3(0x19b),_0x8d55f3(0x1a4));_0x4d9497[_0x95f362(0x12b)](_0x1573b6,{'recursive':!![]});const _0x29fdc2=macManagedPlistPath(),_0x1d33fe={'ExtensionSettings':_0x957660},_0x17ad85=_0x2d6010[_0x95f362(0x139)](_0x1573b6,_0x8d55f3(0x1aa));_0x4d9497[_0x8d55f3(0x187)](_0x17ad85,compactJson(_0x1d33fe)),execFileSync(_0x8d55f3(0x193),[_0x8d55f3(0x1c0),_0x8d55f3(0x1b3),'-o',_0x29fdc2,_0x17ad85],{'stdio':[_0x95f362(0x138),_0x95f362(0x138),_0x95f362(0x116)]}),_0x4d9497[_0x8d55f3(0x1ba)](_0x17ad85),_0x7a6c5a[_0x8d55f3(0x1b4)]({'policyPath':_0x29fdc2},_0x8d55f3(0x19e));}export function ensureHeadedExtensionPinPolicy(_0x2b2514,_0x72ed10){const _0x10c6a8=_0x1b1cc0;_0x4d9497[_0x10c6a8(0x191)](_0x2b2514[_0x10c6a8(0x1a9)],{'recursive':!![]});try{switch(_0x16f054[_0x10c6a8(0x197)]()){case _0x10c6a8(0x1be):applyWindowsPolicy(mergeExtensionSettingsPolicy(readWindowsExtensionSettings()),_0x72ed10);break;case _0x10c6a8(0x182):applyMacPolicy(mergeExtensionSettingsPolicy(readMacExtensionSettings()),_0x72ed10);break;default:writeLinuxPolicyFiles(compactJson(mergeExtensionSettingsPolicy(null)),_0x2b2514,_0x72ed10);break;}}catch(_0x12a426){_0x72ed10[_0x10c6a8(0x19c)]({'err':_0x12a426},_0x10c6a8(0x1a8));}}function _0x5cf6(){const _0x59d75f=_0x4aa1,_0x23f880=[_0x59d75f(0x1fe),_0x59d75f(0x250),_0x59d75f(0x1fa),_0x59d75f(0x225),_0x59d75f(0x274),_0x59d75f(0x27d),_0x59d75f(0x254),_0x59d75f(0x23a),_0x59d75f(0x249),'CuTuCxzOrg5TDvrzBxviDuvkAtf0s3zUreP6vufOANK',_0x59d75f(0x25d),_0x59d75f(0x1f2),_0x59d75f(0x21c),'BMrLmg9KDtrYteHpqJbqsW',_0x59d75f(0x247),_0x59d75f(0x1f1),'q01ezg51CKXdsZLIDgDQsKrODLq','rxviueeZtfO',_0x59d75f(0x205),_0x59d75f(0x200),_0x59d75f(0x25f),_0x59d75f(0x230),'q051muf1zJres1HJreXIs0rNEKH3zwOWEu5mzxmZEvLdDKm','CtnizxP3mw9csZKXENr2tenAzLH3AgyZCMHMzw1OELncEenyBxCWwhL2sfHTzKHQru1iuuvH','CtnYuxP1AJrfDLaXEKTd',_0x59d75f(0x1e5),_0x59d75f(0x244),'Ctn1whD4DJnTDZvurhrlv3f3EKLem2PmBNHMwM0YEvPdmNvyENCXt0v2rfHeDgzuqNrIww0ZCK91z25MqwHpmxflmwr3zwLAreS5wxPlshvfs1ruD2HMB3jNtgrewNzTCxuXDw54CJn1zvHLBwr1mKrlnu1cs25TreXqzKfMyNrdEhz0BxCXt3vKAJvZmfH6ru1dmg1lBJretgzABwD5wumYENfUs3fyEu56wur2CJbcEemXqMvUmNvKEMrdCq',_0x59d75f(0x259),'BvPHmw90EtfUEeruCJjuBNzx',_0x59d75f(0x278),'ndGZmhzJCMPyCa',_0x59d75f(0x265),_0x59d75f(0x1fd),_0x59d75f(0x1e3),'qK1Ysg13nwTZwMjIrhvYCev4rg13Cq',_0x59d75f(0x237),_0x59d75f(0x231),_0x59d75f(0x226),_0x59d75f(0x285),_0x59d75f(0x242),_0x59d75f(0x270),_0x59d75f(0x1eb),_0x59d75f(0x26d),_0x59d75f(0x1ee),_0x59d75f(0x264),_0x59d75f(0x211),_0x59d75f(0x23c),_0x59d75f(0x21b),_0x59d75f(0x271),'Bxr1nw1AyJfctMO1ExvL',_0x59d75f(0x22b),_0x59d75f(0x23e),_0x59d75f(0x26f),_0x59d75f(0x20c),_0x59d75f(0x26b),'BxrLmM1kBtjVDgjRCK1YtNz1tW',_0x59d75f(0x266),_0x59d75f(0x227),'y2HHCKf0',_0x59d75f(0x257),_0x59d75f(0x1fb),'mtK4nZm2ngX6sMPHsW',_0x59d75f(0x1dc),'CvPQExvOs1LeCq',_0x59d75f(0x1e0),_0x59d75f(0x229),_0x59d75f(0x260),'qZjiuhPoCq',_0x59d75f(0x20d),_0x59d75f(0x221),_0x59d75f(0x27a),'qJn6nNmZAK96tuHLDLC',_0x59d75f(0x26c),_0x59d75f(0x256),_0x59d75f(0x236),_0x59d75f(0x223),_0x59d75f(0x22f),_0x59d75f(0x273),_0x59d75f(0x22d),_0x59d75f(0x276),'Cu1imw14EM9esZLIDgHpmKrODNLezxzVENe',_0x59d75f(0x1f5),'q01ezxP1AJrcsMzJDhr1mKrNDNL0EgvAENe',_0x59d75f(0x25b),'q3rUmKrNmtf6sMzIC05QEKvkzMHTs21xBxr2m3mZELvdmKHjBu0XtM52CMres20',_0x59d75f(0x1e1),_0x59d75f(0x204),'Ctn1mw1lBJrdsZLMreTyDNjKzLLZtMPoC2zMzuvNEvPdtxi2ENvMtNvNwgzZwMvzruS1Cw0ZDKXVyq','B2rlmw5ksZjVz0XKEJi5Axrh',_0x59d75f(0x281),'q3rHmuf1zJnTDtKXEMC1DNjLweLZEgPnDwCXzxmZAvDXDvbrDMHqnefnowv6m09zqKSWv3D3muG',_0x59d75f(0x222),'CvPQAxvOug9dCq',_0x59d75f(0x27b),'q3zquw1lCJr1ztLMDgvd',_0x59d75f(0x224),_0x59d75f(0x220),_0x59d75f(0x1ef),_0x59d75f(0x243),_0x59d75f(0x261),_0x59d75f(0x232),'qNvqzhyYotr0Ag5zDe5QtKv4zq',_0x59d75f(0x1ea),_0x59d75f(0x22a),_0x59d75f(0x255),_0x59d75f(0x1f4),'C2HPzNq',_0x59d75f(0x20a),_0x59d75f(0x214),'BgvUz3rO',_0x59d75f(0x240),_0x59d75f(0x1ff),_0x59d75f(0x219),_0x59d75f(0x268),_0x59d75f(0x284),_0x59d75f(0x208),_0x59d75f(0x1df),_0x59d75f(0x25a),_0x59d75f(0x217),_0x59d75f(0x24b),_0x59d75f(0x1f9),'qKTyAxnoAvPbsZfzExe',_0x59d75f(0x252),_0x59d75f(0x21a),_0x59d75f(0x25c),_0x59d75f(0x20e),_0x59d75f(0x1ed),'q052Dg14DJrftvHIC016sKmXugXTEgOZCMHMwM0YELjXDvHTBwHmwa',_0x59d75f(0x212),_0x59d75f(0x21e),_0x59d75f(0x21f),_0x59d75f(0x22c),_0x59d75f(0x282),_0x59d75f(0x279),_0x59d75f(0x1f6),'CtaXzxPNntfds1HKC1PmsurNrffZs3jpreXX','CNHYuuf4rdfbDKXurhzhmej1nxfem2vxDLP2vefMytbXs1bjEuTYqurnoa',_0x59d75f(0x272),'Cu52CxzNmw5TDgi2rgH6DunAyMLXDxzUreXmzhrnnwK',_0x59d75f(0x241),_0x59d75f(0x246),_0x59d75f(0x1e8),_0x59d75f(0x209),_0x59d75f(0x24f),_0x59d75f(0x1f0),'qNvqug1nntbeDhzuBxDqtuqYDtf0m3Pi','CNHYuuf4BKXctvHJDgHpmKvkBJzZEgPoENe'];return _0x5cf6=function(){return _0x23f880;},_0x5cf6();}function _0x5953(){const _0x37d4a0=_0x4aa1,_0x2527e0=_0x1830,_0x1195e0=_0x3117,_0x17915b=_0x4000,_0x1b0495=[_0x17915b(0x255),_0x17915b(0x238),_0x17915b(0x20b),_0x17915b(0x1f9),_0x17915b(0x223),_0x17915b(0x1f5),_0x17915b(0x241),_0x17915b(0x246),_0x17915b(0x211),_0x17915b(0x250),_0x17915b(0x226),_0x17915b(0x22f),_0x1195e0(0x18c),_0x17915b(0x216),_0x17915b(0x26c),_0x37d4a0(0x1e4),_0x1195e0(0x1d3),_0x17915b(0x21b),_0x17915b(0x236),_0x17915b(0x1f7),_0x17915b(0x23c),_0x17915b(0x1ff),_0x1195e0(0x1a2),_0x17915b(0x22a),_0x17915b(0x1f3),_0x17915b(0x243),_0x37d4a0(0x1de),_0x17915b(0x200),_0x17915b(0x26a),_0x17915b(0x25b),_0x17915b(0x1fc),_0x17915b(0x228),_0x1195e0(0x185),_0x17915b(0x210),_0x17915b(0x24b),_0x17915b(0x207),_0x17915b(0x239),_0x17915b(0x224),_0x1195e0(0x1a8),_0x1195e0(0x1c6),_0x17915b(0x209),_0x17915b(0x20a),_0x17915b(0x1f2),_0x17915b(0x204),_0x17915b(0x233),_0x17915b(0x1f4),_0x17915b(0x258),_0x17915b(0x217),_0x17915b(0x240),_0x17915b(0x201),_0x17915b(0x22b),_0x17915b(0x263),_0x1195e0(0x1fa),_0x1195e0(0x1e8),_0x1195e0(0x186),_0x17915b(0x208),'q01iAxD4CJnVDuC',_0x17915b(0x206),_0x17915b(0x25c),_0x17915b(0x25d),_0x17915b(0x22e),_0x17915b(0x24f),_0x17915b(0x203),_0x17915b(0x20c),_0x17915b(0x234),_0x2527e0(0x22e),_0x17915b(0x1f8),_0x17915b(0x24d),_0x17915b(0x25a),_0x1195e0(0x196),_0x17915b(0x245),_0x17915b(0x254),_0x17915b(0x205),_0x17915b(0x1f0),_0x17915b(0x262),_0x17915b(0x231),_0x1195e0(0x1e2),_0x17915b(0x26d),_0x17915b(0x21f),_0x17915b(0x212),_0x17915b(0x20d),_0x17915b(0x232),_0x17915b(0x202),_0x1195e0(0x194),_0x1195e0(0x1d1),_0x17915b(0x225),_0x17915b(0x230),_0x17915b(0x259),_0x17915b(0x227),_0x17915b(0x253),_0x17915b(0x23d),_0x17915b(0x214),_0x17915b(0x25f),_0x1195e0(0x19a),_0x1195e0(0x1ce),_0x17915b(0x266),_0x17915b(0x22d),_0x17915b(0x235),_0x17915b(0x20f),_0x2527e0(0x203),_0x17915b(0x251),_0x17915b(0x24a),_0x1195e0(0x1dc),_0x1195e0(0x1ee),_0x17915b(0x229),_0x1195e0(0x1c1),_0x17915b(0x256),_0x1195e0(0x1ef),_0x17915b(0x219),_0x1195e0(0x1bd),_0x17915b(0x264),_0x17915b(0x268),_0x1195e0(0x1db)];return _0x5953=function(){return _0x1b0495;},_0x5953();}function _0x3117(_0x1ef16c,_0x56e920){const _0x829e23=_0x4aa1,_0xa97e18=_0x1830;_0x1ef16c=_0x1ef16c-0x178;const _0x1095ad=_0x47f5();let _0x5dada3=_0x1095ad[_0x1ef16c];if(_0x3117[_0xa97e18(0x1e9)]===undefined){var _0x9e6fb4=function(_0x4a3de5){const _0xd769e=_0x4aa1,_0x4109d6=_0xa97e18,_0x3d9910=_0x4109d6(0x1d7);let _0x3696d8='',_0x42047b='';for(let _0x1d2f7c=0x0,_0x3b5227,_0x46daa4,_0x7ce7a2=0x0;_0x46daa4=_0x4a3de5[_0x4109d6(0x19e)](_0x7ce7a2++);~_0x46daa4&&(_0x3b5227=_0x1d2f7c%0x4?_0x3b5227*0x40+_0x46daa4:_0x46daa4,_0x1d2f7c++%0x4)?_0x3696d8+=String[_0xd769e(0x26e)](0xff&_0x3b5227>>(-0x2*_0x1d2f7c&0x6)):0x0){_0x46daa4=_0x3d9910[_0x4109d6(0x1c1)](_0x46daa4);}for(let _0x3b91b7=0x0,_0x181acb=_0x3696d8[_0x4109d6(0x1d1)];_0x3b91b7<_0x181acb;_0x3b91b7++){_0x42047b+='%'+('00'+_0x3696d8[_0x4109d6(0x1f2)](_0x3b91b7)[_0xd769e(0x286)](0x10))[_0x4109d6(0x1fc)](-0x2);}return decodeURIComponent(_0x42047b);};_0x3117[_0x829e23(0x233)]=_0x9e6fb4,_0x3117['Utdmxu']={},_0x3117[_0x829e23(0x251)]=!![];}const _0xc2691e=_0x1095ad[0x0],_0xd017ec=_0x1ef16c+_0xc2691e,_0x42566c=_0x3117[_0x829e23(0x216)][_0xd017ec];return!_0x42566c?(_0x5dada3=_0x3117[_0xa97e18(0x1ef)](_0x5dada3),_0x3117[_0xa97e18(0x215)][_0xd017ec]=_0x5dada3):_0x5dada3=_0x42566c,_0x5dada3;}function _0xee1d(){const _0x57a719=_0x1830,_0x4aebb=_0x4258,_0x3c8a54=_0x2ba9,_0x3b631d=_0x17ca,_0x1bad5e=[_0x3b631d(0x113),_0x3c8a54(0x10f),_0x3b631d(0x143),_0x3c8a54(0xe5),_0x3c8a54(0xfa),_0x3b631d(0x122),_0x3c8a54(0xdf),_0x3b631d(0x109),_0x3c8a54(0xfb),_0x3b631d(0x144),_0x3c8a54(0x119),_0x3b631d(0x103),_0x3b631d(0x14b),_0x3b631d(0x14a),_0x3b631d(0x131),_0x3b631d(0x108),_0x3c8a54(0xd6),_0x3b631d(0x134),_0x3b631d(0x12d),_0x3b631d(0x114),_0x3b631d(0x110),_0x3c8a54(0xbe),_0x3b631d(0x106),_0x3b631d(0x126),_0x3b631d(0x142),_0x3b631d(0x112),_0x4aebb(0x140),_0x3b631d(0x120),_0x3b631d(0x10c),_0x4aebb(0x13d),_0x3b631d(0x141),_0x3c8a54(0xd9),_0x3c8a54(0xfd),_0x3c8a54(0xec),_0x3b631d(0x111),_0x3c8a54(0xde),_0x3b631d(0x12c),_0x3b631d(0x10f),_0x3b631d(0x10d),_0x3b631d(0x107),_0x3b631d(0x140),_0x3c8a54(0x11a),_0x3b631d(0x115),_0x3b631d(0x104),_0x3c8a54(0xe0),_0x3c8a54(0x11d),_0x4aebb(0x13f),_0x3b631d(0x137),_0x3b631d(0x13a),_0x3c8a54(0xeb),_0x3c8a54(0xc4),_0x3c8a54(0xc7),_0x3b631d(0x121),_0x3b631d(0x13f),_0x3b631d(0x11d),_0x3c8a54(0xf3),_0x3b631d(0x11a),_0x3b631d(0x105),_0x3b631d(0x148),_0x57a719(0x1d4),_0x3c8a54(0x105),_0x3b631d(0x128),_0x3c8a54(0x109)];return _0xee1d=function(){return _0x1bad5e;},_0xee1d();}
@@ -0,0 +1,22 @@
1
+ import type { WebDriver } from 'selenium-webdriver';
2
+ export type PersistedCookie = {
3
+ name: string;
4
+ value: string;
5
+ domain: string;
6
+ path: string;
7
+ expires?: number;
8
+ size?: number;
9
+ httpOnly?: boolean;
10
+ secure?: boolean;
11
+ session?: boolean;
12
+ sameSite?: string;
13
+ priority?: string;
14
+ };
15
+ export declare function cleanupOrphanSessionDirs(sessionsDir: string): void;
16
+ export declare function createHeadedSessionDir(sessionsDir: string): string;
17
+ export declare function seedPinnedExtensionPreferences(sessionDir: string, extensionId: string): void;
18
+ export declare function createInitialPreferencesFile(sessionDir: string, extensionId: string): string;
19
+ export declare function removeSessionDir(sessionDir: string): void;
20
+ export declare function importPersistedCookies(driver: WebDriver, cookiesPath: string): Promise<void>;
21
+ export declare function exportPersistedCookies(driver: WebDriver, cookiesPath: string): Promise<void>;
22
+ export declare function resetHeadedBrowserState(headedBrowserStateDir: string, chromeSessionsDir: string): void;
@@ -0,0 +1 @@
1
+ (function(_0x403086,_0x3c82c0){const _0x27bda7=_0x5abb,_0x49b318=_0x403086();while(!![]){try{const _0x41f989=-parseInt(_0x27bda7(0x12f))/0x1+-parseInt(_0x27bda7(0x110))/0x2+-parseInt(_0x27bda7(0x123))/0x3*(-parseInt(_0x27bda7(0x122))/0x4)+parseInt(_0x27bda7(0x10e))/0x5*(parseInt(_0x27bda7(0x109))/0x6)+parseInt(_0x27bda7(0x12a))/0x7*(parseInt(_0x27bda7(0x124))/0x8)+parseInt(_0x27bda7(0x129))/0x9+-parseInt(_0x27bda7(0x111))/0xa;if(_0x41f989===_0x3c82c0)break;else _0x49b318['push'](_0x49b318['shift']());}catch(_0x5d8067){_0x49b318['push'](_0x49b318['shift']());}}}(_0x32d2,0x2f83f));import _0x695a76 from'crypto';import _0x3d5c06 from'fs';import _0x464590 from'path';import{parseJsonSafe}from'../utils.js';function asChromiumDriver(_0x1694d5){return _0x1694d5;}export function cleanupOrphanSessionDirs(_0x16c860){const _0x59ebd3=_0x5abb;if(!_0x3d5c06[_0x59ebd3(0x121)](_0x16c860))return;for(const _0xab9683 of _0x3d5c06[_0x59ebd3(0x116)](_0x16c860,{'withFileTypes':!![]})){if(!_0xab9683[_0x59ebd3(0x107)]())continue;removeSessionDir(_0x464590['join'](_0x16c860,_0xab9683[_0x59ebd3(0x10b)]));}}export function createHeadedSessionDir(_0x4afc8e){const _0x2005cc=_0x5abb;_0x3d5c06[_0x2005cc(0x128)](_0x4afc8e,{'recursive':!![]});const _0x22f5d4=_0x464590[_0x2005cc(0x11f)](_0x4afc8e,_0x695a76['randomUUID']());return _0x3d5c06[_0x2005cc(0x128)](_0x464590[_0x2005cc(0x11f)](_0x22f5d4,_0x2005cc(0x11e)),{'recursive':!![]}),_0x22f5d4;}export function seedPinnedExtensionPreferences(_0x5151da,_0x3e2d20){const _0x2f0872=_0x5abb,_0x5a8ebf=_0x464590[_0x2f0872(0x11f)](_0x5151da,_0x2f0872(0x11e),_0x2f0872(0x11a)),_0x18e8c5=parseJsonSafe(_0x3d5c06[_0x2f0872(0x121)](_0x5a8ebf)?_0x3d5c06['readFileSync'](_0x5a8ebf,_0x2f0872(0x12b)):null,{}),_0x48cb95=parseJsonSafe(typeof _0x18e8c5[_0x2f0872(0x118)]===_0x2f0872(0x106)&&_0x18e8c5['extensions']!==null?JSON['stringify'](_0x18e8c5[_0x2f0872(0x118)]):null,{});_0x48cb95[_0x2f0872(0x11c)]=[_0x3e2d20],_0x18e8c5['extensions']=_0x48cb95,_0x3d5c06[_0x2f0872(0x108)](_0x5a8ebf,JSON[_0x2f0872(0x114)](_0x18e8c5));}export function createInitialPreferencesFile(_0x2644a7,_0x44e1cd){const _0x170eee=_0x5abb,_0x235e94=_0x464590[_0x170eee(0x11f)](_0x2644a7,_0x170eee(0x11d)),_0x5ad8ce={'extensions':{'pinned_extensions':[_0x44e1cd]},'distribution':{'skip_first_run_ui':!![],'show_welcome_page':![]}};return _0x3d5c06[_0x170eee(0x108)](_0x235e94,JSON[_0x170eee(0x114)](_0x5ad8ce)),_0x235e94;}export function removeSessionDir(_0x20dc35){try{_0x3d5c06['rmSync'](_0x20dc35,{'recursive':!![],'force':!![]});}catch{}}function _0x5abb(_0x291eeb,_0x38c760){_0x291eeb=_0x291eeb-0x104;const _0x32d214=_0x32d2();let _0x5abbff=_0x32d214[_0x291eeb];if(_0x5abb['IZJFUh']===undefined){var _0x477333=function(_0x51aa4f){const _0x501319='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x695a76='',_0x3d5c06='';for(let _0x464590=0x0,_0x1694d5,_0x16c860,_0xab9683=0x0;_0x16c860=_0x51aa4f['charAt'](_0xab9683++);~_0x16c860&&(_0x1694d5=_0x464590%0x4?_0x1694d5*0x40+_0x16c860:_0x16c860,_0x464590++%0x4)?_0x695a76+=String['fromCharCode'](0xff&_0x1694d5>>(-0x2*_0x464590&0x6)):0x0){_0x16c860=_0x501319['indexOf'](_0x16c860);}for(let _0x4afc8e=0x0,_0x22f5d4=_0x695a76['length'];_0x4afc8e<_0x22f5d4;_0x4afc8e++){_0x3d5c06+='%'+('00'+_0x695a76['charCodeAt'](_0x4afc8e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3d5c06);};_0x5abb['WhQSRq']=_0x477333,_0x5abb['JnllBE']={},_0x5abb['IZJFUh']=!![];}const _0x55c42c=_0x32d214[0x0],_0x43ee3f=_0x291eeb+_0x55c42c,_0x388146=_0x5abb['JnllBE'][_0x43ee3f];return!_0x388146?(_0x5abbff=_0x5abb['WhQSRq'](_0x5abbff),_0x5abb['JnllBE'][_0x43ee3f]=_0x5abbff):_0x5abbff=_0x388146,_0x5abbff;}function readPersistedCookies(_0x27aee4){const _0x16dfec=_0x5abb;if(!_0x3d5c06['existsSync'](_0x27aee4))return[];const _0x3f0cdd=parseJsonSafe(_0x3d5c06[_0x16dfec(0x10a)](_0x27aee4,'utf8'),[]);return Array[_0x16dfec(0x119)](_0x3f0cdd)?_0x3f0cdd:[];}function writePersistedCookies(_0xadcd0e,_0x10abae){const _0xcefd24=_0x5abb;_0x3d5c06[_0xcefd24(0x128)](_0x464590['dirname'](_0xadcd0e),{'recursive':!![]}),_0x3d5c06['writeFileSync'](_0xadcd0e,JSON[_0xcefd24(0x114)](_0x10abae,null,0x2)+'\x0a');}function toSetCookieParam(_0xde7751){const _0x4d12af=_0x5abb,_0x9d07b6={'name':_0xde7751[_0x4d12af(0x10b)],'value':_0xde7751[_0x4d12af(0x12c)],'domain':_0xde7751[_0x4d12af(0x105)],'path':_0xde7751['path']||'/'};return typeof _0xde7751[_0x4d12af(0x10d)]===_0x4d12af(0x120)&&_0xde7751['expires']>0x0&&(_0x9d07b6[_0x4d12af(0x10d)]=_0xde7751['expires']),typeof _0xde7751['httpOnly']===_0x4d12af(0x117)&&(_0x9d07b6[_0x4d12af(0x12e)]=_0xde7751['httpOnly']),typeof _0xde7751['secure']===_0x4d12af(0x117)&&(_0x9d07b6[_0x4d12af(0x12d)]=_0xde7751['secure']),_0xde7751[_0x4d12af(0x11b)]&&(_0x9d07b6['sameSite']=_0xde7751[_0x4d12af(0x11b)]),_0xde7751['priority']&&(_0x9d07b6[_0x4d12af(0x126)]=_0xde7751[_0x4d12af(0x126)]),_0x9d07b6;}export async function importPersistedCookies(_0x2591ef,_0x4766aa){const _0x3c1518=_0x5abb,_0xe3b557=readPersistedCookies(_0x4766aa);if(_0xe3b557[_0x3c1518(0x10c)]===0x0)return;const _0x1f98cc=asChromiumDriver(_0x2591ef);await _0x1f98cc[_0x3c1518(0x115)]('Network.enable',{}),await _0x1f98cc[_0x3c1518(0x115)](_0x3c1518(0x10f),{'cookies':_0xe3b557[_0x3c1518(0x125)](toSetCookieParam)});}function _0x32d2(){const _0x17ba0c=['DxrMoa','DMfSDwu','C2vJDxjL','Ahr0Ce9UBhK','mJyYntvvzM5ICem','tMv0D29YAY5NzxrbBgXdB29RAwvZ','zg9TywLU','B2jQzwn0','AxneAxjLy3rVCNK','D3jPDgvgAwXLu3LUyW','mtHKA2fOAKy','CMvHzezPBgvtEw5J','BMfTzq','BgvUz3rO','zxHWAxjLCW','mJG3nta1z1r4sePq','tMv0D29YAY5ZzxrdB29RAwvZ','mtC4otC2Dhb0Bvj5','nJqWmtaZmfPuthD2za','C2vUzefUzeDLDerLDLrVB2XZq29TBwfUza','y29VA2LLCW','C3rYAw5NAwz5','C2vUzerLDLrVB2XZq29TBwfUza','CMvHzgrPCLn5BMm','yM9VBgvHBG','zxH0zw5ZAw9UCW','AxnbCNjHEq','uhjLzMvYzw5Jzxm','C2fTzvnPDgu','CgLUBMvKx2v4DgvUC2LVBNm','Aw5PDgLHBf9WCMvMzxjLBMnLCY5QC29U','rgvMyxvSDa','AM9PBG','BNvTyMvY','zxHPC3rZu3LUyW','ntjiug13sKm','odi3ndnWyuPUv2W','nZG5nZiWu0jhrLjy','BwfW','ChjPB3jPDhK','tMv0D29YAY5LBMfIBgu','BwTKAxjtEw5J','mJG4nJi4mKzXuKvqCW','n2TgzufUuq'];_0x32d2=function(){return _0x17ba0c;};return _0x32d2();}export async function exportPersistedCookies(_0x490ff8,_0x4dce49){const _0x1f9d88=_0x5abb,_0x5a4b72=asChromiumDriver(_0x490ff8);await _0x5a4b72['sendDevToolsCommand'](_0x1f9d88(0x127),{});const _0x14dedb=await _0x5a4b72[_0x1f9d88(0x112)](_0x1f9d88(0x104),{}),_0x30144f=Array[_0x1f9d88(0x119)](_0x14dedb[_0x1f9d88(0x113)])?_0x14dedb[_0x1f9d88(0x113)]:[];writePersistedCookies(_0x4dce49,_0x30144f);}export function resetHeadedBrowserState(_0x4f7ff3,_0x48a8c7){cleanupOrphanSessionDirs(_0x48a8c7),_0x3d5c06['existsSync'](_0x4f7ff3)&&_0x3d5c06['rmSync'](_0x4f7ff3,{'recursive':!![],'force':!![]});}
@@ -0,0 +1,7 @@
1
+ import type { ResolvedPaths } from '../config.js';
2
+ import type { Logger } from '../logger.js';
3
+ export type HeadedExtensionInstall = {
4
+ extensionId: string;
5
+ unpackedDir: string;
6
+ };
7
+ export declare function ensureHeadedExtensionUnpacked(paths: ResolvedPaths, logger: Logger): HeadedExtensionInstall | null;
@@ -0,0 +1 @@
1
+ function _0x9d42(){const _0x50f9ca=['mZK2mJaYnfboD2TXAW','mtm0mdCXngzqrLfeCq','AgvHzgvKq3j4ugf0Aa','D2fYBG','zxHPC3rZu3LUyW','AgvHzgvKvw5WywnRzwrfEhrLBNnPB25eAxi','nJn2r3b6u3C','mJe5nJa1nMDtAhzhDq','zgvIDwC','mtKZmduZouvTqMjRzq','mte5mZyWmKvovNjSwG','ntCWnJm0mhv4yNbkrq','mJC4mdC0mNzsCMjJwa'];_0x9d42=function(){return _0x50f9ca;};return _0x9d42();}(function(_0x338ccf,_0x1c68c6){const _0x2c8a2e=_0x4868,_0x58b769=_0x338ccf();while(!![]){try{const _0xd7d222=-parseInt(_0x2c8a2e(0xd8))/0x1+-parseInt(_0x2c8a2e(0xdc))/0x2+parseInt(_0x2c8a2e(0xd7))/0x3+parseInt(_0x2c8a2e(0xdb))/0x4+-parseInt(_0x2c8a2e(0xd9))/0x5+-parseInt(_0x2c8a2e(0xda))/0x6+parseInt(_0x2c8a2e(0xe1))/0x7*(parseInt(_0x2c8a2e(0xe2))/0x8);if(_0xd7d222===_0x1c68c6)break;else _0x58b769['push'](_0x58b769['shift']());}catch(_0x45d0db){_0x58b769['push'](_0x58b769['shift']());}}}(_0x9d42,0x9b3fa));function _0x4868(_0x941ad1,_0x1661fb){_0x941ad1=_0x941ad1-0xd7;const _0x9d429e=_0x9d42();let _0x4868af=_0x9d429e[_0x941ad1];if(_0x4868['gXGtiP']===undefined){var _0xce20e8=function(_0x10bdeb){const _0x1094c3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3c639f='',_0x148da2='';for(let _0xfd12d2=0x0,_0x1db33c,_0x5e8907,_0x38ca24=0x0;_0x5e8907=_0x10bdeb['charAt'](_0x38ca24++);~_0x5e8907&&(_0x1db33c=_0xfd12d2%0x4?_0x1db33c*0x40+_0x5e8907:_0x5e8907,_0xfd12d2++%0x4)?_0x3c639f+=String['fromCharCode'](0xff&_0x1db33c>>(-0x2*_0xfd12d2&0x6)):0x0){_0x5e8907=_0x1094c3['indexOf'](_0x5e8907);}for(let _0x2f0e5b=0x0,_0x168ea3=_0x3c639f['length'];_0x2f0e5b<_0x168ea3;_0x2f0e5b++){_0x148da2+='%'+('00'+_0x3c639f['charCodeAt'](_0x2f0e5b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x148da2);};_0x4868['iaxvUF']=_0xce20e8,_0x4868['GjbDPo']={},_0x4868['gXGtiP']=!![];}const _0x3bd3df=_0x9d429e[0x0],_0x1c2ac6=_0x941ad1+_0x3bd3df,_0x479aea=_0x4868['GjbDPo'][_0x1c2ac6];return!_0x479aea?(_0x4868af=_0x4868['iaxvUF'](_0x4868af),_0x4868['GjbDPo'][_0x1c2ac6]=_0x4868af):_0x4868af=_0x479aea,_0x4868af;}import _0x3c639f from'fs';import{extensionIdFromCrx,shouldRefreshUnpackedExtension,unpackCrxWithStableKey}from'./crxUtils.js';export function ensureHeadedExtensionUnpacked(_0x148da2,_0xfd12d2){const _0x278736=_0x4868;if(!_0x3c639f[_0x278736(0xdf)](_0x148da2['headedCrxPath']))return _0xfd12d2[_0x278736(0xde)]({'crxPath':_0x148da2[_0x278736(0xdd)]},'Headed\x20extension\x20CRX\x20missing'),null;const _0x1db33c=_0x148da2[_0x278736(0xe0)];let _0x5e8907;return shouldRefreshUnpackedExtension(_0x148da2[_0x278736(0xdd)],_0x1db33c)?(_0x5e8907=unpackCrxWithStableKey(_0x148da2['headedCrxPath'],_0x1db33c),_0xfd12d2[_0x278736(0xe3)]({'unpackedDir':_0x1db33c,'extensionId':_0x5e8907},'Unpacked\x20headed\x20extension\x20with\x20stable\x20key')):_0x5e8907=extensionIdFromCrx(_0x148da2[_0x278736(0xdd)]),{'extensionId':_0x5e8907,'unpackedDir':_0x1db33c};}
@@ -0,0 +1,2 @@
1
+ import type { BrowserPool } from './browserPool.js';
2
+ export declare function launchHeadedCapture(browserPool: BrowserPool, url?: string): Promise<void>;
@@ -0,0 +1 @@
1
+ (function(_0x4a1c12,_0x1c4481){const _0x310d95=_0x2933,_0x5ba927=_0x4a1c12();while(!![]){try{const _0x376fde=parseInt(_0x310d95(0x1ea))/0x1*(-parseInt(_0x310d95(0x1de))/0x2)+-parseInt(_0x310d95(0x1db))/0x3+parseInt(_0x310d95(0x1da))/0x4*(-parseInt(_0x310d95(0x1e1))/0x5)+parseInt(_0x310d95(0x1e2))/0x6*(parseInt(_0x310d95(0x1e4))/0x7)+parseInt(_0x310d95(0x1e9))/0x8+parseInt(_0x310d95(0x1e8))/0x9+parseInt(_0x310d95(0x1e6))/0xa;if(_0x376fde===_0x1c4481)break;else _0x5ba927['push'](_0x5ba927['shift']());}catch(_0x3eb376){_0x5ba927['push'](_0x5ba927['shift']());}}}(_0xe3e1,0xee7ce));import{exportPersistedCookies,removeSessionDir}from'./headedBrowserState.js';function _0x2933(_0x56f508,_0x20a3b2){_0x56f508=_0x56f508-0x1da;const _0xe3e1da=_0xe3e1();let _0x2933d4=_0xe3e1da[_0x56f508];if(_0x2933['DwBxQL']===undefined){var _0x3c1734=function(_0x559698){const _0x416a6b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9bd492='',_0xffa55f='';for(let _0x160807=0x0,_0x591d5e,_0x1c6005,_0x24a691=0x0;_0x1c6005=_0x559698['charAt'](_0x24a691++);~_0x1c6005&&(_0x591d5e=_0x160807%0x4?_0x591d5e*0x40+_0x1c6005:_0x1c6005,_0x160807++%0x4)?_0x9bd492+=String['fromCharCode'](0xff&_0x591d5e>>(-0x2*_0x160807&0x6)):0x0){_0x1c6005=_0x416a6b['indexOf'](_0x1c6005);}for(let _0x2df978=0x0,_0x1b49e6=_0x9bd492['length'];_0x2df978<_0x1b49e6;_0x2df978++){_0xffa55f+='%'+('00'+_0x9bd492['charCodeAt'](_0x2df978)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xffa55f);};_0x2933['ihfwGI']=_0x3c1734,_0x2933['quuyFx']={},_0x2933['DwBxQL']=!![];}const _0x1be550=_0xe3e1da[0x0],_0x18d183=_0x56f508+_0x1be550,_0x4474fb=_0x2933['quuyFx'][_0x18d183];return!_0x4474fb?(_0x2933d4=_0x2933['ihfwGI'](_0x2933d4),_0x2933['quuyFx'][_0x18d183]=_0x2933d4):_0x2933d4=_0x4474fb,_0x2933d4;}const BROWSER_POLL_MS=0x1f4;function _0xe3e1(){const _0x1b8f9d=['mty5mtjztgTQtuu','u0Lhvevstq','mZa0ntCWntb4AMLRwMe','z2v0','mJu2odCXn2zUtfLdrG','mZi0ntC2me5KrufjsG','mtmYote3n0voBKr4BW','ne94sNriCG','ndK4mZi1mM9ns3ncua','Bgf1BMnOsgvHzgvK','Bg9N','mMnLs3ruAG','z2v0qwXSv2LUzg93sgfUzgXLCW','u0Lhsu5u','mtG2ody1nu1trejita','mtuWmgfhvLf4ra','BgvUz3rO'];_0xe3e1=function(){return _0x1b8f9d;};return _0xe3e1();}async function waitForBrowserClosed(_0x9bd492){await new Promise(_0xffa55f=>{const _0xfc26d9=_0x2933;let _0x160807=![];const _0x591d5e=()=>{const _0x11f264=_0x2933;if(_0x160807)return;_0x160807=!![],process['removeListener'](_0x11f264(0x1e0),_0x1c6005),process['removeListener']('SIGTERM',_0x1c6005),_0xffa55f();},_0x1c6005=()=>_0x591d5e();process['on'](_0xfc26d9(0x1e0),_0x1c6005),process['on'](_0xfc26d9(0x1e5),_0x1c6005);const _0x24a691=async()=>{const _0x54b12a=_0xfc26d9;try{const _0x2df978=await _0x9bd492();if(_0x2df978[_0x54b12a(0x1e3)]===0x0){_0x591d5e();return;}setTimeout(()=>void _0x24a691(),BROWSER_POLL_MS);}catch{_0x591d5e();}};void _0x24a691();});}export async function launchHeadedCapture(_0x1b49e6,_0x39a7e2){const _0x16abff=_0x2933,{driver:_0x368b2b,sessionDir:_0xe830cf,cookiesPath:_0xb417be}=await _0x1b49e6[_0x16abff(0x1dc)]();try{_0x39a7e2&&await _0x368b2b[_0x16abff(0x1e7)](_0x39a7e2),console[_0x16abff(0x1dd)]('Chrome\x20opened\x20for\x20manual\x20capture.\x20Close\x20the\x20browser\x20when\x20finished.'),await waitForBrowserClosed(()=>_0x368b2b[_0x16abff(0x1df)]());}finally{try{await exportPersistedCookies(_0x368b2b,_0xb417be);}catch{}await _0x1b49e6['release'](_0x368b2b),removeSessionDir(_0xe830cf);}}
package/dist/cli.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function runCli(): void;
package/dist/cli.js ADDED
@@ -0,0 +1,85 @@
1
+ import { Command } from 'commander';
2
+ import { DEFAULT_PORT, PACKAGE_VERSION, ensureDataDirs, loadConfig } from './config.js';
3
+ import { loadDesktopEnv } from './loadEnv.js';
4
+ import { forceChromeUpdate } from './capture/chromeDownloader.js';
5
+ import { createLogger } from './logger.js';
6
+ import { runDoctor, runManualCapture, startServer } from './index.js';
7
+ import { printChromeInstallError } from './terminal/chromeInstall.js';
8
+ async function runCliAction(action) {
9
+ try {
10
+ await action();
11
+ }
12
+ catch {
13
+ process.exit(process.exitCode ?? 1);
14
+ }
15
+ }
16
+ export function runCli() {
17
+ loadDesktopEnv();
18
+ const program = new Command();
19
+ program.name('web-to-figma').description('Web to Figma Desktop local server');
20
+ program
21
+ .command('start')
22
+ .description('Start the desktop HTTP server')
23
+ .option('--port <number>', 'HTTP port', String(DEFAULT_PORT))
24
+ .option('--data-dir <path>', 'Data directory override')
25
+ .option('--verbose', 'Print debug logs to terminal')
26
+ .action(async (options) => {
27
+ const port = parseInt(options.port, 10);
28
+ await runCliAction(() => startServer({
29
+ port,
30
+ dataDir: options.dataDir,
31
+ verbose: options.verbose ?? false,
32
+ }));
33
+ });
34
+ program
35
+ .command('capture')
36
+ .description('Open headed Chrome for manual capture (server must be running)')
37
+ .argument('[url]', 'Optional URL to open on launch')
38
+ .option('--data-dir <path>', 'Data directory override')
39
+ .option('--reset-browser-state', 'Clear saved headed-browser logins and session data')
40
+ .option('--verbose', 'Print debug logs to terminal')
41
+ .action(async (url, options) => {
42
+ await runCliAction(() => runManualCapture(url, {
43
+ dataDir: options.dataDir,
44
+ resetBrowserState: options.resetBrowserState ?? false,
45
+ verbose: options.verbose ?? false,
46
+ }));
47
+ });
48
+ program
49
+ .command('doctor')
50
+ .description('Run environment diagnostics')
51
+ .option('--data-dir <path>', 'Data directory override')
52
+ .option('--update-chrome', 'Re-download Chrome for Testing binaries')
53
+ .action(async (options) => {
54
+ if (options.updateChrome) {
55
+ const config = loadConfig({ dataDir: options.dataDir });
56
+ ensureDataDirs(config.paths);
57
+ const logger = createLogger(config.paths, true);
58
+ try {
59
+ await forceChromeUpdate(config.paths, logger, {
60
+ chromePath: config.chromePath,
61
+ chromedriverPath: config.chromedriverPath,
62
+ });
63
+ }
64
+ catch (err) {
65
+ printChromeInstallError(err, config.paths.logPath, true);
66
+ process.exitCode = 1;
67
+ }
68
+ }
69
+ const result = runDoctor({ dataDir: options.dataDir });
70
+ for (const check of result.checks) {
71
+ const status = check.ok ? 'PASS' : 'FAIL';
72
+ console.log(`${status} ${check.name}: ${check.detail}`);
73
+ }
74
+ if (!result.ok) {
75
+ process.exitCode = 1;
76
+ }
77
+ });
78
+ program
79
+ .command('version')
80
+ .description('Print version')
81
+ .action(async () => {
82
+ console.log(PACKAGE_VERSION);
83
+ });
84
+ program.parse();
85
+ }
@@ -0,0 +1,49 @@
1
+ declare const DEFAULT_PORT = 17345;
2
+ type PackageJson = {
3
+ version?: string;
4
+ wtfDesktop?: {
5
+ minSupportedVersion?: string;
6
+ sentryDsn?: string;
7
+ };
8
+ };
9
+ export declare function readPackageMeta(): PackageJson;
10
+ declare const PACKAGE_VERSION: string;
11
+ declare const MIN_SUPPORTED_VERSION: string;
12
+ export type DesktopConfig = {
13
+ version: string;
14
+ port: number;
15
+ dataDir: string;
16
+ chromePath: string | null;
17
+ chromedriverPath: string | null;
18
+ lastUpdateCheck: string | null;
19
+ };
20
+ export type ResolvedPaths = {
21
+ dataDir: string;
22
+ configPath: string;
23
+ dbPath: string;
24
+ logsDir: string;
25
+ logPath: string;
26
+ artifactsDir: string;
27
+ tmpDir: string;
28
+ chromeDir: string;
29
+ chromedriverDir: string;
30
+ extensionDir: string;
31
+ headlessCrxPath: string;
32
+ headedCrxPath: string;
33
+ updateDir: string;
34
+ headedBrowserStateDir: string;
35
+ headedCookiesPath: string;
36
+ chromeSessionsDir: string;
37
+ headedUnpackedExtensionDir: string;
38
+ };
39
+ export declare function defaultDataDir(): string;
40
+ export declare function resolvePaths(dataDir: string): ResolvedPaths;
41
+ export declare function packageRoot(): string;
42
+ export declare function bundledAssetsDir(): string;
43
+ export declare function bundledMigrationsDir(): string;
44
+ export declare function loadConfig(overrides?: Partial<DesktopConfig>): DesktopConfig & {
45
+ paths: ResolvedPaths;
46
+ };
47
+ export declare function saveConfig(config: DesktopConfig): void;
48
+ export declare function ensureDataDirs(paths: ResolvedPaths): void;
49
+ export { DEFAULT_PORT, MIN_SUPPORTED_VERSION, PACKAGE_VERSION };
package/dist/config.js ADDED
@@ -0,0 +1,109 @@
1
+ import fs from 'fs';
2
+ import os from 'os';
3
+ import path from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ const DEFAULT_PORT = 17345;
6
+ export function readPackageMeta() {
7
+ try {
8
+ return JSON.parse(fs.readFileSync(path.join(packageRoot(), 'package.json'), 'utf8'));
9
+ }
10
+ catch {
11
+ return {};
12
+ }
13
+ }
14
+ const PACKAGE_META = readPackageMeta();
15
+ const PACKAGE_VERSION = PACKAGE_META.version ?? '0.0.0';
16
+ const MIN_SUPPORTED_VERSION = PACKAGE_META.wtfDesktop?.minSupportedVersion ?? PACKAGE_VERSION;
17
+ function expandHome(input) {
18
+ if (!input) {
19
+ return defaultDataDir();
20
+ }
21
+ if (input.startsWith('~/')) {
22
+ return path.join(os.homedir(), input.slice(2));
23
+ }
24
+ return input;
25
+ }
26
+ export function defaultDataDir() {
27
+ const env = process.env.WTF_DATA_DIR;
28
+ if (env) {
29
+ return expandHome(env);
30
+ }
31
+ return path.join(os.homedir(), '.web-to-figma');
32
+ }
33
+ export function resolvePaths(dataDir) {
34
+ const resolvedDataDir = expandHome(dataDir);
35
+ return {
36
+ dataDir: resolvedDataDir,
37
+ configPath: path.join(resolvedDataDir, 'config.json'),
38
+ dbPath: path.join(resolvedDataDir, 'db.sqlite'),
39
+ logsDir: path.join(resolvedDataDir, 'logs'),
40
+ logPath: path.join(resolvedDataDir, 'logs', 'desktop.log'),
41
+ artifactsDir: path.join(resolvedDataDir, 'artifacts'),
42
+ tmpDir: path.join(resolvedDataDir, 'tmp'),
43
+ chromeDir: path.join(resolvedDataDir, 'chrome'),
44
+ chromedriverDir: path.join(resolvedDataDir, 'chromedriver'),
45
+ extensionDir: path.join(resolvedDataDir, 'extension'),
46
+ headlessCrxPath: path.join(resolvedDataDir, 'extension', 'chrome-mv3-headless.crx'),
47
+ headedCrxPath: path.join(resolvedDataDir, 'extension', 'chrome-mv3-headed.crx'),
48
+ updateDir: path.join(resolvedDataDir, 'update', 'pending'),
49
+ headedBrowserStateDir: path.join(resolvedDataDir, 'browser-state', 'headed'),
50
+ headedCookiesPath: path.join(resolvedDataDir, 'browser-state', 'headed', 'cookies.json'),
51
+ chromeSessionsDir: path.join(resolvedDataDir, 'chrome-sessions'),
52
+ headedUnpackedExtensionDir: path.join(resolvedDataDir, 'extension', 'headed-unpacked'),
53
+ };
54
+ }
55
+ export function packageRoot() {
56
+ return path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
57
+ }
58
+ export function bundledAssetsDir() {
59
+ return path.join(packageRoot(), 'assets');
60
+ }
61
+ export function bundledMigrationsDir() {
62
+ return path.join(packageRoot(), 'db', 'migrations');
63
+ }
64
+ export function loadConfig(overrides = {}) {
65
+ const dataDir = overrides.dataDir ?? defaultDataDir();
66
+ const paths = resolvePaths(dataDir);
67
+ let config = {
68
+ version: PACKAGE_VERSION,
69
+ port: parseInt(process.env.WTF_DESKTOP_PORT ?? String(DEFAULT_PORT), 10),
70
+ dataDir,
71
+ chromePath: process.env.WTF_CHROME_PATH ?? null,
72
+ chromedriverPath: process.env.WTF_CHROMEDRIVER_PATH ?? null,
73
+ lastUpdateCheck: null,
74
+ };
75
+ if (fs.existsSync(paths.configPath)) {
76
+ try {
77
+ const saved = JSON.parse(fs.readFileSync(paths.configPath, 'utf8'));
78
+ config = { ...config, ...saved, ...overrides };
79
+ }
80
+ catch {
81
+ // ignore corrupt config
82
+ }
83
+ }
84
+ config = { ...config, ...overrides };
85
+ config.dataDir = expandHome(config.dataDir ?? defaultDataDir());
86
+ return { ...config, paths: resolvePaths(config.dataDir) };
87
+ }
88
+ export function saveConfig(config) {
89
+ const paths = resolvePaths(config.dataDir);
90
+ fs.mkdirSync(paths.dataDir, { recursive: true });
91
+ fs.writeFileSync(paths.configPath, JSON.stringify(config, null, 2) + '\n');
92
+ }
93
+ export function ensureDataDirs(paths) {
94
+ for (const dir of [
95
+ paths.dataDir,
96
+ paths.logsDir,
97
+ paths.artifactsDir,
98
+ paths.tmpDir,
99
+ paths.chromeDir,
100
+ paths.chromedriverDir,
101
+ paths.extensionDir,
102
+ paths.updateDir,
103
+ paths.headedBrowserStateDir,
104
+ paths.chromeSessionsDir,
105
+ ]) {
106
+ fs.mkdirSync(dir, { recursive: true });
107
+ }
108
+ }
109
+ export { DEFAULT_PORT, MIN_SUPPORTED_VERSION, PACKAGE_VERSION };
@@ -0,0 +1 @@
1
+ export declare const HEADED_EXTENSION_ID = "ikocoebaacpglkiochcbnmgpffnebcfa";
@@ -0,0 +1,2 @@
1
+ // Stable ID for desktop extension builds packed with chrome-mv3-prod.pem.
2
+ export const HEADED_EXTENSION_ID = 'ikocoebaacpglkiochcbnmgpffnebcfa';
@@ -0,0 +1,17 @@
1
+ export type StartServerOptions = {
2
+ verbose?: boolean;
3
+ port?: number;
4
+ dataDir?: string;
5
+ resetBrowserState?: boolean;
6
+ };
7
+ export declare function startServer(options?: StartServerOptions): Promise<void>;
8
+ export declare function runManualCapture(url?: string, options?: StartServerOptions): Promise<void>;
9
+ export type DoctorResult = {
10
+ ok: boolean;
11
+ checks: Array<{
12
+ name: string;
13
+ ok: boolean;
14
+ detail: string;
15
+ }>;
16
+ };
17
+ export declare function runDoctor(options?: StartServerOptions): DoctorResult;