Linux sothorn202 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 202.28.82.202 | : 216.73.216.9
pkexec version 0.105
Cant Read [ /etc/named.conf ]
iqtd
RED EYES BYPASS SHELL!
Terminal
Auto Root
Adminer
Backdoor Destroyer
Kernel Exploit
Lock Shell
Lock File
Create User
+ Create Folder
+ Create File
/
home /
pr /
wp-content /
plugins /
elementor /
assets /
js /
[ HOME SHELL ]
NAME
SIZE
PERMISSION
ACTION
packages
[ DIR ]
drwxr-xr-x
081ef1d595d61b745bca.bundle.min.js
41.41
KB
-rwxr-xr-x
081ef1d595d61b745bca.bundle.min.js.LICENSE.txt
487
B
-rwxr-xr-x
1bef795bdeaafc779b19.bundle.min.js
58.41
KB
-rwxr-xr-x
46e544e5863270fc32f2.bundle.js
11.12
KB
-rwxr-xr-x
4fdaa70e951ad90db2f2.bundle.min.js
13.29
KB
-rwxr-xr-x
6dc72ebebb42e6117899.bundle.min.js
4.2
KB
-rwxr-xr-x
6ed74dd3befaff90b65c.bundle.js
43.96
KB
-rwxr-xr-x
79d91b3af4aa6bc1c967.bundle.min.js
22.68
KB
-rwxr-xr-x
906cf49fecec599e1a67.bundle.min.js
26.85
KB
-rwxr-xr-x
a493d490206d9432cc8b.bundle.js
15.96
KB
-rwxr-xr-x
a730ee9caa710006b307.bundle.js
265.26
KB
-rwxr-xr-x
ab59172d5784d868ebd9.bundle.min.js
5.67
KB
-rwxr-xr-x
accordion.8799675460c73eb48972.bundle.min.js
3.66
KB
-rwxr-xr-x
accordion.c16b88b2e8a0c50189bc.bundle.js
7.35
KB
-rwxr-xr-x
admin-feedback.js
4.53
KB
-rwxr-xr-x
admin-feedback.min.js
1.93
KB
-rwxr-xr-x
admin-modules.js
41.21
KB
-rwxr-xr-x
admin-modules.min.js
17.58
KB
-rwxr-xr-x
admin-modules.min.js.LICENSE.txt
149
B
-rwxr-xr-x
admin-top-bar.js
64.25
KB
-rwxr-xr-x
admin-top-bar.min.js
10.54
KB
-rwxr-xr-x
admin.js
110.84
KB
-rwxr-xr-x
admin.min.js
50.61
KB
-rwxr-xr-x
admin.min.js.LICENSE.txt
149
B
-rwxr-xr-x
ai-admin.js
1.38
MB
-rwxr-xr-x
ai-admin.min.js
376.74
KB
-rwxr-xr-x
ai-admin.min.js.LICENSE.txt
511
B
-rwxr-xr-x
ai.js
1.4
MB
-rwxr-xr-x
ai.min.js
386.26
KB
-rwxr-xr-x
ai.min.js.LICENSE.txt
511
B
-rwxr-xr-x
alert.c3c6a3fdf4745bd26b7f.bundle.js
1.11
KB
-rwxr-xr-x
alert.cbc2a0fee74ee3ed0419.bundle.min.js
624
B
-rwxr-xr-x
announcements-app.js
100.93
KB
-rwxr-xr-x
announcements-app.min.js
26.74
KB
-rwxr-xr-x
announcements-app.min.js.LICENSE.txt
149
B
-rwxr-xr-x
app-loader.js
257.59
KB
-rwxr-xr-x
app-loader.min.js
90.03
KB
-rwxr-xr-x
app-packages.js
354.58
KB
-rwxr-xr-x
app-packages.min.js
121.23
KB
-rwxr-xr-x
app-packages.min.js.LICENSE.txt
149
B
-rwxr-xr-x
app.js
794.99
KB
-rwxr-xr-x
app.min.js
290.54
KB
-rwxr-xr-x
app.min.js.LICENSE.txt
637
B
-rwxr-xr-x
be69c0d71c69e96d6a96.bundle.min.js
4.03
KB
-rwxr-xr-x
beta-tester.js
22.64
KB
-rwxr-xr-x
beta-tester.min.js
9.23
KB
-rwxr-xr-x
c1dd514ac8d43fbb6919.bundle.js
81.26
KB
-rwxr-xr-x
common-modules.js
292.25
KB
-rwxr-xr-x
common-modules.min.js
102.91
KB
-rwxr-xr-x
common.js
415.89
KB
-rwxr-xr-x
common.min.js
156
KB
-rwxr-xr-x
common.min.js.LICENSE.txt
149
B
-rwxr-xr-x
container-converter.js
53.99
KB
-rwxr-xr-x
container-converter.min.js
18.85
KB
-rwxr-xr-x
container.284c9bf9b36eadd05080.bundle.min.js
9.29
KB
-rwxr-xr-x
container.dfea7c883442d5ae61c8.bundle.js
17.34
KB
-rwxr-xr-x
counter.02cef29c589e742d4c8c.bundle.min.js
912
B
-rwxr-xr-x
counter.3f74a246dff765f39aea.bundle.js
1.59
KB
-rwxr-xr-x
d3bdd130eb38d3b07f85.bundle.js
69.85
KB
-rwxr-xr-x
d6220da5189e9a2aac43.bundle.js
12.21
KB
-rwxr-xr-x
dev-tools.js
23.96
KB
-rwxr-xr-x
dev-tools.min.js
7.51
KB
-rwxr-xr-x
e8a7573e654d921656ab.bundle.js
26.73
KB
-rwxr-xr-x
editor-document.js
73.73
KB
-rwxr-xr-x
editor-document.min.js
26.5
KB
-rwxr-xr-x
editor-environment-v2.js
670
B
-rwxr-xr-x
editor-environment-v2.min.js
246
B
-rwxr-xr-x
editor-loader-v1.js
402
B
-rwxr-xr-x
editor-loader-v1.min.js
88
B
-rwxr-xr-x
editor-loader-v2.js
890
B
-rwxr-xr-x
editor-loader-v2.min.js
443
B
-rwxr-xr-x
editor-modules.js
121.61
KB
-rwxr-xr-x
editor-modules.min.js
51.15
KB
-rwxr-xr-x
editor-modules.min.js.LICENSE.txt
149
B
-rwxr-xr-x
editor.js
2.56
MB
-rwxr-xr-x
editor.min.js
1.06
MB
-rwxr-xr-x
editor.min.js.LICENSE.txt
149
B
-rwxr-xr-x
elementor-admin-bar.js
19.34
KB
-rwxr-xr-x
elementor-admin-bar.min.js
7.37
KB
-rwxr-xr-x
f9b37afff6a65f7b9541.bundle.js
63.05
KB
-rwxr-xr-x
frontend-modules.js
172.99
KB
-rwxr-xr-x
frontend-modules.min.js
57.48
KB
-rwxr-xr-x
frontend.js
101.4
KB
-rwxr-xr-x
frontend.min.js
39.49
KB
-rwxr-xr-x
gutenberg.js
6.5
KB
-rwxr-xr-x
gutenberg.min.js
3.34
KB
-rwxr-xr-x
image-carousel.4455c6362492d9067512.bundle.min.js
432
B
-rwxr-xr-x
image-carousel.9399f19d95d7300cbc2e.bundle.js
929
B
-rwxr-xr-x
import-export-admin.js
15.21
KB
-rwxr-xr-x
import-export-admin.min.js
6.18
KB
-rwxr-xr-x
kit-elements-defaults-editor.js
90.5
KB
-rwxr-xr-x
kit-elements-defaults-editor.min.js
35.47
KB
-rwxr-xr-x
kit-elements-defaults-editor.min.js.LICENSE.txt
149
B
-rwxr-xr-x
kit-library.26f1573ff46203710889.bundle.min.js
87.76
KB
-rwxr-xr-x
kit-library.b4cf9f541e44f7bbc972.bundle.js
225.58
KB
-rwxr-xr-x
lightbox.1b6e05e0607040eb8929.bundle.min.js
29.55
KB
-rwxr-xr-x
lightbox.c35dbfc7181d730b570c.bundle.js
51.67
KB
-rwxr-xr-x
nested-accordion.js
29.29
KB
-rwxr-xr-x
nested-accordion.min.js
12.36
KB
-rwxr-xr-x
nested-accordion.min.js.LICENSE.txt
149
B
-rwxr-xr-x
nested-elements.js
20.54
KB
-rwxr-xr-x
nested-elements.min.js
6.25
KB
-rwxr-xr-x
nested-tabs.js
29.26
KB
-rwxr-xr-x
nested-tabs.min.js
12.35
KB
-rwxr-xr-x
nested-tabs.min.js.LICENSE.txt
149
B
-rwxr-xr-x
new-template.js
15.51
KB
-rwxr-xr-x
new-template.min.js
6.68
KB
-rwxr-xr-x
notes.js
25.68
KB
-rwxr-xr-x
notes.min.js
9.52
KB
-rwxr-xr-x
onboarding.c7161864bbc938281940.bundle.min.js
51.49
KB
-rwxr-xr-x
onboarding.d1f3b86a6e269191f707.bundle.js
117.49
KB
-rwxr-xr-x
preloaded-modules.js
77.25
KB
-rwxr-xr-x
preloaded-modules.min.js
40.97
KB
-rwxr-xr-x
progress.553d43a5b3903206bedc.bundle.js
1.21
KB
-rwxr-xr-x
progress.ca55d33bb06cee4e6f02.bundle.min.js
655
B
-rwxr-xr-x
responsive-bar.js
26.13
KB
-rwxr-xr-x
responsive-bar.min.js
11.72
KB
-rwxr-xr-x
styleguide-app-initiator.js
33.68
KB
-rwxr-xr-x
styleguide-app-initiator.min.js
13.69
KB
-rwxr-xr-x
styleguide-app-initiator.min.js.LICENSE.txt
149
B
-rwxr-xr-x
styleguide.js
101.81
KB
-rwxr-xr-x
styleguide.min.js
45.78
KB
-rwxr-xr-x
tabs.520bc2ed4560c561029e.bundle.js
7.28
KB
-rwxr-xr-x
tabs.c2af5be7f9cb3cdcf3d5.bundle.min.js
3.62
KB
-rwxr-xr-x
text-editor.2c35aafbe5bf0e127950.bundle.min.js
1.33
KB
-rwxr-xr-x
text-editor.2f2f7e0ea1e16387a004.bundle.js
2.73
KB
-rwxr-xr-x
text-path.b50b3e74488a4e302613.bundle.min.js
3.18
KB
-rwxr-xr-x
text-path.bfa8a1f6fcf6c803aaa9.bundle.js
7.91
KB
-rwxr-xr-x
toggle.31881477c45ff5cf9d4d.bundle.min.js
3.68
KB
-rwxr-xr-x
toggle.d79746a764407a0828ee.bundle.js
7.38
KB
-rwxr-xr-x
video.bb330f394f46f2666bc1.bundle.js
6.57
KB
-rwxr-xr-x
video.fea4f8dfdf17262f23e8.bundle.min.js
3.25
KB
-rwxr-xr-x
web-cli.js
498.74
KB
-rwxr-xr-x
web-cli.min.js
174.84
KB
-rwxr-xr-x
web-cli.min.js.LICENSE.txt
149
B
-rwxr-xr-x
webpack.runtime.js
15.14
KB
-rwxr-xr-x
webpack.runtime.min.js
4.88
KB
-rwxr-xr-x
wp-audio.75f0ced143febb8cd31a.bundle.min.js
349
B
-rwxr-xr-x
wp-audio.b8efdc046bc9df72a075.bundle.js
781
B
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : text-path.bfa8a1f6fcf6c803aaa9.bundle.js
/*! elementor - v3.16.0 - 20-09-2023 */ "use strict"; (self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["text-path"],{ /***/ "../modules/shapes/assets/js/frontend/handlers/text-path.js": /*!******************************************************************!*\ !*** ../modules/shapes/assets/js/frontend/handlers/text-path.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _utils = __webpack_require__(/*! elementor-frontend/utils/utils */ "../assets/dev/js/frontend/utils/utils.js"); class TextPathHandler extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { pathContainer: '.e-text-path', svg: '.e-text-path > svg' } }; } getDefaultElements() { const { selectors } = this.getSettings(); const element = this.$element[0]; return { widgetWrapper: element, pathContainer: element.querySelector(selectors.pathContainer), svg: element.querySelector(selectors.svg), textPath: element.querySelector(selectors.textPath) }; } /** * Initialize the object. * * @return {void} */ onInit() { this.elements = this.getDefaultElements(); this.fetchSVG().then(() => { // Generate unique IDs using the wrapper's `data-id`. this.pathId = `e-path-${this.elements.widgetWrapper.dataset.id}`; this.textPathId = `e-text-path-${this.elements.widgetWrapper.dataset.id}`; if (!this.elements.svg) { return; } this.initTextPath(); }); } /** * Fetch & Inject the SVG markup. * * @return {Promise} success */ fetchSVG() { const { url } = this.elements.pathContainer.dataset; if (!url || !url.endsWith('.svg')) { return Promise.reject(url); } return fetch(url).then(res => res.text()).then(svg => { this.elements.pathContainer.innerHTML = svg; // Re-initialize the elements, so the SVG tag will be added. this.elements = this.getDefaultElements(); }); } /** * Gets a text offset (relative to the starting point) as a string or int, and set it as percents to the * `startOffset` attribute of the `<textPath>` element. * * @param {string|number} offset The text start offset. * * @return {void} */ setOffset(offset) { if (!this.elements.textPath) { return; } if (this.isRTL()) { offset = 100 - parseInt(offset); } this.elements.textPath.setAttribute('startOffset', offset + '%'); } /** * Handle element settings changes. * * @param {Object} setting The settings object from the editor. * * @return {void} */ onElementChange(setting) { const { start_point: startPoint, text } = this.getElementSettings(); switch (setting) { case 'start_point': this.setOffset(startPoint.size); break; case 'text': this.setText(text); break; case 'text_path_direction': this.setOffset(startPoint.size); this.setText(text); break; default: break; } } /** * Attach a unique ID to the `path` element in the SVG, based on the container's ID. * This function selects the first `path` with a `data-path-anchor` attribute, or defaults to the first `path` element. * * @return {void} */ attachIdToPath() { // Prioritize the custom `data` attribute over the `path` element, and fallback to the first `path`. const path = this.elements.svg.querySelector('[data-path-anchor]') || this.elements.svg.querySelector('path'); path.id = this.pathId; } /** * Initialize & build the SVG markup of the widget using the settings from the panel. * * @return {void} */ initTextPath() { const { start_point: startPoint } = this.getElementSettings(); const text = this.elements.pathContainer.dataset.text; this.attachIdToPath(); // Generate the `textPath` element with its settings. this.elements.svg.innerHTML += ` <text> <textPath id="${this.textPathId}" href="#${this.pathId}"></textPath> </text> `; // Regenerate the elements object to have access to `this.elements.textPath`. this.elements.textPath = this.elements.svg.querySelector(`#${this.textPathId}`); this.setOffset(startPoint.size); this.setText(text); } /** * Sets the text on the SVG path, including the link (if set) and its properties. * * @param {string} newText The new text to put in the text path. * * @return {void} */ setText(newText) { const { is_external: isExternal, nofollow } = this.getElementSettings().link; const { linkUrl: url } = this.elements.pathContainer.dataset; const target = isExternal ? '_blank' : '', rel = nofollow ? 'nofollow' : ''; // Add link attributes. if (url) { newText = `<a href="${(0, _utils.escapeHTML)(url)}" rel="${rel}" target="${target}">${(0, _utils.escapeHTML)(newText)}</a>`; } // Set the text. this.elements.textPath.innerHTML = newText; // Remove the cloned element if exists. const existingClone = this.elements.svg.querySelector(`#${this.textPathId}-clone`); if (existingClone) { existingClone.remove(); } // Reverse the text if needed. if (this.shouldReverseText()) { // Keep an invisible selectable copy of original element for better a11y. const clone = this.elements.textPath.cloneNode(); clone.id += '-clone'; clone.classList.add('elementor-hidden'); clone.textContent = newText; this.elements.textPath.parentNode.appendChild(clone); this.reverseToRTL(); } } /** * Determine if the text direction of the widget should be RTL or not, based on the site direction and the widget's settings. * * @return {boolean} is RTL */ isRTL() { const { text_path_direction: direction } = this.getElementSettings(); let isRTL = elementorFrontend.config.is_rtl; if (direction) { isRTL = 'rtl' === direction; } return isRTL; } /** * Determine if it should RTL the text (reversing it, etc.). * * @return {boolean} should RTL */ shouldReverseText() { if (!this.isRTL()) { return false; } const isFirefox = elementorFrontend.utils.environment.firefox; if (isFirefox) { return false; } const isChromium = elementorFrontend.utils.environment.blink; if (isChromium) { return !this.isFixedChromiumVersion(); } return true; } /** * Chromium >= 96 fixed the issue with RTL text in SVG. * * @see https://chromium-review.googlesource.com/c/chromium/src/+/3159942 * @see https://chromium.googlesource.com/chromium/src/+/4f1bc7d6ff8bfbf6348613bdb970fcdc2a706b5a/chrome/VERSION */ isFixedChromiumVersion() { const FIXED_CHROMIUM_VERSION = 96; const currentChromiumVersion = parseInt(navigator.userAgent.match(/(?:Chrom(?:e|ium)|Edg)\/([0-9]+)\./)[1]); return currentChromiumVersion >= FIXED_CHROMIUM_VERSION; } /** * Reverse the text path to support RTL. * * @return {void} */ reverseToRTL() { // Make sure to use the inner `a` tag if exists. let parentElement = this.elements.textPath; parentElement = parentElement.querySelector('a') || parentElement; // Catch all RTL chars and reverse their order. const pattern = /([\u0591-\u07FF\u200F\u202B\u202E\uFB1D-\uFDFD\uFE70-\uFEFC\s$&+,:;=?@#|'<>.^*()%!-]+)/ig; // Reverse the text. parentElement.textContent = parentElement.textContent.replace(pattern, word => { return word.split('').reverse().join(''); }); // Add a11y attributes. parentElement.setAttribute('aria-hidden', true); } } exports["default"] = TextPathHandler; /***/ }) }]); //# sourceMappingURL=text-path.bfa8a1f6fcf6c803aaa9.bundle.js.map
Close