Não tem nada aqui


SUBMITTED BY: Chacal1107

DATE: Nov. 10, 2023, 9:48 p.m.

UPDATED: Jan. 9, 2024, 9:55 p.m.

FORMAT: Text only

SIZE: 47.3 kB

HITS: 4440

  1. [
  2. {
  3. "id": 42628,
  4. "label": "Nome do app",
  5. "name": "APP_NAME",
  6. "value": "CONEXÃO 5G",
  7. "type": "STRING",
  8. "status": "ACTIVE",
  9. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  10. },
  11. {
  12. "id": 42629,
  13. "label": "Logo do app",
  14. "name": "APP_LOGO",
  15. "value": "https://i.ibb.co/JpcYS0v/DTpmcj62l7.png",
  16. "type": "IMAGE",
  17. "status": "ACTIVE",
  18. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  19. },
  20. {
  21. "id": 42630,
  22. "label": "Imagem de fundo",
  23. "name": "APP_BACKGROUND_IMAGE",
  24. "value": null,
  25. "type": "IMAGE",
  26. "status": "ACTIVE",
  27. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  28. },
  29. {
  30. "id": 42631,
  31. "label": "Tipo do fundo do app",
  32. "name": "APP_BACKGROUND_TYPE",
  33. "value": {
  34. "options": [
  35. {
  36. "label": "Imagem",
  37. "value": "IMAGE"
  38. },
  39. {
  40. "label": "Cor",
  41. "value": "COLOR"
  42. }
  43. ],
  44. "selected": "COLOR"
  45. },
  46. "type": "SELECT",
  47. "status": "ACTIVE",
  48. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  49. },
  50. {
  51. "id": 42632,
  52. "label": "Cor de fundo",
  53. "name": "APP_BACKGROUND_COLOR",
  54. "value": "#080e16c7",
  55. "type": "COLOR",
  56. "status": "ACTIVE",
  57. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  58. },
  59. {
  60. "id": 42633,
  61. "label": "Cor do card inicial",
  62. "name": "APP_CARD_COLOR",
  63. "value": "#1d242e73",
  64. "type": "COLOR",
  65. "status": "ACTIVE",
  66. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  67. },
  68. {
  69. "id": 42634,
  70. "label": "Raio do card inicial",
  71. "name": "APP_CARD_RADIUS",
  72. "value": 20,
  73. "type": "INTEGER",
  74. "status": "ACTIVE",
  75. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  76. },
  77. {
  78. "id": 42635,
  79. "label": "Cor do card de status",
  80. "name": "APP_CARD_STATUS_COLOR",
  81. "value": "#1d242e73",
  82. "type": "COLOR",
  83. "status": "ACTIVE",
  84. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  85. },
  86. {
  87. "id": 42636,
  88. "label": "Raio do card de status",
  89. "name": "APP_CARD_STATUS_RADIUS",
  90. "value": 25,
  91. "type": "INTEGER",
  92. "status": "ACTIVE",
  93. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  94. },
  95. {
  96. "id": 42637,
  97. "label": "Cor do card de configurações",
  98. "name": "APP_CARD_CONFIG_COLOR",
  99. "value": "#0E171EC9",
  100. "type": "COLOR",
  101. "status": "ACTIVE",
  102. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  103. },
  104. {
  105. "id": 42638,
  106. "label": "Cor do fundo dos dialogs",
  107. "name": "APP_DIALOG_BACKGROUND_COLOR",
  108. "value": "#050C5AE4",
  109. "type": "COLOR",
  110. "status": "ACTIVE",
  111. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  112. },
  113. {
  114. "id": 42639,
  115. "label": "Cor do fundo do dialog de log",
  116. "name": "APP_DIALOG_LOGGER_COLOR",
  117. "value": "#080e16c7",
  118. "type": "COLOR",
  119. "status": "ACTIVE",
  120. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  121. },
  122. {
  123. "id": 42640,
  124. "label": "Cor das bordas",
  125. "name": "APP_BORDER_COLOR",
  126. "value": "#1d242e73",
  127. "type": "COLOR",
  128. "status": "ACTIVE",
  129. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  130. },
  131. {
  132. "id": 42641,
  133. "label": "Cor dos inputs",
  134. "name": "APP_INPUT_COLOR",
  135. "value": "#1d242e73",
  136. "type": "COLOR",
  137. "status": "ACTIVE",
  138. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  139. },
  140. {
  141. "id": 42642,
  142. "label": "Raio dos inputs",
  143. "name": "APP_INPUT_RADIUS",
  144. "value": 25,
  145. "type": "INTEGER",
  146. "status": "ACTIVE",
  147. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  148. },
  149. {
  150. "id": 42643,
  151. "label": "Cor dos textos",
  152. "name": "APP_TEXT_COLOR",
  153. "value": "#FFFFFFFF",
  154. "type": "COLOR",
  155. "status": "ACTIVE",
  156. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  157. },
  158. {
  159. "id": 42644,
  160. "label": "Cor dos botões",
  161. "name": "APP_BUTTON_COLOR",
  162. "value": "#1d242e73",
  163. "type": "COLOR",
  164. "status": "ACTIVE",
  165. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  166. },
  167. {
  168. "id": 42645,
  169. "label": "Raio dos botões",
  170. "name": "APP_BUTTON_RADIUS",
  171. "value": 25,
  172. "type": "INTEGER",
  173. "status": "ACTIVE",
  174. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  175. },
  176. {
  177. "id": 42646,
  178. "label": "Cor dos icones",
  179. "name": "APP_ICON_COLOR",
  180. "value": "#FFFFFFFF",
  181. "type": "COLOR",
  182. "status": "ACTIVE",
  183. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  184. },
  185. {
  186. "id": 42647,
  187. "label": "Exibir modo de conexão",
  188. "name": "APP_SHOW_CONNECTION_MODE",
  189. "value": true,
  190. "type": "BOOLEAN",
  191. "status": "ACTIVE",
  192. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  193. },
  194. {
  195. "id": 42648,
  196. "label": "Atualizar automaticamente as configurações ao lançar uma atualização.",
  197. "name": "APP_CONFIG_AUTO_UPDATE",
  198. "value": true,
  199. "type": "BOOLEAN",
  200. "status": "ACTIVE",
  201. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  202. },
  203. {
  204. "id": 42649,
  205. "label": "Iniciar o app automaticamente ao reiniciar o dispositivo",
  206. "name": "APP_AUTO_START",
  207. "value": false,
  208. "type": "BOOLEAN",
  209. "status": "ACTIVE",
  210. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  211. },
  212. {
  213. "id": 42650,
  214. "label": "Usar limiter de conexão",
  215. "name": "APP_CONNECTION_LIMITER",
  216. "value": true,
  217. "type": "BOOLEAN",
  218. "status": "ACTIVE",
  219. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  220. },
  221. {
  222. "id": 42651,
  223. "label": "Usar botão de atualizações",
  224. "name": "APP_BTN_UPDATE_ENABLED",
  225. "value": true,
  226. "type": "BOOLEAN",
  227. "status": "ACTIVE",
  228. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  229. },
  230. {
  231. "id": 42652,
  232. "label": "Usar botão de registros",
  233. "name": "APP_BTN_LOGGER_ENABLED",
  234. "value": true,
  235. "type": "BOOLEAN",
  236. "status": "ACTIVE",
  237. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  238. },
  239. {
  240. "id": 42653,
  241. "label": "Usar botão de pagina webview",
  242. "name": "APP_BTN_PAGE_ENABLED",
  243. "value": false,
  244. "type": "BOOLEAN",
  245. "status": "ACTIVE",
  246. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  247. },
  248. {
  249. "id": 42654,
  250. "label": "Ativar dialog de erros",
  251. "name": "APP_DIALOG_ERROR_ENABLED",
  252. "value": true,
  253. "type": "BOOLEAN",
  254. "status": "ACTIVE",
  255. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  256. },
  257. {
  258. "id": 42655,
  259. "label": "Ativar dialog de checkuser",
  260. "name": "APP_CHECKUSER_DIALOG_ENABLED",
  261. "value": true,
  262. "type": "BOOLEAN",
  263. "status": "ACTIVE",
  264. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  265. },
  266. {
  267. "id": 42656,
  268. "label": "Ativar toast de sucesso",
  269. "name": "APP_SUCCESS_TOAST_ENABLED",
  270. "value": true,
  271. "type": "BOOLEAN",
  272. "status": "ACTIVE",
  273. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  274. },
  275. {
  276. "id": 42657,
  277. "label": "Ativar toast de erro",
  278. "name": "APP_ERROR_TOAST_ENABLED",
  279. "value": true,
  280. "type": "BOOLEAN",
  281. "status": "ACTIVE",
  282. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  283. },
  284. {
  285. "id": 42658,
  286. "label": "Usar layout webview",
  287. "name": "APP_LAYOUT_WEBVIEW_ENABLED",
  288. "value": true,
  289. "type": "BOOLEAN",
  290. "status": "ACTIVE",
  291. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  292. },
  293. {
  294. "id": 42659,
  295. "label": "Mensagem",
  296. "name": "APP_MESSAGE",
  297. "value": "Seja muito Bem Vindo(a)\nIndique 3 amigos e ganhe 1 mês Grátis. ",
  298. "type": "TEXT",
  299. "status": "ACTIVE",
  300. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  301. },
  302. {
  303. "id": 42660,
  304. "label": "URL de atualização do aplicativo",
  305. "name": "APP_UPDATE_URL",
  306. "value": null,
  307. "type": "URL",
  308. "status": "ACTIVE",
  309. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  310. },
  311. {
  312. "id": 42661,
  313. "label": "Tipo de mensagem",
  314. "name": "APP_MESSAGE_TYPE",
  315. "value": {
  316. "options": [
  317. {
  318. "label": "Alerta",
  319. "value": "ALERT"
  320. },
  321. {
  322. "label": "Informação",
  323. "value": "INFO"
  324. },
  325. {
  326. "label": "Boas vindas",
  327. "value": "WELCOME"
  328. },
  329. {
  330. "label": "Sem mensagem",
  331. "value": "NONE"
  332. }
  333. ],
  334. "selected": "WELCOME"
  335. },
  336. "type": "SELECT",
  337. "status": "ACTIVE",
  338. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  339. },
  340. {
  341. "id": 42662,
  342. "label": "LAYOUT WEBVIEW (POR SUA CONTA E RISCO)",
  343. "name": "APP_LAYOUT_WEBVIEW",
  344. "value": "<!DOCTYPE html>\n<html lang=\"pt-BR\">\n\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n <title>950052683 - @TakumaNET | @alexdsgmoura</title>\n\n <style>\n :root {\n font-family: system-ui, Helvetica, Arial, sans-serif;\n line-height: 1.5;\n font-weight: 400;\n font-synthesis: none;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n\n --space-status-bar: 10px;\n --space-nav-bar: 33px;\n\n --background-geral-container: #ecf0f3;\n }\n\n *,\n *::before,\n *::after {\n margin: 0;\n padding: 0;\n\n box-sizing: border-box;\n }\n\n html,\n body,\n main {\n width: 100%;\n height: 100%;\n }\n\n main {\n display: flex;\n flex-direction: column;\n\n position: relative;\n\n overflow: hidden;\n }\n\n section.home {\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n gap: 1rem;\n\n padding: var(--space-status-bar) 10px var(--space-nav-bar) 10px;\n\n background: var(--background-geral-container);\n }\n\n section.home div.logo {\n width: 100%;\n height: 20%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n section.home div.logo img {\n height: 80%;\n }\n\n section.home div.container-status-update-tools {\n width: 100%;\n height: 6%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n section.home div.container-status-update-tools div.status {\n flex: 1;\n height: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border-radius: 5px;\n }\n\n section.home div.container-status-update-tools div.status span {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n\n color: #000000;\n font-size: 0.8rem;\n }\n\n section.home div.container-status-update-tools div.update-and-tools {\n height: 100%;\n\n display: flex;\n justify-content: center;\n gap: 2px;\n\n margin-left: 2px;\n }\n\n section.home div.container-status-update-tools div.update-and-tools button {\n width: 40px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border: 0;\n border-radius: 5px;\n\n background: transparent;\n }\n\n section.home div.container-status-update-tools div.update-and-tools button svg {\n width: 20px;\n height: 20px;\n\n color: #000000;\n }\n\n section.home div.carrier-selector-button {\n width: 100%;\n height: 5%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n overflow: hidden;\n\n border-radius: 5px;\n box-shadow:\n 0 0 2px rgba(0, 0, 0, 0.2),\n 0 0 2px rgba(0, 0, 0, 0.2) inset,\n 2px 0 2px rgba(0, 0, 0, 0.2),\n -2px 0 2px rgba(0, 0, 0, 0.2);\n }\n\n section.home div.carrier-selector-button button {\n width: 100%;\n height: 100%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n border: 0;\n\n background: linear-gradient(#f0f0f0, #e0e0e0);\n }\n\n section.home div.carrier-selector-button button:hover {\n background: linear-gradient(#e0e0e0, #f0f0f0);\n }\n\n section.home div.carrier-selector-button button span {\n font-weight: bold;\n }\n\n section.home div.container-form {\n width: 100%;\n height: 10%;\n\n display: grid;\n justify-items: center;\n grid-template-columns: repeat(2, 1fr);\n gap: 5px;\n }\n\n section.home div.container-form span {\n text-align: center;\n }\n\n section.home div.container-form span,\n section.home div.container-form input {\n width: 95%;\n\n font-size: 0.8rem;\n }\n\n section.home div.container-form input {\n padding: 0 5%;\n\n border: 0;\n border-radius: 9999999px;\n box-shadow:\n 0 0 2px rgba(0, 0, 0, 0.2),\n 0 0 2px rgba(0, 0, 0, 0.2) inset,\n 2px 0 2px rgba(0, 0, 0, 0.2),\n -2px 0 2px rgba(0, 0, 0, 0.2);\n\n outline: none;\n\n background: linear-gradient(to right, #ddd, #fff, #ddd);\n }\n\n section.home div.container-form input::placeholder {\n font-weight: bold;\n font-size: 0.7rem;\n text-align: center;\n }\n\n section.home div.container-button-connection {\n width: 100%;\n height: 20%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n position: relative;\n }\n\n section.home div.container-button-connection button {\n width: 90px;\n height: 90px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n position: absolute;\n z-index: 2;\n\n border: 0;\n border-radius: 999999px;\n box-shadow:\n 0 0 2px rgba(0, 0, 0, 0.2),\n 0 0 2px rgba(0, 0, 0, 0.2) inset,\n 2px 0 2px rgba(0, 0, 0, 0.2),\n -2px 0 2px rgba(0, 0, 0, 0.2);\n\n background: #F8F8F8;\n }\n\n section.home div.container-button-connection button svg {\n width: 50%;\n height: auto;\n\n color: #000000;\n }\n\n section.home div.container-button-connection div.border-button {\n width: 120px;\n height: 120px;\n\n border: 1px solid #CCCCCC;\n border-radius: 999999px;\n\n background: linear-gradient(to bottom right, #FFFFFF, #c1c5c8);\n\n position: absolute;\n }\n\n section.home div.container-button-connection div.border-button-status {\n width: 105px;\n height: 105px;\n\n position: absolute;\n z-index: 1;\n\n border: 0;\n border-radius: 999999px;\n box-shadow:\n 0 0 5px rgba(255, 255, 255, 0.5), 0 0 5px rgba(255, 255, 255, 0.5) inset, 2.5px 0 5px rgba(255, 255, 255, 0.5), -2.5px 0 5px rgba(255, 255, 255, 0.5);\n\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7));\n\n animation: rotateAndScaleAnimation 2s linear infinite;\n }\n\n @keyframes rotateAndScaleAnimation {\n 0% {\n transform: rotate(0deg) scale(0.8);\n }\n\n 50% {\n transform: rotate(180deg) scale(1);\n }\n\n 100% {\n transform: rotate(360deg) scale(0.8);\n }\n }\n\n section.home div.container-logs {\n width: 100%;\n height: 26%;\n\n margin: auto 0 0 0;\n\n overflow: auto;\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n }\n\n section.home div.container-logs p {\n font-size: 0.7rem;\n }\n\n section.tools {\n width: 100%;\n min-width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n gap: 10px;\n\n position: absolute;\n top: 0;\n left: 0;\n z-index: 999999;\n\n padding: var(--space-status-bar) 0px var(--space-nav-bar) 0px;\n\n opacity: 0;\n\n transform: translateX(-100%);\n transition: opacity 0.3s ease, transform 0.3s ease;\n\n background: var(--background-geral-container);\n }\n\n section.tools header {\n width: 100%;\n height: 10%;\n\n display: flex;\n justify-content: center;\n align-items: center;\n\n padding: 0 6%;\n }\n\n section.tools header svg {\n margin-left: 1%;\n stroke: #000000;\n stroke-width: 1px;\n\n color: #000000;\n }\n\n section.tools header h1 {\n margin-left: auto;\n margin-right: auto;\n\n color: #000000;\n font-weight: 600;\n font-size: 1rem;\n }\n\n section.tools section {\n width: 100%;\n height: 90%;\n max-height: 90%;\n\n overflow: auto;\n }\n\n section.tools section button:first-child {\n margin-top: 0;\n }\n\n section.tools section button {\n width: 90%;\n height: 50px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 0.7rem;\n\n margin: 0.8rem auto;\n padding: 0 15px 0 0;\n\n border: 1px solid #CCCCCC;\n border-radius: 999999px;\n\n background: linear-gradient(to bottom right, #FFFFFF, #c1c5c8);\n }\n\n section.tools section button svg {\n margin: 0 0 0 15px;\n }\n\n section.tools section button span {\n margin: 0 auto 0 auto;\n font-size: 0.7rem;\n }\n\n section.active {\n opacity: 1;\n transform: translateX(0%);\n }\n\n .display-none {\n display: none !important;\n }\n </style>\n</head>\n\n<body>\n <main>\n <section class=\"home\">\n <div class=\"logo\">\n <img id=\"appLogo\"\n src=\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg id='Camada_1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1716.42 1980'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23181e28;%7D%3C/style%3E%3C/defs%3E%3Ccircle class='cls-1' cx='1057.33' cy='550.91' r='184.76'/%3E%3Ccircle class='cls-1' cx='872.57' cy='223.85' r='87.9'/%3E%3Ccircle class='cls-1' cx='1538.85' cy='177.05' r='136.17'/%3E%3Ccircle class='cls-1' cx='1404.2' cy='520.67' r='79.58'/%3E%3Ccircle class='cls-1' cx='1296.19' cy='311.76' r='54.11'/%3E%3Ccircle class='cls-1' cx='1641.61' cy='530.21' r='74.81' transform='translate(105.9 1316.09) rotate(-45)'/%3E%3Ccircle class='cls-1' cx='1158.1' cy='111.93' r='111.93'/%3E%3Cpath class='cls-1' d='m674.46,1112.51c-63.14,0-116.97,22.25-161.47,66.76-44.51,44.51-66.76,98.33-66.76,161.47s22.25,116.96,66.76,161.47c44.5,44.51,98.33,66.76,161.47,66.76s116.97-22.26,161.47-66.76,66.76-98.32,66.76-161.47-22.25-116.97-66.76-161.47c-44.51-44.51-98.33-66.76-161.47-66.76h0Z'/%3E%3Cpath class='cls-1' d='m1540.25,817.48c-3.68-67.8-49.93-125.62-115.9-141.74-66.91-16.34-128.74,10.78-163.9,58.74-5.5,7.51-11.58,20.08-16.36,30.99-11.12,25.39-30.8,46.39-55.97,58.01-29.76,13.74-71.41,21.74-130.8,21.74-243.42,0-281.3-199.46-281.3-347.14,0-65.95-54.12-119.25-120.37-117.93-57.38,1.15-106.55,45.07-114.42,101.92-.06.43-.12.85-.17,1.28-4.72,37.02-25.4,70.08-57.71,88.73l-356.15,205.63C48.49,823.15,0,907.14,0,998.03v485.04c0,90.89,48.49,174.88,127.2,220.32l420.06,242.52c78.71,45.45,175.69,45.45,254.41,0l420.06-242.52c78.71-45.45,127.2-129.43,127.2-220.32,0,0-.06-73.37-.17-164.26-.18-148.86,59.84-289.13,158.26-400.82,23.93-27.16,35.32-61.98,33.23-100.52h0Zm-583.35,805.7c-77.98,77.98-172.13,116.97-282.44,116.97s-204.46-38.99-282.43-116.97c-77.98-77.97-116.97-172.12-116.97-282.43v-570.58h171.17v241.92c66.19-47.16,142.26-70.75,228.23-70.75,110.31,0,204.46,38.99,282.44,116.97,77.97,77.98,116.97,172.13,116.97,282.44s-38.99,204.46-116.97,282.43Z'/%3E%3C/svg%3E\"\n alt=\"logo\">\n </div>\n\n <div class=\"container-status-update-tools\">\n <div class=\"status\">\n <span id=\"vpnStatusValue\">DESCONECTADO</span>\n </div>\n\n <div class=\"update-and-tools\">\n <button type=\"button\" title=\"update\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\n class=\"bi bi-arrow-clockwise\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2v1z\" />\n <path\n d=\"M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466z\" />\n </svg>\n </button>\n\n <button type=\"button\" title=\"tools\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke-width=\"1\" stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.42 15.17L17.25 21A2.652 2.652 0 0021 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 11-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 004.486-6.336l-3.276 3.277a3.004 3.004 0 01-2.25-2.25l3.276-3.276a4.5 4.5 0 00-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437l1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008z\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div class=\"carrier-selector-button\" id=\"carrierSelector\">\n <button type=\"button\" title=\"selecione uma configuração\">\n <span id=\"carrierSelectorValue\">SELECIONE O SERVIDOR</span>\n </button>\n </div>\n\n <div class=\"container-form\">\n <span>USUÁRIO</span>\n <span>SENHA</span>\n\n <input id=\"inputUser\" type=\"text\" placeholder=\"USUÁRIO\">\n <input id=\"inputPassword\" type=\"password\" placeholder=\"SENHA\">\n </div>\n\n <div class=\"container-button-connection\">\n <button id=\"StartVpnButton\" type=\"button\" title=\"Iniciar ou parar conexão\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\"\n stroke=\"currentColor\" class=\"w-6 h-6\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5.636 5.636a9 9 0 1012.728 0M12 3v9\" />\n </svg>\n </button>\n\n <div class=\"border-button-status\"></div>\n <div class=\"border-button\"></div>\n </div>\n\n <div class=\"container-logs display-none\">\n <p id=\"logs-value\"></p>\n </div>\n </section>\n\n <section class=\"tools\">\n <header>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" id=\"backContainerTools\"\n class=\"bi bi-chevron-left\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\"\n d=\"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z\" />\n </svg>\n\n <h1>FERRAMENTAS</h1>\n </header>\n\n <section>\n <button type=\"button\" title=\"Hotspot\" id=\"hotspotButton\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-router\"\n viewBox=\"0 0 16 16\">\n <path\n d=\"M5.525 3.025a3.5 3.5 0 0 1 4.95 0 .5.5 0 1 0 .707-.707 4.5 4.5 0 0 0-6.364 0 .5.5 0 0 0 .707.707Z\" />\n <path\n d=\"M6.94 4.44a1.5 1.5 0 0 1 2.12 0 .5.5 0 0 0 .708-.708 2.5 2.5 0 0 0-3.536 0 .5.5 0 0 0 .707.707ZM2.5 11a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1Zm4.5-.5a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0Zm2.5.5a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1Zm1.5-.5a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0Zm2 0a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0Z\" />\n <path\n d=\"M2.974 2.342a.5.5 0 1 0-.948.316L3.806 8H1.5A1.5 1.5 0 0 0 0 9.5v2A1.5 1.5 0 0 0 1.5 13H2a.5.5 0 0 0 .5.5h2A.5.5 0 0 0 5 13h6a.5.5 0 0 0 .5.5h2a.5.5 0 0 0 .5-.5h.5a1.5 1.5 0 0 0 1.5-1.5v-2A1.5 1.5 0 0 0 14.5 8h-2.306l1.78-5.342a.5.5 0 1 0-.948-.316L11.14 8H4.86L2.974 2.342ZM14.5 9a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.5.5h-13a.5.5 0 0 1-.5-.5v-2a.5.5 0 0 1 .5-.5h13Z\" />\n <path d=\"M8.5 5.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0Z\" />\n </svg>\n\n <span id=\"hotspotValue\">LIGAR HOTSPOT</span>\n </button>\n\n <button type=\"button\" title=\"Informações do usuário\" id=\"checkUser\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-calendar-week\"\n viewBox=\"0 0 16 16\">\n <path\n d=\"M11 6.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1zm-3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1zm-5 3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1zm3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1z\" />\n <path\n d=\"M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z\" />\n </svg>\n\n <span>INFORMAÇÕES DO USUÁRIO</span>\n </button>\n\n <button type=\"button\" title=\"Limpar Dados\" id=\"cleanData\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-trash\"\n viewBox=\"0 0 16 16\">\n <path\n d=\"M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5Zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6Z\" />\n <path\n d=\"M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1ZM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118ZM2.5 3h11V2h-11v1Z\" />\n </svg>\n\n <span>LIMPAR DADOS DO APP</span>\n </button>\n\n <button type=\"button\" title=\"Desativar otimização de bateria\" id=\"batteryDisableOptimizationD\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-battery-half\"\n viewBox=\"0 0 16 16\">\n <path d=\"M2 6h5v4H2V6z\" />\n <path\n d=\"M2 4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H2zm10 1a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h10zm4 3a1.5 1.5 0 0 1-1.5 1.5v-3A1.5 1.5 0 0 1 16 8z\" />\n </svg>\n\n <span>DESATIVAR OTIMIZAÇÃO DE BATERIA</span>\n </button>\n\n <button type=\"button\" title=\"Configurar apn\" id=\"accessPointOpenSettings\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\n class=\"bi bi-wrench-adjustable\" viewBox=\"0 0 16 16\">\n <path d=\"M16 4.5a4.492 4.492 0 0 1-1.703 3.526L13 5l2.959-1.11c.027.2.041.403.041.61Z\" />\n <path\n d=\"M11.5 9c.653 0 1.273-.139 1.833-.39L12 5.5 11 3l3.826-1.53A4.5 4.5 0 0 0 7.29 6.092l-6.116 5.096a2.583 2.583 0 1 0 3.638 3.638L9.908 8.71A4.49 4.49 0 0 0 11.5 9Zm-1.292-4.361-.596.893.809-.27a.25.25 0 0 1 .287.377l-.596.893.809-.27.158.475-1.5.5a.25.25 0 0 1-.287-.376l.596-.893-.809.27a.25.25 0 0 1-.287-.377l.596-.893-.809.27-.158-.475 1.5-.5a.25.25 0 0 1 .287.376ZM3 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\" />\n </svg>\n\n <span>CONFIGURAR APN</span>\n </button>\n\n <button type=\"button\" title=\"Renovar acesso\" id=\"renewAccess\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\"\n class=\"bi bi-currency-dollar\" viewBox=\"0 0 16 16\">\n <path\n d=\"M4 10.781c.148 1.667 1.513 2.85 3.591 3.003V15h1.043v-1.216c2.27-.179 3.678-1.438 3.678-3.3 0-1.59-.947-2.51-2.956-3.028l-.722-.187V3.467c1.122.11 1.879.714 2.07 1.616h1.47c-.166-1.6-1.54-2.748-3.54-2.875V1H7.591v1.233c-1.939.23-3.27 1.472-3.27 3.156 0 1.454.966 2.483 2.661 2.917l.61.162v4.031c-1.149-.17-1.94-.8-2.131-1.718H4zm3.391-3.836c-1.043-.263-1.6-.825-1.6-1.616 0-.944.704-1.641 1.8-1.828v3.495l-.2-.05zm1.591 1.872c1.287.323 1.852.859 1.852 1.769 0 1.097-.826 1.828-2.2 1.939V8.73l.348.086z\" />\n </svg>\n\n <span>RENOVAR ACESSO</span>\n </button>\n\n <button type=\"button\" title=\"Testar IPTV\" id=\"openLinkIptvGenerateTest\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-tv\"\n viewBox=\"0 0 16 16\">\n <path\n d=\"M2.5 13.5A.5.5 0 0 1 3 13h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zM13.991 3l.024.001a1.46 1.46 0 0 1 .538.143.757.757 0 0 1 .302.254c.067.1.145.277.145.602v5.991l-.001.024a1.464 1.464 0 0 1-.143.538.758.758 0 0 1-.254.302c-.1.067-.277.145-.602.145H2.009l-.024-.001a1.464 1.464 0 0 1-.538-.143.758.758 0 0 1-.302-.254C1.078 10.502 1 10.325 1 10V4.009l.001-.024a1.46 1.46 0 0 1 .143-.538.758.758 0 0 1 .254-.302C1.498 3.078 1.675 3 2 3h11.991zM14 2H2C0 2 0 4 0 4v6c0 2 2 2 2 2h12c2 0 2-2 2-2V4c0-2-2-2-2-2z\" />\n </svg>\n\n <span>GERAR TESTE IPTV</span>\n </button>\n\n <button type=\"button\" title=\"speedtest\" id=\"openLinkSpeedtest\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path\n d=\"M 12 2 C 6.486 2 2 6.486 2 12 C 2 14.757 3.1216406 17.257359 4.9316406 19.068359 L 6.3457031 17.654297 C 4.8967031 16.206297 4 14.206 4 12 C 4 7.589 7.589 4 12 4 C 16.411 4 20 7.589 20 12 C 20 14.206 19.103297 16.206297 17.654297 17.654297 L 19.068359 19.068359 C 20.878359 17.257359 22 14.757 22 12 C 22 6.486 17.514 2 12 2 z M 15.292969 7.2929688 L 10 12 L 12 14 L 16.707031 8.7070312 L 15.292969 7.2929688 z\">\n </path>\n </svg>\n\n <span>SPEEDTEST</span>\n </button>\n </section>\n </section>\n </main>\n\n <!-- FUNÇÕES DO APP -->\n <script>\n const appGetStatusbarHeightSize = () => DtGetStatusBarHeight.execute() || null\n const appGetNavbarHeightSize = () => DtGetNavigationBarHeight.execute() || null\n\n const appTranslateText = (label) => DtTranslateText.execute(label) || null\n const appGetConfigLabel = (label) => DtGetAppConfig.execute(label) || null\n\n const appGetCarrierName = () => `${Android.getNetworkName()}` || null\n const appGetLocalIp = () => `${Android.getLocalIP()}` || null\n\n const AppUpdate = () => DtStartAppUpdate.execute() || null\n\n const appAllConfigs = () => DtGetConfigs.execute() || null\n const appSetConfig = (id) => DtSetConfig.execute(id) || null\n const appGetDefaultConfig = () => DtGetDefaultConfig.execute() || null\n const appGetConfigVersion = () => DtGetLocalConfigVersion.execute() || null\n\n const appGetUsername = () => DtUsername.get() || null\n const appSetUsername = (username) => DtUsername.set(username) || null\n const appGetPassword = () => DtPassword.get() || null\n const appSetPassword = (password) => DtPassword.set(password) || null\n const appGetUUID = () => DtUuid.get() || null\n const appSetUUID = (uuid) => DtUuid.set(uuid) || null\n\n const appGetConnectionState = () => DtGetVpnState.execute() || null\n const appStartConnection = () => DtExecuteVpnStart.execute() || null\n const appStopConnection = () => DtExecuteVpnStop.execute() || null\n\n const appGetStatusHotspot = () => DtGetStatusHotSpotService.execute() || null\n const appStartHotspot = () => DtStartHotSpotService.execute() || null\n const appStopHotspot = () => DtStopHotSpotService.execute() || null\n\n const appGetLogs = () => DtGetLogs.execute() || null\n const appCleanLogs = () => DtClearLogs.execute() || null\n\n const appDialogConfigs = () => DtExecuteDialogConfig.execute()\n const appBatteryOptimize = () => DtIgnoreBatteryOptimizations.execute() || null\n const appApnConfiguration = () => DtStartApnActivity.execute() || null\n const appStartCheckUser = () => DtStartCheckUser.execute() || null\n const appIntoBrowser = (url) => DtStartWebViewActivity.execute(url) || null\n const appClearData = () => DtCleanApp.execute() || null\n </script>\n\n <!-- DOM WRAPPER -->\n <script>\n const Dom = (selector) => {\n const _elements = document.querySelectorAll(selector)\n\n const wrapper = {\n on(listeners) {\n for (const [event, listener] of Object.entries(listeners)) {\n _elements.forEach((element) => {\n element.addEventListener(event, listener)\n })\n }\n\n return wrapper\n },\n addClass: (...tokens) => {\n _elements.forEach((element) => {\n element.classList.add(...tokens)\n })\n\n return wrapper\n },\n removeClass: (...tokens) => {\n _elements.forEach((element) => {\n element.classList.remove(...tokens)\n })\n\n return wrapper\n },\n toggleClass: (token, force) => {\n _elements.forEach((element) => {\n element.classList.toggle(token, force)\n })\n\n return wrapper\n },\n style(styles) {\n for (const [property, value] of Object.entries(styles)) {\n console.log(value)\n _elements.forEach((element) => {\n element.style[property] = value\n })\n }\n\n return wrapper\n },\n attr(attrs) {\n for (const [name, value] of Object.entries(attrs)) {\n _elements.forEach((element) => element.setAttribute(name, value))\n }\n\n return wrapper\n },\n html(value) {\n _elements.forEach((element) => (element.innerHTML = value))\n return wrapper\n },\n }\n\n return wrapper\n }\n </script>\n\n <!-- VARIÁVEIS -->\n <script>\n const Logo = Dom(\"#appLogo\")\n\n const VpnStatusValue = Dom(\"#vpnStatusValue\")\n const ButtonUpdate = Dom('button[title=\"update\"]')\n const ButtonTools = Dom('button[title=\"tools\"]')\n\n const ButtonCarrierSelector = Dom(\"#carrierSelector\")\n const CarrierSelectorValue = Dom('#carrierSelectorValue')\n\n const InputUser = Dom(\"#inputUser\")\n const InputPassword = Dom(\"#inputPassword\")\n\n const StartButton = Dom('#StartVpnButton')\n const IconStartButton = Dom(\"#StartVpnButton svg\")\n const BorderStatusVpnButton = Dom('section.home div.container-button-connection div.border-button-status')\n\n const ContainerLogs = Dom('section.home div.container-logs')\n const RegisterLogsText = Dom(\"#logs-value\")\n\n\n\n const ContainerTools = Dom('section.tools')\n const BackContainerTools = Dom('#backContainerTools')\n\n\n const ButtonStartStopHotspot = Dom(\"#hotspotButton\")\n const ValueOfButtonHotspotContainer = Dom(\"#hotspotValue\")\n\n const ButtonCheckUser = Dom(\"#checkUser\")\n const ButtonCleanData = Dom('#cleanData')\n const ButtonBatteryOptimization = Dom(\"#batteryDisableOptimizationD\")\n const ButtonAccessPoint = Dom(\"#accessPointOpenSettings\")\n const ButtonRenewAccess = Dom('#renewAccess')\n const ButtonGenerateIptvTest = Dom('#openLinkIptvGenerateTest')\n const ButtonSpeedtest = Dom(\"#openLinkSpeedtest\")\n </script>\n\n <!-- FUNÇÕES -->\n <script>\n const getAppLogo = () => {\n const logo = appGetConfigLabel(\"APP_LOGO\")\n\n if (!logo) {\n return \"\"\n } else {\n return `${JSON.parse(logo).value}`\n }\n }\n const getConfigName = () => {\n if (!appGetDefaultConfig()) {\n return `${appTranslateText(\"LBL_CHOOSE_CONFIG\")}`\n } else {\n return `${JSON.parse(appGetDefaultConfig())?.name}`\n }\n }\n\n const startStopConnection = () => {\n const state = appGetConnectionState()\n\n state !== \"CONNECTED\" ? appStartConnection() : appStopConnection()\n }\n\n const getUsernameValue = () => `${appGetUsername() ?? \"\"}`\n const getPasswordValue = () => `${appGetPassword() ?? \"\"}`\n const getUUIDValue = () => `${appGetUUID() ?? \"\"}`\n\n const getUsernamePlaceholder = () => `${appTranslateText(\"LBL_USERNAME\")}`\n const getPassowrdPlaceholder = () => `${appTranslateText(\"LBL_PASSWORD\")}`\n const getUUIDPlaceholder = () => `${appTranslateText(\"LBL_UUID\")}`\n\n const connectionState = (state) => {\n const connectionValue = `${state || appGetConnectionState()}`\n\n switch (connectionValue) {\n case \"DISCONNECTED\":\n IconStartButton.style({ color: '#252121' })\n BorderStatusVpnButton.style({ background: 'linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7))' });\n BorderStatusVpnButton.style({ boxShadow: '0 0 5px rgba(255, 255, 255, 0.5), 0 0 5px rgba(255, 255, 255, 0.5) inset, 2.5px 0 5px rgba(255, 255, 255, 0.5), -2.5px 0 5px rgba(255, 255, 255, 0.5)' });\n VpnStatusValue.html(appTranslateText('LBL_STATE_DISCONNECTED'))\n break\n case \"CONNECTING\":\n IconStartButton.style({ color: '#FFD700' })\n BorderStatusVpnButton.style({ background: 'linear-gradient(to bottom, rgba(255, 255, 0, 0.7), rgba(255, 255, 0, 0.7), rgba(255, 204, 0, 0.7), rgba(204, 163, 0, 0.7)' })\n BorderStatusVpnButton.style({ boxShadow: '0 0 5px rgba(255, 255, 0, 0.5), 0 0 5px rgba(255, 255, 0, 0.5) inset, 2.5px 0 5px rgba(255, 255, 0, 0.5), -2.5px 0 5px rgba(255, 255, 0, 0.5)' });\n VpnStatusValue.html(appTranslateText('LBL_STATE_CONNECTING'))\n showContainerLogs()\n break\n case \"CONNECTED\":\n IconStartButton.style({ color: '#15803D' })\n BorderStatusVpnButton.style({ background: 'linear-gradient(to bottom, rgba(0, 204, 0, 0.7), rgba(0, 204, 0, 0.7), rgba(0, 153, 0, 0.7), rgba(0, 102, 0, 0.7)' })\n BorderStatusVpnButton.style({ boxShadow: '0 0 5px rgba(0, 204, 0, 0.5), 0 0 5px rgba(0, 204, 0, 0.5) inset, 2.5px 0 5px rgba(0, 204, 0, 0.5), -2.5px 0 5px rgba(0, 204, 0, 0.5)' });\n VpnStatusValue.html(appTranslateText('LBL_STATE_CONNECTED'))\n break\n case \"STOPPING\":\n IconStartButton.style({ color: '#FFD700' })\n BorderStatusVpnButton.style({ background: 'linear-gradient(to bottom, rgba(255, 255, 0, 0.7), rgba(255, 255, 0, 0.7), rgba(255, 204, 0, 0.7), rgba(204, 163, 0, 0.7)' })\n BorderStatusVpnButton.style({ boxShadow: '0 0 5px rgba(255, 255, 0, 0.5), 0 0 5px rgba(255, 255, 0, 0.5) inset, 2.5px 0 5px rgba(255, 255, 0, 0.5), -2.5px 0 5px rgba(255, 255, 0, 0.5)' });\n VpnStatusValue.html(appTranslateText('LBL_STATE_STOPPING'))\n break\n case \"NO_NETWORK\":\n IconStartButton.style({ color: '#FF0000' })\n BorderStatusVpnButton.style({ background: 'linear-gradient(to bottom, rgba(255, 77, 77, 0.7), rgba(255, 26, 26, 0.7), rgba(204, 0, 0, 0.7), rgba(168, 0, 0, 0.7))' })\n BorderStatusVpnButton.style({ boxShadow: '0 0 5px rgba(255, 0, 0, 0.5), 0 0 5px rgba(255, 0, 0, 0.5) inset, 2.5px 0 5px rgba(255, 0, 0, 0.5), -2.5px 0 5px rgba(255, 0, 0, 0.5)' });\n VpnStatusValue.html(appTranslateText('LBL_STATE_NO_NETWORK'))\n break\n case \"AUTH\":\n IconStartButton.style({ color: '#FFD700' })\n BorderStatusVpnButton.style({ background: 'linear-gradient(to bottom, rgba(255, 255, 0, 0.7), rgba(255, 255, 0, 0.7), rgba(255, 204, 0, 0.7), rgba(204, 163, 0, 0.7)' })\n BorderStatusVpnButton.style({ boxShadow: '0 0 5px rgba(255, 255, 0, 0.5), 0 0 5px rgba(255, 255, 0, 0.5) inset, 2.5px 0 5px rgba(255, 255, 0, 0.5), -2.5px 0 5px rgba(255, 255, 0, 0.5)' });\n VpnStatusValue.html(appTranslateText('LBL_STATE_AUTH'))\n break\n case \"AUTH_FAILED\":\n IconStartButton.style({ color: '#FF0000' })\n BorderStatusVpnButton.style({ background: 'linear-gradient(to bottom, rgba(255, 77, 77, 0.7), rgba(255, 26, 26, 0.7), rgba(204, 0, 0, 0.7), rgba(168, 0, 0, 0.7))' })\n BorderStatusVpnButton.style({ boxShadow: '0 0 5px rgba(255, 0, 0, 0.5), 0 0 5px rgba(255, 0, 0, 0.5) inset, 2.5px 0 5px rgba(255, 0, 0, 0.5), -2.5px 0 5px rgba(255, 0, 0, 0.5)' });\n VpnStatusValue.html(appTranslateText('LBL_STATE_AUTH_FAILED'))\n break\n }\n }\n\n const writeLogsRegister = () => {\n const data = JSON.parse(appGetLogs())\n\n let logs = \"\"\n\n data.forEach((item) => {\n logs += `${Object.keys(item)} ${item[Object.keys(item)]} <br>`\n })\n\n RegisterLogsText.html(logs)\n\n document.querySelector(\"section.home div.container-logs\").scrollTop =\n document.querySelector(\n \"#logs-value\"\n ).scrollHeight\n }\n const showContainerLogs = () => {\n ContainerLogs.removeClass('display-none')\n }\n const hiddenContainerLogs = () => {\n ContainerLogs.addClass('display-none')\n }\n\n const showContainerTools = () => {\n ContainerTools.addClass('active')\n }\n const hiddenContainerTools = () => {\n ContainerTools.removeClass('active')\n }\n\n const setStatusHotspot = () => {\n if (appGetStatusHotspot() === \"STOPPED\") {\n ValueOfButtonHotspotContainer.html(\"LIGAR HOTSPOT\")\n } else {\n ValueOfButtonHotspotContainer.html(\"DESLIGAR HOTSPOT\")\n }\n }\n const startHotspot = () => {\n appStartHotspot()\n\n ValueOfButtonHotspotContainer.html(\"DESLIGAR HOTSPOT\")\n }\n const stopHotspot = () => {\n appStopHotspot()\n\n ValueOfButtonHotspotContainer.html(\"LIGAR HOTSPOT\")\n }\n const toggleHotspot = () => {\n appGetStatusHotspot() === \"STOPPED\" ? startHotspot() : stopHotspot()\n }\n\n function checkUser() {\n appStartCheckUser()\n\n return\n }\n\n function appCleanData() {\n appClearData()\n\n return\n }\n\n function disableBatteryOptimization() {\n appBatteryOptimize()\n\n return\n }\n\n function acessPointSettings() {\n appApnConfiguration()\n\n return\n }\n\n function renewAccess() {\n appIntoBrowser('https://wa.me/5592994072648')\n\n return\n }\n\n function generateIptvTest() {\n appIntoBrowser('https://painelhls1.net/autotest/?key=2f49f4bf742ea39cb2e54da94a7d2cd3')\n\n return\n }\n\n function openSpeedtest() {\n appIntoBrowser('https://fast.com/')\n\n return\n }\n </script>\n\n <!-- FUNÇÕES PARA O APP -->\n <script>\n const dtConfigClickListener = () => {\n CarrierSelectorValue.html(getConfigName())\n\n const getUsernameValue = () => `${appGetUsername() ?? \"\"}`\n const getPasswordValue = () => `${appGetPassword() ?? \"\"}`\n\n const getUsernamePlaceholder = () => `${appTranslateText(\"LBL_USERNAME\")}`\n const getPassowrdPlaceholder = () => `${appTranslateText(\"LBL_PASSWORD\")}`\n }\n const dtVpnStateListener = (state) => connectionState(state)\n const dtOnNewLogListener = () => writeLogsRegister()\n const dtCheckUserStartedListener = () => hiddenContainerLogs()\n </script>\n\n <!-- AÇÕES EM VARIAVEIS ROOT -->\n <script>\n document.documentElement.style.setProperty(\n \"--space-status-bar\",\n `${appGetStatusbarHeightSize() + 10}px`\n )\n document.documentElement.style.setProperty(\n \"--space-nav-bar\",\n `${appGetNavbarHeightSize() + 10}px`\n )\n </script>\n\n <!-- AÇÕES -->\n <script>\n Logo.attr({ src: getAppLogo() })\n\n ButtonUpdate.on({ click: () => AppUpdate() })\n ButtonTools.on({ click: () => showContainerTools() })\n\n ButtonCarrierSelector.on({ click: () => appDialogConfigs() })\n CarrierSelectorValue.html(getConfigName())\n\n InputUser.attr({ placeholder: getUsernamePlaceholder() })\n InputPassword.attr({ placeholder: getPassowrdPlaceholder() })\n\n InputUser.attr({ value: getUsernameValue() })\n InputPassword.attr({ value: getPasswordValue() })\n\n InputUser.on({ input: (e) => appSetUsername(e.target.value) })\n InputPassword.on({ input: (e) => appSetPassword(e.target.value) })\n\n StartButton.on({ click: () => startStopConnection() })\n\n BackContainerTools.on({ click: () => hiddenContainerTools() })\n\n\n ButtonStartStopHotspot.on({ click: () => toggleHotspot() })\n ButtonCheckUser.on({ click: () => checkUser() })\n ButtonCleanData.on({ click: () => appCleanData() })\n ButtonBatteryOptimization.on({ click: () => disableBatteryOptimization() })\n ButtonAccessPoint.on({ click: () => acessPointSettings() })\n ButtonRenewAccess.on({ click: () => renewAccess() })\n ButtonGenerateIptvTest.on({ click: () => generateIptvTest() })\n ButtonSpeedtest.on({ click: () => openSpeedtest() })\n\n connectionState()\n setStatusHotspot()\n </script>\n</body>\n\n</html>",
  345. "type": "HTML",
  346. "status": "ACTIVE",
  347. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  348. },
  349. {
  350. "id": 42663,
  351. "label": "ANDROID WEBVIEW (POR SUA CONTA E RISCO)",
  352. "name": "APP_SUPPORT_BUTTON",
  353. "value": null,
  354. "type": "HTML",
  355. "status": "ACTIVE",
  356. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  357. },
  358. {
  359. "id": 42664,
  360. "label": "PAGINA WEBVIEW (POR SUA CONTA E RISCO)",
  361. "name": "APP_WEB_VIEW",
  362. "value": null,
  363. "type": "HTML",
  364. "status": "ACTIVE",
  365. "user_id": "bf0b665a-d194-4c79-a0cb-9ea6eff750a8"
  366. }
  367. ]

comments powered by Disqus