CINXE.COM
Latest blog Industry Articles - Fibre2Fashion - 1.
<!DOCTYPE html> <html> <head> <title>Latest blog Industry Articles - Fibre2Fashion - 1.</title> <meta name="keywords" content="blog industry articles, blog articles" /> <meta name="description" content="Read latest blog industry articles. blog articles with details on latest business trends and opportunities - 1." /> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport" /> <meta name="Revisit-After" content="1 Day" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Robots" content="ALL, INDEX, FOLLOW" /> <meta name="language" content="EN" /> <meta http-equiv="content-language" content="en-US" /> <meta name="document-type" content="Public" /> <meta name="document-classification" content="Business to Business" /> <meta name="coverage" content="Worldwide" /> <meta name="author" content="www.fibre2fashion.com" /> <meta name="distribution" content="global" /> <meta name="twitter:card" content="summary_large_image" /> <link rel='canonical' href='https://www.fibre2fashion.com/industry-article/blog/859' /> <meta name="viewport" content="width=device-width, initial-scale=1"> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/bootstrap.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/commonV1.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/esteemed-clients.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/header-home-css.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/responsive.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/owl.carousel.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/owl.theme.default.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/font-awesome.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/custom.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/cssv1/footer-home-css.min.css?var=2.66" rel="stylesheet" /> <link type="text/css" href="https://static.fibre2fashion.com/StaticResources/css/jquery.selectric.min.css?var=2.66" rel="stylesheet" /> <link href="/industry-article/bundles/css?v=QeW2a5TDQAbNfjm0Z3QmcChpY_Q_HfhLKBjH0zqNRd01" rel="stylesheet"/> <link type="text/css" href="https://static.fibre2fashion.com/staticresources/css/colorbox.min.css?var=2.66" rel="stylesheet" /> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/1_11/jquery.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources//js/jquery/plugins/jquery.validate.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources//js/jquery/plugins/jquery.validate.unobtrusive.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources//js/jquery/plugins/jquery-ui.min.js"></script> <script src="https://static.fibre2fashion.com/StaticResources/js/jquery/plugins/jquery.selectric.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/f2f/plugins/Common.min.js?var=1"></script> <script src="https://static.fibre2fashion.com/staticresources/js/bootstrap/bootstrap.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/jquery.colorbox.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/owl.carouselV1.js?var=1.0"></script> <script src="https://static.fibre2fashion.com/staticresources/js/jquery/plugins/jquery.flexisel.min.js"></script> <script src="https://static.fibre2fashion.com/staticresources/mobile/js/slick.min.js?var=2.25"></script> <link rel="shortcut icon" href="https://static.fibre2fashion.com/images/favicon.ico" type="image/x-icon"> <link rel="icon" href="https://static.fibre2fashion.com/images/favicon.ico" type="image/x-icon"> <script type="text/javascript"> var BASEPATHURL = 'https://www.fibre2fashion.com/industry-article'; $(document).ready(function () { //Examples of how to assign the Colorbox event to elements $(".inline").colorbox({ inline: true, width: "60%", height: "auto", verticalScrolling: false, fixed: true, transition: "none" }); }); </script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9] <![endif]--> <script type="text/javascript" defer> function ReadCookie(cookieName) { var re = new RegExp('[; ]' + cookieName + '=([^\\s;]*)'); var sMatch = (' ' + document.cookie).match(re); if (cookieName && sMatch) return unescape(sMatch[1]); return ''; } function SetCookie(cookieName, cookieValue, nDays) { var today = new Date(); var expire = new Date(); if (nDays === null || nDays === 0) nDays = 1; expire.setTime(today.getTime() + 3600000 * 24 * nDays); document.cookie = cookieName + "=" + escape(cookieValue) + ";path=/;domain=.fibre2fashion.com;expires=" + expire.toGMTString(); } function makeid() { var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < 9; i++) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } uival = ReadCookie("flthiga") if (uival == "") { var jcval = makeid() SetCookie("flthiga", jcval, 365); uival = jcval; } Psection = ReadCookie("paidsection") </script> <script defer type="text/javascript" language="javascript" src="https://static.fibre2fashion.com//VirtualPageView/SetVirtualPageView.js?V=1.4"></script> <!-- Google Tag Manager --> <script defer> (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-NDR3B7');</script> <!-- End Google Tag Manager --> <!-- Webengage Script Start --> <script defer id="_webengage_script_tag" type="text/javascript" language="javascript" src="https://static.fibre2fashion.com/staticresources/js/externalplugin/f2fwebengage.min.js?var=1.0"></script> <script defer type="text/javascript" async language="javascript" src="https://static.fibre2fashion.com/staticresources/js/externalplugin/webengagecookie.min.js"></script> <!-- Webengage Script End --> <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async='async'></script> <script src="https://static.fibre2fashion.com/staticresources/js/others/init.min.js"></script> </head> <body> <!-- Google Tag Manager --> <noscript> <iframe src="//www.googletagmanager.com/ns.html?id=GTM-NDR3B7" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager --> <div class="wrapper"> <style> .hide { display: none !important; } </style> <style> #advsearchhide a, #advsearchhide1 a, .selectric .label { text-transform: uppercase; font-family: var(--boldfonts) } .newsletter-main { width: 80% !important } .footercheckbox { width: 100% !important; margin: 20px auto !important } .search-icon { width: 22px; height: 22px; float: left; margin-right: 10px; cursor: pointer } .search-icon:last-child { margin-right: 0 } .search-icon .fa-angle-down { position: absolute; color: #0f275f; top: 5px; right: -8px; font-size: 18px } .bordernone { border-left: 0 !important } .search-close-icon { position: absolute; right: 22px; top: 0; font-size: 36px; color: #8d98b3; font-weight: 400; opacity: .6; cursor: pointer } .icon-group { margin-top: 18px } .new-search { border: 1px solid #ccc; border-radius: 5px; display: flex; align-items: center; justify-content: space-between; padding: 5px 10px } .new-search .input-group-addon { border: none; width: 6% } .stylish-input-group .headersearch.f2fsearchtext { border: none } .greyscale img { -webkit-filter: grayscale(100%); filter: grayscale(100%); opacity: .4 } .searchicon { width: 36px; height: 36px; display: inline-block; background: 0 0; border: 0 } .searchicon img { opacity: .5; padding-right: 10px } .m-auto { margin: 0 auto; float: none } .space-none { padding-top: 0 !important; height: 390px !important } .hidden-menu { width: 100%; position: absolute; display: none; left: 0; background-color: #fff; box-shadow: 0 1px 13px 0 rgba(24,26,31,.16); top: 100%; border-top: 1px solid #c9c9c9; right: 0; padding-bottom: 3%; padding-top: 3%; z-index: 9999 } .hidden-menuheight { height: 360px } .esAutoSuggest.ui-widget { font-size: var(--smallfontsize) !important; font-family: var(--regularfonts) !important } .stylish-input-group .headersearch { width: 75% !important } .esAutoSuggest .f2fsection { color: #999; font-size: 12px } .selectric .label, .selectric-items li, .selectric-items ul { font-size: var(--smallfontsize); font-size: var(--smallfontsize) } .show { position: fixed; top: 0; left: 0; z-index: 1039; width: 100vw; height: 100vh; opacity: .5; background-color: #000 } .selectric { background: 0 0 !important } .selectric .label { margin: 0 !important; text-align: left; color: #777 } .selectric-esCategory { width: 170px !important; float: left } .selectric .button:after { border-width: 6px !important } .searchadvertisement ul { margin: 0; padding: 0; list-style-type: none } .searchadvertisement li { float: left; width: 25%; padding: 0 15px } .commontopspace { margin-top: 85px } .esAutoSuggest.ui-menu .ui-menu-item { padding: 10px 1em 8px .8em !important; line-height: 1.4 !important } .searchadvertisement { width: 68%; margin: 20px auto } .advancesearchmenu { width: 65%; margin: 10px auto } .advancesearchmenu .advance-search-title { text-align: right; width: 100%; text-transform: uppercase } a#advanceSearch { text-decoration: underline; color: #000; cursor: pointer } a:hover#advanceSearch { color: #000 } .advancesearchmenu .form-control { padding: 6px 3px; font-size: 13px; box-shadow: none; border-color: #ebebeb } .advancesearchmenu label { font-weight: 400; color: #000; font-size: 13px } .advancesearchmenu .express-postingbtn { border: 0; font-family: var(--boldfonts); font-size: 16px; padding: 6px 30px; text-align: center; width: auto } .advancesearchmenu #divAdvanceSearch .tag-ctn { height: 35px !important; min-height: inherit; border-color: #ebebeb } #advanceSearch .middle-container { width: 100%; margin: 0 } .advancesearchmenu #advsearchhide, .advancesearchmenu #divAdvanceSearch { width: 100% !important } #advsearchhide a, #advsearchhide1 a { float: left; width: 100%; text-align: left; font-size: 16px; margin: 0 0 30px; color: #000; cursor: pointer } #advsearchhide a .fa, #advsearchhide1 a .fa { font-size: 25px; color: #b2bacc; margin-right: 8px; vertical-align: bottom } @media (max-width:1024px) { .searchadvertisement { width: 86% } .hidden-menu .col-md-8 { width: 85% } .advancesearchmenu { width: 82% } .icon-group { margin-right: 20px } .newsletter-main .col-md-6.first-section { width: 85%; margin: 0 auto; float: none } .newsletter-main .col-md-6 { width: 100% } } @media (max-width:992px) { .commontopspace { margin-top: 135px } } @media (max-width:800px) { .hidden-menu .col-md-8, .searchadvertisement { width: 100% } .advancesearchmenu { width: 98% } .search-icon.btn3 { padding-top: 1px } } nav.sponsored-alert { z-index: 1040 !important } .navbar-fixed-bottom, .navbar-fixed-top { z-index: 1040 } @media (max-width:768px) { .commontopspace { margin-top: 43px } } </style> <script defer> !function () { "use strict"; var e, a = function (s, i) { function r(e) { return Math.floor(e) } function n() { var e = T.params.autoplay, a = T.slides.eq(T.activeIndex); a.attr("data-swiper-autoplay") && (e = a.attr("data-swiper-autoplay") || T.params.autoplay), T.autoplayTimeoutId = setTimeout(function () { T.params.loop ? (T.fixLoop(), T._slideNext(), T.emit("onAutoplay", T)) : T.isEnd ? i.autoplayStopOnLast ? T.stopAutoplay() : (T._slideTo(0), T.emit("onAutoplay", T)) : (T._slideNext(), T.emit("onAutoplay", T)) }, e) } function o(a, t) { var s = e(a.target); if (!s.is(t)) if ("string" == typeof t) s = s.parents(t); else if (t.nodeType) { var i; return s.parents().each(function (e, a) { a === t && (i = t) }), i ? t : void 0 } if (0 !== s.length) return s[0] } function l(e, a) { a = a || {}; var t = window.MutationObserver || window.WebkitMutationObserver, s = new t(function (e) { e.forEach(function (e) { T.onResize(!0), T.emit("onObserverUpdate", T, e) }) }); s.observe(e, { attributes: void 0 === a.attributes || a.attributes, childList: void 0 === a.childList || a.childList, characterData: void 0 === a.characterData || a.characterData }), T.observers.push(s) } function p(e) { e.originalEvent && (e = e.originalEvent); var a = e.keyCode || e.charCode; if (!T.params.allowSwipeToNext && (T.isHorizontal() && 39 === a || !T.isHorizontal() && 40 === a)) return !1; if (!T.params.allowSwipeToPrev && (T.isHorizontal() && 37 === a || !T.isHorizontal() && 38 === a)) return !1; if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || document.activeElement && document.activeElement.nodeName && ("input" === document.activeElement.nodeName.toLowerCase() || "textarea" === document.activeElement.nodeName.toLowerCase()))) { if (37 === a || 39 === a || 38 === a || 40 === a) { var t = !1; if (T.container.parents("." + T.params.slideClass).length > 0 && 0 === T.container.parents("." + T.params.slideActiveClass).length) return; var s = { left: window.pageXOffset, top: window.pageYOffset }, i = window.innerWidth, r = window.innerHeight, n = T.container.offset(); T.rtl && (n.left = n.left - T.container[0].scrollLeft); for (var o = [[n.left, n.top], [n.left + T.width, n.top], [n.left, n.top + T.height], [n.left + T.width, n.top + T.height]], l = 0; l < o.length; l++) { var p = o[l]; p[0] >= s.left && p[0] <= s.left + i && p[1] >= s.top && p[1] <= s.top + r && (t = !0) } if (!t) return } T.isHorizontal() ? (37 !== a && 39 !== a || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), (39 === a && !T.rtl || 37 === a && T.rtl) && T.slideNext(), (37 === a && !T.rtl || 39 === a && T.rtl) && T.slidePrev()) : (38 !== a && 40 !== a || (e.preventDefault ? e.preventDefault() : e.returnValue = !1), 40 === a && T.slideNext(), 38 === a && T.slidePrev()), T.emit("onKeyPress", T, a) } } function d(e) { var a = 0, t = 0, s = 0, i = 0; return "detail" in e && (t = e.detail), "wheelDelta" in e && (t = -e.wheelDelta / 120), "wheelDeltaY" in e && (t = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (a = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (a = t, t = 0), s = 10 * a, i = 10 * t, "deltaY" in e && (i = e.deltaY), "deltaX" in e && (s = e.deltaX), (s || i) && e.deltaMode && (1 === e.deltaMode ? (s *= 40, i *= 40) : (s *= 800, i *= 800)), s && !a && (a = s < 1 ? -1 : 1), i && !t && (t = i < 1 ? -1 : 1), { spinX: a, spinY: t, pixelX: s, pixelY: i } } function u(e) { e.originalEvent && (e = e.originalEvent); var a = 0, t = T.rtl ? -1 : 1, s = d(e); if (T.params.mousewheelForceToAxis) if (T.isHorizontal()) { if (!(Math.abs(s.pixelX) > Math.abs(s.pixelY))) return; a = s.pixelX * t } else { if (!(Math.abs(s.pixelY) > Math.abs(s.pixelX))) return; a = s.pixelY } else a = Math.abs(s.pixelX) > Math.abs(s.pixelY) ? -s.pixelX * t : -s.pixelY; if (0 !== a) { if (T.params.mousewheelInvert && (a = -a), T.params.freeMode) { var i = T.getWrapperTranslate() + a * T.params.mousewheelSensitivity, r = T.isBeginning, n = T.isEnd; if (i >= T.minTranslate() && (i = T.minTranslate()), i <= T.maxTranslate() && (i = T.maxTranslate()), T.setWrapperTransition(0), T.setWrapperTranslate(i), T.updateProgress(), T.updateActiveIndex(), (!r && T.isBeginning || !n && T.isEnd) && T.updateClasses(), T.params.freeModeSticky ? (clearTimeout(T.mousewheel.timeout), T.mousewheel.timeout = setTimeout(function () { T.slideReset() }, 300)) : T.params.lazyLoading && T.lazy && T.lazy.load(), T.emit("onScroll", T, e), T.params.autoplay && T.params.autoplayDisableOnInteraction && T.stopAutoplay(), 0 === i || i === T.maxTranslate()) return } else { if ((new window.Date).getTime() - T.mousewheel.lastScrollTime > 60) if (a < 0) if (T.isEnd && !T.params.loop || T.animating) { if (T.params.mousewheelReleaseOnEdges) return !0 } else T.slideNext(), T.emit("onScroll", T, e); else if (T.isBeginning && !T.params.loop || T.animating) { if (T.params.mousewheelReleaseOnEdges) return !0 } else T.slidePrev(), T.emit("onScroll", T, e); T.mousewheel.lastScrollTime = (new window.Date).getTime() } return e.preventDefault ? e.preventDefault() : e.returnValue = !1, !1 } } function c(a, t) { a = e(a); var s, i, r, n = T.rtl ? -1 : 1; s = a.attr("data-swiper-parallax") || "0", i = a.attr("data-swiper-parallax-x"), r = a.attr("data-swiper-parallax-y"), i || r ? (i = i || "0", r = r || "0") : T.isHorizontal() ? (i = s, r = "0") : (r = s, i = "0"), i = i.indexOf("%") >= 0 ? parseInt(i, 10) * t * n + "%" : i * t * n + "px", r = r.indexOf("%") >= 0 ? parseInt(r, 10) * t + "%" : r * t + "px", a.transform("translate3d(" + i + ", " + r + ",0px)") } function m(e) { return 0 !== e.indexOf("on") && (e = e[0] !== e[0].toUpperCase() ? "on" + e[0].toUpperCase() + e.substring(1) : "on" + e), e } if (!(this instanceof a)) return new a(s, i); var h = { direction: "horizontal", touchEventsTarget: "container", initialSlide: 0, speed: 300, autoplay: !1, autoplayDisableOnInteraction: !0, autoplayStopOnLast: !1, iOSEdgeSwipeDetection: !1, iOSEdgeSwipeThreshold: 20, freeMode: !1, freeModeMomentum: !0, freeModeMomentumRatio: 1, freeModeMomentumBounce: !0, freeModeMomentumBounceRatio: 1, freeModeMomentumVelocityRatio: 1, freeModeSticky: !1, freeModeMinimumVelocity: .02, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", coverflow: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 }, flip: { slideShadows: !0, limitRotation: !0 }, cube: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 }, fade: { crossFade: !1 }, parallax: !1, zoom: !1, zoomMax: 3, zoomMin: 1, zoomToggle: !0, scrollbar: null, scrollbarHide: !0, scrollbarDraggable: !1, scrollbarSnapOnRelease: !1, keyboardControl: !1, mousewheelControl: !1, mousewheelReleaseOnEdges: !1, mousewheelInvert: !1, mousewheelForceToAxis: !1, mousewheelSensitivity: 1, mousewheelEventsTarged: "container", hashnav: !1, hashnavWatchState: !1, history: !1, replaceState: !1, breakpoints: void 0, spaceBetween: 0, slidesPerView: 1, slidesPerColumn: 1, slidesPerColumnFill: "column", slidesPerGroup: 1, centeredSlides: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, onlyExternal: !1, threshold: 0, touchMoveStopPropagation: !0, touchReleaseOnEdges: !1, uniqueNavElements: !0, pagination: null, paginationElement: "span", paginationClickable: !1, paginationHide: !1, paginationBulletRender: null, paginationProgressRender: null, paginationFractionRender: null, paginationCustomRender: null, paginationType: "bullets", resistance: !0, resistanceRatio: .85, nextButton: null, prevButton: null, watchSlidesProgress: !1, watchSlidesVisibility: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, lazyLoading: !1, lazyLoadingInPrevNext: !1, lazyLoadingInPrevNextAmount: 1, lazyLoadingOnTransitionStart: !1, preloadImages: !0, updateOnImagesReady: !0, loop: !1, loopAdditionalSlides: 0, loopedSlides: null, control: void 0, controlInverse: !1, controlBy: "slide", normalizeSlideIndex: !0, allowSwipeToPrev: !0, allowSwipeToNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", passiveListeners: !0, containerModifierClass: "swiper-container-", slideClass: "swiper-slide", slideActiveClass: "swiper-slide-active", slideDuplicateActiveClass: "swiper-slide-duplicate-active", slideVisibleClass: "swiper-slide-visible", slideDuplicateClass: "swiper-slide-duplicate", slideNextClass: "swiper-slide-next", slideDuplicateNextClass: "swiper-slide-duplicate-next", slidePrevClass: "swiper-slide-prev", slideDuplicatePrevClass: "swiper-slide-duplicate-prev", wrapperClass: "swiper-wrapper", bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", buttonDisabledClass: "swiper-button-disabled", paginationCurrentClass: "swiper-pagination-current", paginationTotalClass: "swiper-pagination-total", paginationHiddenClass: "swiper-pagination-hidden", paginationProgressbarClass: "swiper-pagination-progressbar", paginationClickableClass: "swiper-pagination-clickable", paginationModifierClass: "swiper-pagination-", lazyLoadingClass: "swiper-lazy", lazyStatusLoadingClass: "swiper-lazy-loading", lazyStatusLoadedClass: "swiper-lazy-loaded", lazyPreloaderClass: "swiper-lazy-preloader", notificationClass: "swiper-notification", preloaderClass: "preloader", zoomContainerClass: "swiper-zoom-container", observer: !1, observeParents: !1, a11y: !1, prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", runCallbacksOnInit: !0 }, g = i && i.virtualTranslate; i = i || {}; var f = {}; for (var v in i) if ("object" != typeof i[v] || null === i[v] || (i[v].nodeType || i[v] === window || i[v] === document || void 0 !== t && i[v] instanceof t || "undefined" != typeof jQuery && i[v] instanceof jQuery)) f[v] = i[v]; else { f[v] = {}; for (var w in i[v]) f[v][w] = i[v][w] } for (var y in h) if (void 0 === i[y]) i[y] = h[y]; else if ("object" == typeof i[y]) for (var x in h[y]) void 0 === i[y][x] && (i[y][x] = h[y][x]); var T = this; if (T.params = i, T.originalParams = f, T.classNames = [], void 0 !== e && void 0 !== t && (e = t), (void 0 !== e || (e = void 0 === t ? window.Dom7 || window.Zepto || window.jQuery : t)) && (T.$ = e, T.currentBreakpoint = void 0, T.getActiveBreakpoint = function () { if (!T.params.breakpoints) return !1; var e, a = !1, t = []; for (e in T.params.breakpoints) T.params.breakpoints.hasOwnProperty(e) && t.push(e); t.sort(function (e, a) { return parseInt(e, 10) > parseInt(a, 10) }); for (var s = 0; s < t.length; s++)(e = t[s]) >= window.innerWidth && !a && (a = e); return a || "max" }, T.setBreakpoint = function () { var e = T.getActiveBreakpoint(); if (e && T.currentBreakpoint !== e) { var a = e in T.params.breakpoints ? T.params.breakpoints[e] : T.originalParams, t = T.params.loop && a.slidesPerView !== T.params.slidesPerView; for (var s in a) T.params[s] = a[s]; T.currentBreakpoint = e, t && T.destroyLoop && T.reLoop(!0) } }, T.params.breakpoints && T.setBreakpoint(), T.container = e(s), 0 !== T.container.length)) { if (T.container.length > 1) { var b = []; return T.container.each(function () { b.push(new a(this, i)) }), b } T.container[0].swiper = T, T.container.data("swiper", T), T.classNames.push(T.params.containerModifierClass + T.params.direction), T.params.freeMode && T.classNames.push(T.params.containerModifierClass + "free-mode"), T.support.flexbox || (T.classNames.push(T.params.containerModifierClass + "no-flexbox"), T.params.slidesPerColumn = 1), T.params.autoHeight && T.classNames.push(T.params.containerModifierClass + "autoheight"), (T.params.parallax || T.params.watchSlidesVisibility) && (T.params.watchSlidesProgress = !0), T.params.touchReleaseOnEdges && (T.params.resistanceRatio = 0), ["cube", "coverflow", "flip"].indexOf(T.params.effect) >= 0 && (T.support.transforms3d ? (T.params.watchSlidesProgress = !0, T.classNames.push(T.params.containerModifierClass + "3d")) : T.params.effect = "slide"), "slide" !== T.params.effect && T.classNames.push(T.params.containerModifierClass + T.params.effect), "cube" === T.params.effect && (T.params.resistanceRatio = 0, T.params.slidesPerView = 1, T.params.slidesPerColumn = 1, T.params.slidesPerGroup = 1, T.params.centeredSlides = !1, T.params.spaceBetween = 0, T.params.virtualTranslate = !0), "fade" !== T.params.effect && "flip" !== T.params.effect || (T.params.slidesPerView = 1, T.params.slidesPerColumn = 1, T.params.slidesPerGroup = 1, T.params.watchSlidesProgress = !0, T.params.spaceBetween = 0, void 0 === g && (T.params.virtualTranslate = !0)), T.params.grabCursor && T.support.touch && (T.params.grabCursor = !1), T.wrapper = T.container.children("." + T.params.wrapperClass), T.params.pagination && (T.paginationContainer = e(T.params.pagination), T.params.uniqueNavElements && "string" == typeof T.params.pagination && T.paginationContainer.length > 1 && 1 === T.container.find(T.params.pagination).length && (T.paginationContainer = T.container.find(T.params.pagination)), "bullets" === T.params.paginationType && T.params.paginationClickable ? T.paginationContainer.addClass(T.params.paginationModifierClass + "clickable") : T.params.paginationClickable = !1, T.paginationContainer.addClass(T.params.paginationModifierClass + T.params.paginationType)), (T.params.nextButton || T.params.prevButton) && (T.params.nextButton && (T.nextButton = e(T.params.nextButton), T.params.uniqueNavElements && "string" == typeof T.params.nextButton && T.nextButton.length > 1 && 1 === T.container.find(T.params.nextButton).length && (T.nextButton = T.container.find(T.params.nextButton))), T.params.prevButton && (T.prevButton = e(T.params.prevButton), T.params.uniqueNavElements && "string" == typeof T.params.prevButton && T.prevButton.length > 1 && 1 === T.container.find(T.params.prevButton).length && (T.prevButton = T.container.find(T.params.prevButton)))), T.isHorizontal = function () { return "horizontal" === T.params.direction }, T.rtl = T.isHorizontal() && ("rtl" === T.container[0].dir.toLowerCase() || "rtl" === T.container.css("direction")), T.rtl && T.classNames.push(T.params.containerModifierClass + "rtl"), T.rtl && (T.wrongRTL = "-webkit-box" === T.wrapper.css("display")), T.params.slidesPerColumn > 1 && T.classNames.push(T.params.containerModifierClass + "multirow"), T.device.android && T.classNames.push(T.params.containerModifierClass + "android"), T.container.addClass(T.classNames.join(" ")), T.translate = 0, T.progress = 0, T.velocity = 0, T.lockSwipeToNext = function () { T.params.allowSwipeToNext = !1, T.params.allowSwipeToPrev === !1 && T.params.grabCursor && T.unsetGrabCursor() }, T.lockSwipeToPrev = function () { T.params.allowSwipeToPrev = !1, T.params.allowSwipeToNext === !1 && T.params.grabCursor && T.unsetGrabCursor() }, T.lockSwipes = function () { T.params.allowSwipeToNext = T.params.allowSwipeToPrev = !1, T.params.grabCursor && T.unsetGrabCursor() }, T.unlockSwipeToNext = function () { T.params.allowSwipeToNext = !0, T.params.allowSwipeToPrev === !0 && T.params.grabCursor && T.setGrabCursor() }, T.unlockSwipeToPrev = function () { T.params.allowSwipeToPrev = !0, T.params.allowSwipeToNext === !0 && T.params.grabCursor && T.setGrabCursor() }, T.unlockSwipes = function () { T.params.allowSwipeToNext = T.params.allowSwipeToPrev = !0, T.params.grabCursor && T.setGrabCursor() }, T.setGrabCursor = function (e) { T.container[0].style.cursor = "move", T.container[0].style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", T.container[0].style.cursor = e ? "-moz-grabbin" : "-moz-grab", T.container[0].style.cursor = e ? "grabbing" : "grab" }, T.unsetGrabCursor = function () { T.container[0].style.cursor = "" }, T.params.grabCursor && T.setGrabCursor(), T.imagesToLoad = [], T.imagesLoaded = 0, T.loadImage = function (e, a, t, s, i, r) { function n() { r && r() } var o; e.complete && i ? n() : a ? (o = new window.Image, o.onload = n, o.onerror = n, s && (o.sizes = s), t && (o.srcset = t), a && (o.src = a)) : n() }, T.preloadImages = function () { function e() { void 0 !== T && null !== T && T && (void 0 !== T.imagesLoaded && T.imagesLoaded++, T.imagesLoaded === T.imagesToLoad.length && (T.params.updateOnImagesReady && T.update(), T.emit("onImagesReady", T))) } T.imagesToLoad = T.container.find("img"); for (var a = 0; a < T.imagesToLoad.length; a++)T.loadImage(T.imagesToLoad[a], T.imagesToLoad[a].currentSrc || T.imagesToLoad[a].getAttribute("src"), T.imagesToLoad[a].srcset || T.imagesToLoad[a].getAttribute("srcset"), T.imagesToLoad[a].sizes || T.imagesToLoad[a].getAttribute("sizes"), !0, e) }, T.autoplayTimeoutId = void 0, T.autoplaying = !1, T.autoplayPaused = !1, T.startAutoplay = function () { return void 0 === T.autoplayTimeoutId && (!!T.params.autoplay && (!T.autoplaying && (T.autoplaying = !0, T.emit("onAutoplayStart", T), void n()))) }, T.stopAutoplay = function (e) { T.autoplayTimeoutId && (T.autoplayTimeoutId && clearTimeout(T.autoplayTimeoutId), T.autoplaying = !1, T.autoplayTimeoutId = void 0, T.emit("onAutoplayStop", T)) }, T.pauseAutoplay = function (e) { T.autoplayPaused || (T.autoplayTimeoutId && clearTimeout(T.autoplayTimeoutId), T.autoplayPaused = !0, 0 === e ? (T.autoplayPaused = !1, n()) : T.wrapper.transitionEnd(function () { T && (T.autoplayPaused = !1, T.autoplaying ? n() : T.stopAutoplay()) })) }, T.minTranslate = function () { return -T.snapGrid[0] }, T.maxTranslate = function () { return -T.snapGrid[T.snapGrid.length - 1] }, T.updateAutoHeight = function () { var e, a = [], t = 0; if ("auto" !== T.params.slidesPerView && T.params.slidesPerView > 1) for (e = 0; e < Math.ceil(T.params.slidesPerView); e++) { var s = T.activeIndex + e; if (s > T.slides.length) break; a.push(T.slides.eq(s)[0]) } else a.push(T.slides.eq(T.activeIndex)[0]); for (e = 0; e < a.length; e++)if (void 0 !== a[e]) { var i = a[e].offsetHeight; t = i > t ? i : t } t && T.wrapper.css("height", t + "px") }, T.updateContainerSize = function () { var e, a; e = void 0 !== T.params.width ? T.params.width : T.container[0].clientWidth, a = void 0 !== T.params.height ? T.params.height : T.container[0].clientHeight, 0 === e && T.isHorizontal() || 0 === a && !T.isHorizontal() || (e = e - parseInt(T.container.css("padding-left"), 10) - parseInt(T.container.css("padding-right"), 10), a = a - parseInt(T.container.css("padding-top"), 10) - parseInt(T.container.css("padding-bottom"), 10), T.width = e, T.height = a, T.size = T.isHorizontal() ? T.width : T.height) }, T.updateSlidesSize = function () { T.slides = T.wrapper.children("." + T.params.slideClass), T.snapGrid = [], T.slidesGrid = [], T.slidesSizesGrid = []; var e, a = T.params.spaceBetween, t = -T.params.slidesOffsetBefore, s = 0, i = 0; if (void 0 !== T.size) { "string" == typeof a && a.indexOf("%") >= 0 && (a = parseFloat(a.replace("%", "")) / 100 * T.size), T.virtualSize = -a, T.rtl ? T.slides.css({ marginLeft: "", marginTop: "" }) : T.slides.css({ marginRight: "", marginBottom: "" }); var n; T.params.slidesPerColumn > 1 && (n = Math.floor(T.slides.length / T.params.slidesPerColumn) === T.slides.length / T.params.slidesPerColumn ? T.slides.length : Math.ceil(T.slides.length / T.params.slidesPerColumn) * T.params.slidesPerColumn, "auto" !== T.params.slidesPerView && "row" === T.params.slidesPerColumnFill && (n = Math.max(n, T.params.slidesPerView * T.params.slidesPerColumn))); var o, l = T.params.slidesPerColumn, p = n / l, d = p - (T.params.slidesPerColumn * p - T.slides.length); for (e = 0; e < T.slides.length; e++) { o = 0; var u = T.slides.eq(e); if (T.params.slidesPerColumn > 1) { var c, m, h; "column" === T.params.slidesPerColumnFill ? (m = Math.floor(e / l), h = e - m * l, (m > d || m === d && h === l - 1) && ++h >= l && (h = 0, m++), c = m + h * n / l, u.css({ "-webkit-box-ordinal-group": c, "-moz-box-ordinal-group": c, "-ms-flex-order": c, "-webkit-order": c, order: c })) : (h = Math.floor(e / p), m = e - h * p), u.css("margin-" + (T.isHorizontal() ? "top" : "left"), 0 !== h && T.params.spaceBetween && T.params.spaceBetween + "px").attr("data-swiper-column", m).attr("data-swiper-row", h) } "none" !== u.css("display") && ("auto" === T.params.slidesPerView ? (o = T.isHorizontal() ? u.outerWidth(!0) : u.outerHeight(!0), T.params.roundLengths && (o = r(o))) : (o = (T.size - (T.params.slidesPerView - 1) * a) / T.params.slidesPerView, T.params.roundLengths && (o = r(o)), T.isHorizontal() ? T.slides[e].style.width = o + "px" : T.slides[e].style.height = o + "px"), T.slides[e].swiperSlideSize = o, T.slidesSizesGrid.push(o), T.params.centeredSlides ? (t = t + o / 2 + s / 2 + a, 0 === s && 0 !== e && (t = t - T.size / 2 - a), 0 === e && (t = t - T.size / 2 - a), Math.abs(t) < .001 && (t = 0), i % T.params.slidesPerGroup == 0 && T.snapGrid.push(t), T.slidesGrid.push(t)) : (i % T.params.slidesPerGroup == 0 && T.snapGrid.push(t), T.slidesGrid.push(t), t = t + o + a), T.virtualSize += o + a, s = o, i++) } T.virtualSize = Math.max(T.virtualSize, T.size) + T.params.slidesOffsetAfter; var g; if (T.rtl && T.wrongRTL && ("slide" === T.params.effect || "coverflow" === T.params.effect) && T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }), T.support.flexbox && !T.params.setWrapperSize || (T.isHorizontal() ? T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }) : T.wrapper.css({ height: T.virtualSize + T.params.spaceBetween + "px" })), T.params.slidesPerColumn > 1 && (T.virtualSize = (o + T.params.spaceBetween) * n, T.virtualSize = Math.ceil(T.virtualSize / T.params.slidesPerColumn) - T.params.spaceBetween, T.isHorizontal() ? T.wrapper.css({ width: T.virtualSize + T.params.spaceBetween + "px" }) : T.wrapper.css({ height: T.virtualSize + T.params.spaceBetween + "px" }), T.params.centeredSlides)) { for (g = [], e = 0; e < T.snapGrid.length; e++)T.snapGrid[e] < T.virtualSize + T.snapGrid[0] && g.push(T.snapGrid[e]); T.snapGrid = g } if (!T.params.centeredSlides) { for (g = [], e = 0; e < T.snapGrid.length; e++)T.snapGrid[e] <= T.virtualSize - T.size && g.push(T.snapGrid[e]); T.snapGrid = g, Math.floor(T.virtualSize - T.size) - Math.floor(T.snapGrid[T.snapGrid.length - 1]) > 1 && T.snapGrid.push(T.virtualSize - T.size) } 0 === T.snapGrid.length && (T.snapGrid = [0]), 0 !== T.params.spaceBetween && (T.isHorizontal() ? T.rtl ? T.slides.css({ marginLeft: a + "px" }) : T.slides.css({ marginRight: a + "px" }) : T.slides.css({ marginBottom: a + "px" })), T.params.watchSlidesProgress && T.updateSlidesOffset() } }, T.updateSlidesOffset = function () { for (var e = 0; e < T.slides.length; e++)T.slides[e].swiperSlideOffset = T.isHorizontal() ? T.slides[e].offsetLeft : T.slides[e].offsetTop }, T.currentSlidesPerView = function () { var e, a, t = 1; if (T.params.centeredSlides) { var s, i = T.slides[T.activeIndex].swiperSlideSize; for (e = T.activeIndex + 1; e < T.slides.length; e++)T.slides[e] && !s && (i += T.slides[e].swiperSlideSize, t++, i > T.size && (s = !0)); for (a = T.activeIndex - 1; a >= 0; a--)T.slides[a] && !s && (i += T.slides[a].swiperSlideSize, t++, i > T.size && (s = !0)) } else for (e = T.activeIndex + 1; e < T.slides.length; e++)T.slidesGrid[e] - T.slidesGrid[T.activeIndex] < T.size && t++; return t }, T.updateSlidesProgress = function (e) { if (void 0 === e && (e = T.translate || 0), 0 !== T.slides.length) { void 0 === T.slides[0].swiperSlideOffset && T.updateSlidesOffset(); var a = -e; T.rtl && (a = e), T.slides.removeClass(T.params.slideVisibleClass); for (var t = 0; t < T.slides.length; t++) { var s = T.slides[t], i = (a + (T.params.centeredSlides ? T.minTranslate() : 0) - s.swiperSlideOffset) / (s.swiperSlideSize + T.params.spaceBetween); if (T.params.watchSlidesVisibility) { var r = -(a - s.swiperSlideOffset), n = r + T.slidesSizesGrid[t]; (r >= 0 && r < T.size || n > 0 && n <= T.size || r <= 0 && n >= T.size) && T.slides.eq(t).addClass(T.params.slideVisibleClass) } s.progress = T.rtl ? -i : i } } }, T.updateProgress = function (e) { void 0 === e && (e = T.translate || 0); var a = T.maxTranslate() - T.minTranslate(), t = T.isBeginning, s = T.isEnd; 0 === a ? (T.progress = 0, T.isBeginning = T.isEnd = !0) : (T.progress = (e - T.minTranslate()) / a, T.isBeginning = T.progress <= 0, T.isEnd = T.progress >= 1), T.isBeginning && !t && T.emit("onReachBeginning", T), T.isEnd && !s && T.emit("onReachEnd", T), T.params.watchSlidesProgress && T.updateSlidesProgress(e), T.emit("onProgress", T, T.progress) }, T.updateActiveIndex = function () { var e, a, t, s = T.rtl ? T.translate : -T.translate; for (a = 0; a < T.slidesGrid.length; a++)void 0 !== T.slidesGrid[a + 1] ? s >= T.slidesGrid[a] && s < T.slidesGrid[a + 1] - (T.slidesGrid[a + 1] - T.slidesGrid[a]) / 2 ? e = a : s >= T.slidesGrid[a] && s < T.slidesGrid[a + 1] && (e = a + 1) : s >= T.slidesGrid[a] && (e = a); T.params.normalizeSlideIndex && (e < 0 || void 0 === e) && (e = 0), t = Math.floor(e / T.params.slidesPerGroup), t >= T.snapGrid.length && (t = T.snapGrid.length - 1), e !== T.activeIndex && (T.snapIndex = t, T.previousIndex = T.activeIndex, T.activeIndex = e, T.updateClasses(), T.updateRealIndex()) }, T.updateRealIndex = function () { T.realIndex = parseInt(T.slides.eq(T.activeIndex).attr("data-swiper-slide-index") || T.activeIndex, 10) }, T.updateClasses = function () { T.slides.removeClass(T.params.slideActiveClass + " " + T.params.slideNextClass + " " + T.params.slidePrevClass + " " + T.params.slideDuplicateActiveClass + " " + T.params.slideDuplicateNextClass + " " + T.params.slideDuplicatePrevClass); var a = T.slides.eq(T.activeIndex); a.addClass(T.params.slideActiveClass), i.loop && (a.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + T.realIndex + '"]').addClass(T.params.slideDuplicateActiveClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + T.realIndex + '"]').addClass(T.params.slideDuplicateActiveClass)); var t = a.next("." + T.params.slideClass).addClass(T.params.slideNextClass); T.params.loop && 0 === t.length && (t = T.slides.eq(0), t.addClass(T.params.slideNextClass)); var s = a.prev("." + T.params.slideClass).addClass(T.params.slidePrevClass); if (T.params.loop && 0 === s.length && (s = T.slides.eq(-1), s.addClass(T.params.slidePrevClass)), i.loop && (t.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + t.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicateNextClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + t.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicateNextClass), s.hasClass(T.params.slideDuplicateClass) ? T.wrapper.children("." + T.params.slideClass + ":not(." + T.params.slideDuplicateClass + ')[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicatePrevClass) : T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]').addClass(T.params.slideDuplicatePrevClass)), T.paginationContainer && T.paginationContainer.length > 0) { var r, n = T.params.loop ? Math.ceil((T.slides.length - 2 * T.loopedSlides) / T.params.slidesPerGroup) : T.snapGrid.length; if (T.params.loop ? (r = Math.ceil((T.activeIndex - T.loopedSlides) / T.params.slidesPerGroup), r > T.slides.length - 1 - 2 * T.loopedSlides && (r -= T.slides.length - 2 * T.loopedSlides), r > n - 1 && (r -= n), r < 0 && "bullets" !== T.params.paginationType && (r = n + r)) : r = void 0 !== T.snapIndex ? T.snapIndex : T.activeIndex || 0, "bullets" === T.params.paginationType && T.bullets && T.bullets.length > 0 && (T.bullets.removeClass(T.params.bulletActiveClass), T.paginationContainer.length > 1 ? T.bullets.each(function () { e(this).index() === r && e(this).addClass(T.params.bulletActiveClass) }) : T.bullets.eq(r).addClass(T.params.bulletActiveClass)), "fraction" === T.params.paginationType && (T.paginationContainer.find("." + T.params.paginationCurrentClass).text(r + 1), T.paginationContainer.find("." + T.params.paginationTotalClass).text(n)), "progress" === T.params.paginationType) { var o = (r + 1) / n, l = o, p = 1; T.isHorizontal() || (p = o, l = 1), T.paginationContainer.find("." + T.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX(" + l + ") scaleY(" + p + ")").transition(T.params.speed) } "custom" === T.params.paginationType && T.params.paginationCustomRender && (T.paginationContainer.html(T.params.paginationCustomRender(T, r + 1, n)), T.emit("onPaginationRendered", T, T.paginationContainer[0])) } T.params.loop || (T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.isBeginning ? (T.prevButton.addClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.disable(T.prevButton)) : (T.prevButton.removeClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.enable(T.prevButton))), T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.isEnd ? (T.nextButton.addClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.disable(T.nextButton)) : (T.nextButton.removeClass(T.params.buttonDisabledClass), T.params.a11y && T.a11y && T.a11y.enable(T.nextButton)))) }, T.updatePagination = function () { if (T.params.pagination && T.paginationContainer && T.paginationContainer.length > 0) { var e = ""; if ("bullets" === T.params.paginationType) { for (var a = T.params.loop ? Math.ceil((T.slides.length - 2 * T.loopedSlides) / T.params.slidesPerGroup) : T.snapGrid.length, t = 0; t < a; t++)e += T.params.paginationBulletRender ? T.params.paginationBulletRender(T, t, T.params.bulletClass) : "<" + T.params.paginationElement + ' class="' + T.params.bulletClass + '"></' + T.params.paginationElement + ">"; T.paginationContainer.html(e), T.bullets = T.paginationContainer.find("." + T.params.bulletClass), T.params.paginationClickable && T.params.a11y && T.a11y && T.a11y.initPagination() } "fraction" === T.params.paginationType && (e = T.params.paginationFractionRender ? T.params.paginationFractionRender(T, T.params.paginationCurrentClass, T.params.paginationTotalClass) : '<span class="' + T.params.paginationCurrentClass + '"></span> / <span class="' + T.params.paginationTotalClass + '"></span>', T.paginationContainer.html(e)), "progress" === T.params.paginationType && (e = T.params.paginationProgressRender ? T.params.paginationProgressRender(T, T.params.paginationProgressbarClass) : '<span class="' + T.params.paginationProgressbarClass + '"></span>', T.paginationContainer.html(e)), "custom" !== T.params.paginationType && T.emit("onPaginationRendered", T, T.paginationContainer[0]) } }, T.update = function (e) { function a() { T.rtl, T.translate; t = Math.min(Math.max(T.translate, T.maxTranslate()), T.minTranslate()), T.setWrapperTranslate(t), T.updateActiveIndex(), T.updateClasses() } if (T) { T.updateContainerSize(), T.updateSlidesSize(), T.updateProgress(), T.updatePagination(), T.updateClasses(), T.params.scrollbar && T.scrollbar && T.scrollbar.set(); var t; if (e) { T.controller && T.controller.spline && (T.controller.spline = void 0), T.params.freeMode ? (a(), T.params.autoHeight && T.updateAutoHeight()) : (("auto" === T.params.slidesPerView || T.params.slidesPerView > 1) && T.isEnd && !T.params.centeredSlides ? T.slideTo(T.slides.length - 1, 0, !1, !0) : T.slideTo(T.activeIndex, 0, !1, !0)) || a() } else T.params.autoHeight && T.updateAutoHeight() } }, T.onResize = function (e) { T.params.onBeforeResize && T.params.onBeforeResize(T), T.params.breakpoints && T.setBreakpoint(); var a = T.params.allowSwipeToPrev, t = T.params.allowSwipeToNext; T.params.allowSwipeToPrev = T.params.allowSwipeToNext = !0, T.updateContainerSize(), T.updateSlidesSize(), ("auto" === T.params.slidesPerView || T.params.freeMode || e) && T.updatePagination(), T.params.scrollbar && T.scrollbar && T.scrollbar.set(), T.controller && T.controller.spline && (T.controller.spline = void 0); var s = !1; if (T.params.freeMode) { var i = Math.min(Math.max(T.translate, T.maxTranslate()), T.minTranslate()); T.setWrapperTranslate(i), T.updateActiveIndex(), T.updateClasses(), T.params.autoHeight && T.updateAutoHeight() } else T.updateClasses(), s = ("auto" === T.params.slidesPerView || T.params.slidesPerView > 1) && T.isEnd && !T.params.centeredSlides ? T.slideTo(T.slides.length - 1, 0, !1, !0) : T.slideTo(T.activeIndex, 0, !1, !0); T.params.lazyLoading && !s && T.lazy && T.lazy.load(), T.params.allowSwipeToPrev = a, T.params.allowSwipeToNext = t, T.params.onAfterResize && T.params.onAfterResize(T) }, T.touchEventsDesktop = { start: "mousedown", move: "mousemove", end: "mouseup" }, window.navigator.pointerEnabled ? T.touchEventsDesktop = { start: "pointerdown", move: "pointermove", end: "pointerup" } : window.navigator.msPointerEnabled && (T.touchEventsDesktop = { start: "MSPointerDown", move: "MSPointerMove", end: "MSPointerUp" }), T.touchEvents = { start: T.support.touch || !T.params.simulateTouch ? "touchstart" : T.touchEventsDesktop.start, move: T.support.touch || !T.params.simulateTouch ? "touchmove" : T.touchEventsDesktop.move, end: T.support.touch || !T.params.simulateTouch ? "touchend" : T.touchEventsDesktop.end }, (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && ("container" === T.params.touchEventsTarget ? T.container : T.wrapper).addClass("swiper-wp8-" + T.params.direction), T.initEvents = function (e) { var a = e ? "off" : "on", t = e ? "removeEventListener" : "addEventListener", s = "container" === T.params.touchEventsTarget ? T.container[0] : T.wrapper[0], r = T.support.touch ? s : document, n = !!T.params.nested; if (T.browser.ie) s[t](T.touchEvents.start, T.onTouchStart, !1), r[t](T.touchEvents.move, T.onTouchMove, n), r[t](T.touchEvents.end, T.onTouchEnd, !1); else { if (T.support.touch) { var o = !("touchstart" !== T.touchEvents.start || !T.support.passiveListener || !T.params.passiveListeners) && { passive: !0, capture: !1 }; s[t](T.touchEvents.start, T.onTouchStart, o), s[t](T.touchEvents.move, T.onTouchMove, n), s[t](T.touchEvents.end, T.onTouchEnd, o) } (i.simulateTouch && !T.device.ios && !T.device.android || i.simulateTouch && !T.support.touch && T.device.ios) && (s[t]("mousedown", T.onTouchStart, !1), document[t]("mousemove", T.onTouchMove, n), document[t]("mouseup", T.onTouchEnd, !1)) } window[t]("resize", T.onResize), T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.nextButton[a]("click", T.onClickNext), T.params.a11y && T.a11y && T.nextButton[a]("keydown", T.a11y.onEnterKey)), T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.prevButton[a]("click", T.onClickPrev), T.params.a11y && T.a11y && T.prevButton[a]("keydown", T.a11y.onEnterKey)), T.params.pagination && T.params.paginationClickable && (T.paginationContainer[a]("click", "." + T.params.bulletClass, T.onClickIndex), T.params.a11y && T.a11y && T.paginationContainer[a]("keydown", "." + T.params.bulletClass, T.a11y.onEnterKey)), (T.params.preventClicks || T.params.preventClicksPropagation) && s[t]("click", T.preventClicks, !0) }, T.attachEvents = function () { T.initEvents() }, T.detachEvents = function () { T.initEvents(!0) }, T.allowClick = !0, T.preventClicks = function (e) { T.allowClick || (T.params.preventClicks && e.preventDefault(), T.params.preventClicksPropagation && T.animating && (e.stopPropagation(), e.stopImmediatePropagation())) }, T.onClickNext = function (e) { e.preventDefault(), T.isEnd && !T.params.loop || T.slideNext() }, T.onClickPrev = function (e) { e.preventDefault(), T.isBeginning && !T.params.loop || T.slidePrev() }, T.onClickIndex = function (a) { a.preventDefault(); var t = e(this).index() * T.params.slidesPerGroup; T.params.loop && (t += T.loopedSlides), T.slideTo(t) }, T.updateClickedSlide = function (a) { var t = o(a, "." + T.params.slideClass), s = !1; if (t) for (var i = 0; i < T.slides.length; i++)T.slides[i] === t && (s = !0); if (!t || !s) return T.clickedSlide = void 0, void (T.clickedIndex = void 0); if (T.clickedSlide = t, T.clickedIndex = e(t).index(), T.params.slideToClickedSlide && void 0 !== T.clickedIndex && T.clickedIndex !== T.activeIndex) { var r, n = T.clickedIndex, l = "auto" === T.params.slidesPerView ? T.currentSlidesPerView() : T.params.slidesPerView; if (T.params.loop) { if (T.animating) return; r = parseInt(e(T.clickedSlide).attr("data-swiper-slide-index"), 10), T.params.centeredSlides ? n < T.loopedSlides - l / 2 || n > T.slides.length - T.loopedSlides + l / 2 ? (T.fixLoop(), n = T.wrapper.children("." + T.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.' + T.params.slideDuplicateClass + ")").eq(0).index(), setTimeout(function () { T.slideTo(n) }, 0)) : T.slideTo(n) : n > T.slides.length - l ? (T.fixLoop(), n = T.wrapper.children("." + T.params.slideClass + '[data-swiper-slide-index="' + r + '"]:not(.' + T.params.slideDuplicateClass + ")").eq(0).index(), setTimeout(function () { T.slideTo(n) }, 0)) : T.slideTo(n) } else T.slideTo(n) } }; var S, C, z, M, E, P, I, k, L, D, B = "input, select, textarea, button, video", H = Date.now(), G = []; T.animating = !1, T.touches = { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }; var X, A; T.onTouchStart = function (a) { if (a.originalEvent && (a = a.originalEvent), (X = "touchstart" === a.type) || !("which" in a) || 3 !== a.which) { if (T.params.noSwiping && o(a, "." + T.params.noSwipingClass)) return void (T.allowClick = !0); if (!T.params.swipeHandler || o(a, T.params.swipeHandler)) { var t = T.touches.currentX = "touchstart" === a.type ? a.targetTouches[0].pageX : a.pageX, s = T.touches.currentY = "touchstart" === a.type ? a.targetTouches[0].pageY : a.pageY; if (!(T.device.ios && T.params.iOSEdgeSwipeDetection && t <= T.params.iOSEdgeSwipeThreshold)) { if (S = !0, C = !1, z = !0, E = void 0, A = void 0, T.touches.startX = t, T.touches.startY = s, M = Date.now(), T.allowClick = !0, T.updateContainerSize(), T.swipeDirection = void 0, T.params.threshold > 0 && (k = !1), "touchstart" !== a.type) { var i = !0; e(a.target).is(B) && (i = !1), document.activeElement && e(document.activeElement).is(B) && document.activeElement.blur(), i && a.preventDefault() } T.emit("onTouchStart", T, a) } } } }, T.onTouchMove = function (a) { if (a.originalEvent && (a = a.originalEvent), !X || "mousemove" !== a.type) { if (a.preventedByNestedSwiper) return T.touches.startX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, void (T.touches.startY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY); if (T.params.onlyExternal) return T.allowClick = !1, void (S && (T.touches.startX = T.touches.currentX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, T.touches.startY = T.touches.currentY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY, M = Date.now())); if (X && T.params.touchReleaseOnEdges && !T.params.loop) if (T.isHorizontal()) { if (T.touches.currentX < T.touches.startX && T.translate <= T.maxTranslate() || T.touches.currentX > T.touches.startX && T.translate >= T.minTranslate()) return } else if (T.touches.currentY < T.touches.startY && T.translate <= T.maxTranslate() || T.touches.currentY > T.touches.startY && T.translate >= T.minTranslate()) return; if (X && document.activeElement && a.target === document.activeElement && e(a.target).is(B)) return C = !0, void (T.allowClick = !1); if (z && T.emit("onTouchMove", T, a), !(a.targetTouches && a.targetTouches.length > 1)) { if (T.touches.currentX = "touchmove" === a.type ? a.targetTouches[0].pageX : a.pageX, T.touches.currentY = "touchmove" === a.type ? a.targetTouches[0].pageY : a.pageY, void 0 === E) { var t; T.isHorizontal() && T.touches.currentY === T.touches.startY || !T.isHorizontal() && T.touches.currentX === T.touches.startX ? E = !1 : (t = 180 * Math.atan2(Math.abs(T.touches.currentY - T.touches.startY), Math.abs(T.touches.currentX - T.touches.startX)) / Math.PI, E = T.isHorizontal() ? t > T.params.touchAngle : 90 - t > T.params.touchAngle) } if (E && T.emit("onTouchMoveOpposite", T, a), void 0 === A && (T.touches.currentX === T.touches.startX && T.touches.currentY === T.touches.startY || (A = !0)), S) { if (E) return void (S = !1); if (A) { T.allowClick = !1, T.emit("onSliderMove", T, a), a.preventDefault(), T.params.touchMoveStopPropagation && !T.params.nested && a.stopPropagation(), C || (i.loop && T.fixLoop(), I = T.getWrapperTranslate(), T.setWrapperTransition(0), T.animating && T.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"), T.params.autoplay && T.autoplaying && (T.params.autoplayDisableOnInteraction ? T.stopAutoplay() : T.pauseAutoplay()), D = !1, !T.params.grabCursor || T.params.allowSwipeToNext !== !0 && T.params.allowSwipeToPrev !== !0 || T.setGrabCursor(!0)), C = !0; var s = T.touches.diff = T.isHorizontal() ? T.touches.currentX - T.touches.startX : T.touches.currentY - T.touches.startY; s *= T.params.touchRatio, T.rtl && (s = -s), T.swipeDirection = s > 0 ? "prev" : "next", P = s + I; var r = !0; if (s > 0 && P > T.minTranslate() ? (r = !1, T.params.resistance && (P = T.minTranslate() - 1 + Math.pow(-T.minTranslate() + I + s, T.params.resistanceRatio))) : s < 0 && P < T.maxTranslate() && (r = !1, T.params.resistance && (P = T.maxTranslate() + 1 - Math.pow(T.maxTranslate() - I - s, T.params.resistanceRatio))), r && (a.preventedByNestedSwiper = !0), !T.params.allowSwipeToNext && "next" === T.swipeDirection && P < I && (P = I), !T.params.allowSwipeToPrev && "prev" === T.swipeDirection && P > I && (P = I), T.params.threshold > 0) { if (!(Math.abs(s) > T.params.threshold || k)) return void (P = I); if (!k) return k = !0, T.touches.startX = T.touches.currentX, T.touches.startY = T.touches.currentY, P = I, void (T.touches.diff = T.isHorizontal() ? T.touches.currentX - T.touches.startX : T.touches.currentY - T.touches.startY) } T.params.followFinger && ((T.params.freeMode || T.params.watchSlidesProgress) && T.updateActiveIndex(), T.params.freeMode && (0 === G.length && G.push({ position: T.touches[T.isHorizontal() ? "startX" : "startY"], time: M }), G.push({ position: T.touches[T.isHorizontal() ? "currentX" : "currentY"], time: (new window.Date).getTime() })), T.updateProgress(P), T.setWrapperTranslate(P)) } } } } }, T.onTouchEnd = function (a) { if (a.originalEvent && (a = a.originalEvent), z && T.emit("onTouchEnd", T, a), z = !1, S) { T.params.grabCursor && C && S && (T.params.allowSwipeToNext === !0 || T.params.allowSwipeToPrev === !0) && T.setGrabCursor(!1); var t = Date.now(), s = t - M; if (T.allowClick && (T.updateClickedSlide(a), T.emit("onTap", T, a), s < 300 && t - H > 300 && (L && clearTimeout(L), L = setTimeout(function () { T && (T.params.paginationHide && T.paginationContainer.length > 0 && !e(a.target).hasClass(T.params.bulletClass) && T.paginationContainer.toggleClass(T.params.paginationHiddenClass), T.emit("onClick", T, a)) }, 300)), s < 300 && t - H < 300 && (L && clearTimeout(L), T.emit("onDoubleTap", T, a))), H = Date.now(), setTimeout(function () { T && (T.allowClick = !0) }, 0), !S || !C || !T.swipeDirection || 0 === T.touches.diff || P === I) return void (S = C = !1); S = C = !1; var i; if (i = T.params.followFinger ? T.rtl ? T.translate : -T.translate : -P, T.params.freeMode) { if (i < -T.minTranslate()) return void T.slideTo(T.activeIndex); if (i > -T.maxTranslate()) return void (T.slides.length < T.snapGrid.length ? T.slideTo(T.snapGrid.length - 1) : T.slideTo(T.slides.length - 1)); if (T.params.freeModeMomentum) { if (G.length > 1) { var r = G.pop(), n = G.pop(), o = r.position - n.position, l = r.time - n.time; T.velocity = o / l, T.velocity = T.velocity / 2, Math.abs(T.velocity) < T.params.freeModeMinimumVelocity && (T.velocity = 0), (l > 150 || (new window.Date).getTime() - r.time > 300) && (T.velocity = 0) } else T.velocity = 0; T.velocity = T.velocity * T.params.freeModeMomentumVelocityRatio, G.length = 0; var p = 1e3 * T.params.freeModeMomentumRatio, d = T.velocity * p, u = T.translate + d; T.rtl && (u = -u); var c, m = !1, h = 20 * Math.abs(T.velocity) * T.params.freeModeMomentumBounceRatio; if (u < T.maxTranslate()) T.params.freeModeMomentumBounce ? (u + T.maxTranslate() < -h && (u = T.maxTranslate() - h), c = T.maxTranslate(), m = !0, D = !0) : u = T.maxTranslate(); else if (u > T.minTranslate()) T.params.freeModeMomentumBounce ? (u - T.minTranslate() > h && (u = T.minTranslate() + h), c = T.minTranslate(), m = !0, D = !0) : u = T.minTranslate(); else if (T.params.freeModeSticky) { var g, f = 0; for (f = 0; f < T.snapGrid.length; f += 1)if (T.snapGrid[f] > -u) { g = f; break } u = Math.abs(T.snapGrid[g] - u) < Math.abs(T.snapGrid[g - 1] - u) || "next" === T.swipeDirection ? T.snapGrid[g] : T.snapGrid[g - 1], T.rtl || (u = -u) } if (0 !== T.velocity) p = T.rtl ? Math.abs((-u - T.translate) / T.velocity) : Math.abs((u - T.translate) / T.velocity); else if (T.params.freeModeSticky) return void T.slideReset(); T.params.freeModeMomentumBounce && m ? (T.updateProgress(c), T.setWrapperTransition(p), T.setWrapperTranslate(u), T.onTransitionStart(), T.animating = !0, T.wrapper.transitionEnd(function () { T && D && (T.emit("onMomentumBounce", T), T.setWrapperTransition(T.params.speed), T.setWrapperTranslate(c), T.wrapper.transitionEnd(function () { T && T.onTransitionEnd() })) })) : T.velocity ? (T.updateProgress(u), T.setWrapperTransition(p), T.setWrapperTranslate(u), T.onTransitionStart(), T.animating || (T.animating = !0, T.wrapper.transitionEnd(function () { T && T.onTransitionEnd() }))) : T.updateProgress(u), T.updateActiveIndex() } return void ((!T.params.freeModeMomentum || s >= T.params.longSwipesMs) && (T.updateProgress(), T.updateActiveIndex())) } var v, w = 0, y = T.slidesSizesGrid[0]; for (v = 0; v < T.slidesGrid.length; v += T.params.slidesPerGroup)void 0 !== T.slidesGrid[v + T.params.slidesPerGroup] ? i >= T.slidesGrid[v] && i < T.slidesGrid[v + T.params.slidesPerGroup] && (w = v, y = T.slidesGrid[v + T.params.slidesPerGroup] - T.slidesGrid[v]) : i >= T.slidesGrid[v] && (w = v, y = T.slidesGrid[T.slidesGrid.length - 1] - T.slidesGrid[T.slidesGrid.length - 2]); var x = (i - T.slidesGrid[w]) / y; if (s > T.params.longSwipesMs) { if (!T.params.longSwipes) return void T.slideTo(T.activeIndex); "next" === T.swipeDirection && (x >= T.params.longSwipesRatio ? T.slideTo(w + T.params.slidesPerGroup) : T.slideTo(w)), "prev" === T.swipeDirection && (x > 1 - T.params.longSwipesRatio ? T.slideTo(w + T.params.slidesPerGroup) : T.slideTo(w)) } else { if (!T.params.shortSwipes) return void T.slideTo(T.activeIndex); "next" === T.swipeDirection && T.slideTo(w + T.params.slidesPerGroup), "prev" === T.swipeDirection && T.slideTo(w) } } }, T._slideTo = function (e, a) { return T.slideTo(e, a, !0, !0) }, T.slideTo = function (e, a, t, s) { void 0 === t && (t = !0), void 0 === e && (e = 0), e < 0 && (e = 0), T.snapIndex = Math.floor(e / T.params.slidesPerGroup), T.snapIndex >= T.snapGrid.length && (T.snapIndex = T.snapGrid.length - 1); var i = -T.snapGrid[T.snapIndex]; if (T.params.autoplay && T.autoplaying && (s || !T.params.autoplayDisableOnInteraction ? T.pauseAutoplay(a) : T.stopAutoplay()), T.updateProgress(i), T.params.normalizeSlideIndex) for (var r = 0; r < T.slidesGrid.length; r++)-Math.floor(100 * i) >= Math.floor(100 * T.slidesGrid[r]) && (e = r); return !(!T.params.allowSwipeToNext && i < T.translate && i < T.minTranslate()) && (!(!T.params.allowSwipeToPrev && i > T.translate && i > T.maxTranslate() && (T.activeIndex || 0) !== e) && (void 0 === a && (a = T.params.speed), T.previousIndex = T.activeIndex || 0, T.activeIndex = e, T.updateRealIndex(), T.rtl && -i === T.translate || !T.rtl && i === T.translate ? (T.params.autoHeight && T.updateAutoHeight(), T.updateClasses(), "slide" !== T.params.effect && T.setWrapperTranslate(i), !1) : (T.updateClasses(), T.onTransitionStart(t), 0 === a || T.browser.lteIE9 ? (T.setWrapperTranslate(i), T.setWrapperTransition(0), T.onTransitionEnd(t)) : (T.setWrapperTranslate(i), T.setWrapperTransition(a), T.animating || (T.animating = !0, T.wrapper.transitionEnd(function () { T && T.onTransitionEnd(t) }))), !0))) }, T.onTransitionStart = function (e) { void 0 === e && (e = !0), T.params.autoHeight && T.updateAutoHeight(), T.lazy && T.lazy.onTransitionStart(), e && (T.emit("onTransitionStart", T), T.activeIndex !== T.previousIndex && (T.emit("onSlideChangeStart", T), T.activeIndex > T.previousIndex ? T.emit("onSlideNextStart", T) : T.emit("onSlidePrevStart", T))) }, T.onTransitionEnd = function (e) { T.animating = !1, T.setWrapperTransition(0), void 0 === e && (e = !0), T.lazy && T.lazy.onTransitionEnd(), e && (T.emit("onTransitionEnd", T), T.activeIndex !== T.previousIndex && (T.emit("onSlideChangeEnd", T), T.activeIndex > T.previousIndex ? T.emit("onSlideNextEnd", T) : T.emit("onSlidePrevEnd", T))), T.params.history && T.history && T.history.setHistory(T.params.history, T.activeIndex), T.params.hashnav && T.hashnav && T.hashnav.setHash() }, T.slideNext = function (e, a, t) { if (T.params.loop) { if (T.animating) return !1; T.fixLoop(); T.container[0].clientLeft; return T.slideTo(T.activeIndex + T.params.slidesPerGroup, a, e, t) } return T.slideTo(T.activeIndex + T.params.slidesPerGroup, a, e, t) }, T._slideNext = function (e) { return T.slideNext(!0, e, !0) }, T.slidePrev = function (e, a, t) { if (T.params.loop) { if (T.animating) return !1; T.fixLoop(); T.container[0].clientLeft; return T.slideTo(T.activeIndex - 1, a, e, t) } return T.slideTo(T.activeIndex - 1, a, e, t) }, T._slidePrev = function (e) { return T.slidePrev(!0, e, !0) }, T.slideReset = function (e, a, t) { return T.slideTo(T.activeIndex, a, e) }, T.disableTouchControl = function () { return T.params.onlyExternal = !0, !0 }, T.enableTouchControl = function () { return T.params.onlyExternal = !1, !0 }, T.setWrapperTransition = function (e, a) { T.wrapper.transition(e), "slide" !== T.params.effect && T.effects[T.params.effect] && T.effects[T.params.effect].setTransition(e), T.params.parallax && T.parallax && T.parallax.setTransition(e), T.params.scrollbar && T.scrollbar && T.scrollbar.setTransition(e), T.params.control && T.controller && T.controller.setTransition(e, a), T.emit("onSetTransition", T, e) }, T.setWrapperTranslate = function (e, a, t) { var s = 0, i = 0; T.isHorizontal() ? s = T.rtl ? -e : e : i = e, T.params.roundLengths && (s = r(s), i = r(i)), T.params.virtualTranslate || (T.support.transforms3d ? T.wrapper.transform("translate3d(" + s + "px, " + i + "px, 0px)") : T.wrapper.transform("translate(" + s + "px, " + i + "px)")), T.translate = T.isHorizontal() ? s : i; var n, o = T.maxTranslate() - T.minTranslate(); n = 0 === o ? 0 : (e - T.minTranslate()) / o, n !== T.progress && T.updateProgress(e), a && T.updateActiveIndex(), "slide" !== T.params.effect && T.effects[T.params.effect] && T.effects[T.params.effect].setTranslate(T.translate), T.params.parallax && T.parallax && T.parallax.setTranslate(T.translate), T.params.scrollbar && T.scrollbar && T.scrollbar.setTranslate(T.translate), T.params.control && T.controller && T.controller.setTranslate(T.translate, t), T.emit("onSetTranslate", T, T.translate) }, T.getTranslate = function (e, a) { var t, s, i, r; return void 0 === a && (a = "x"), T.params.virtualTranslate ? T.rtl ? -T.translate : T.translate : (i = window.getComputedStyle(e, null), window.WebKitCSSMatrix ? (s = i.transform || i.webkitTransform, s.split(",").length > 6 && (s = s.split(", ").map(function (e) { return e.replace(",", ".") }).join(", ")), r = new window.WebKitCSSMatrix("none" === s ? "" : s)) : (r = i.MozTransform || i.OTransform || i.MsTransform || i.msTransform || i.transform || i.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), t = r.toString().split(",")), "x" === a && (s = window.WebKitCSSMatrix ? r.m41 : 16 === t.length ? parseFloat(t[12]) : parseFloat(t[4])), "y" === a && (s = window.WebKitCSSMatrix ? r.m42 : 16 === t.length ? parseFloat(t[13]) : parseFloat(t[5])), T.rtl && s && (s = -s), s || 0) }, T.getWrapperTranslate = function (e) { return void 0 === e && (e = T.isHorizontal() ? "x" : "y"), T.getTranslate(T.wrapper[0], e) }, T.observers = [], T.initObservers = function () { if (T.params.observeParents) for (var e = T.container.parents(), a = 0; a < e.length; a++)l(e[a]); l(T.container[0], { childList: !1 }), l(T.wrapper[0], { attributes: !1 }) }, T.disconnectObservers = function () { for (var e = 0; e < T.observers.length; e++)T.observers[e].disconnect(); T.observers = [] }, T.createLoop = function () { T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass).remove(); var a = T.wrapper.children("." + T.params.slideClass); "auto" !== T.params.slidesPerView || T.params.loopedSlides || (T.params.loopedSlides = a.length), T.loopedSlides = parseInt(T.params.loopedSlides || T.params.slidesPerView, 10), T.loopedSlides = T.loopedSlides + T.params.loopAdditionalSlides, T.loopedSlides > a.length && (T.loopedSlides = a.length); var t, s = [], i = []; for (a.each(function (t, r) { var n = e(this); t < T.loopedSlides && i.push(r), t < a.length && t >= a.length - T.loopedSlides && s.push(r), n.attr("data-swiper-slide-index", t) }), t = 0; t < i.length; t++)T.wrapper.append(e(i[t].cloneNode(!0)).addClass(T.params.slideDuplicateClass)); for (t = s.length - 1; t >= 0; t--)T.wrapper.prepend(e(s[t].cloneNode(!0)).addClass(T.params.slideDuplicateClass)) }, T.destroyLoop = function () { T.wrapper.children("." + T.params.slideClass + "." + T.params.slideDuplicateClass).remove(), T.slides.removeAttr("data-swiper-slide-index") }, T.reLoop = function (e) { var a = T.activeIndex - T.loopedSlides; T.destroyLoop(), T.createLoop(), T.updateSlidesSize(), e && T.slideTo(a + T.loopedSlides, 0, !1) }, T.fixLoop = function () { var e; T.activeIndex < T.loopedSlides ? (e = T.slides.length - 3 * T.loopedSlides + T.activeIndex, e += T.loopedSlides, T.slideTo(e, 0, !1, !0)) : ("auto" === T.params.slidesPerView && T.activeIndex >= 2 * T.loopedSlides || T.activeIndex > T.slides.length - 2 * T.params.slidesPerView) && (e = -T.slides.length + T.activeIndex + T.loopedSlides, e += T.loopedSlides, T.slideTo(e, 0, !1, !0)) }, T.appendSlide = function (e) { if (T.params.loop && T.destroyLoop(), "object" == typeof e && e.length) for (var a = 0; a < e.length; a++)e[a] && T.wrapper.append(e[a]); else T.wrapper.append(e); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0) }, T.prependSlide = function (e) { T.params.loop && T.destroyLoop(); var a = T.activeIndex + 1; if ("object" == typeof e && e.length) { for (var t = 0; t < e.length; t++)e[t] && T.wrapper.prepend(e[t]); a = T.activeIndex + e.length } else T.wrapper.prepend(e); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0), T.slideTo(a, 0, !1) }, T.removeSlide = function (e) { T.params.loop && (T.destroyLoop(), T.slides = T.wrapper.children("." + T.params.slideClass)); var a, t = T.activeIndex; if ("object" == typeof e && e.length) { for (var s = 0; s < e.length; s++)a = e[s], T.slides[a] && T.slides.eq(a).remove(), a < t && t--; t = Math.max(t, 0) } else a = e, T.slides[a] && T.slides.eq(a).remove(), a < t && t--, t = Math.max(t, 0); T.params.loop && T.createLoop(), T.params.observer && T.support.observer || T.update(!0), T.params.loop ? T.slideTo(t + T.loopedSlides, 0, !1) : T.slideTo(t, 0, !1) }, T.removeAllSlides = function () { for (var e = [], a = 0; a < T.slides.length; a++)e.push(a); T.removeSlide(e) }, T.effects = { fade: { setTranslate: function () { for (var e = 0; e < T.slides.length; e++) { var a = T.slides.eq(e), t = a[0].swiperSlideOffset, s = -t; T.params.virtualTranslate || (s -= T.translate); var i = 0; T.isHorizontal() || (i = s, s = 0); var r = T.params.fade.crossFade ? Math.max(1 - Math.abs(a[0].progress), 0) : 1 + Math.min(Math.max(a[0].progress, -1), 0); a.css({ opacity: r }).transform("translate3d(" + s + "px, " + i + "px, 0px)") } }, setTransition: function (e) { if (T.slides.transition(e), T.params.virtualTranslate && 0 !== e) { var a = !1; T.slides.transitionEnd(function () { if (!a && T) { a = !0, T.animating = !1; for (var e = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], t = 0; t < e.length; t++)T.wrapper.trigger(e[t]) } }) } } }, flip: { setTranslate: function () { for (var a = 0; a < T.slides.length; a++) { var t = T.slides.eq(a), s = t[0].progress; T.params.flip.limitRotation && (s = Math.max(Math.min(t[0].progress, 1), -1)); var i = t[0].swiperSlideOffset, r = -180 * s, n = r, o = 0, l = -i, p = 0; if (T.isHorizontal() ? T.rtl && (n = -n) : (p = l, l = 0, o = -n, n = 0), t[0].style.zIndex = -Math.abs(Math.round(s)) + T.slides.length, T.params.flip.slideShadows) { var d = T.isHorizontal() ? t.find(".swiper-slide-shadow-left") : t.find(".swiper-slide-shadow-top"), u = T.isHorizontal() ? t.find(".swiper-slide-shadow-right") : t.find(".swiper-slide-shadow-bottom"); 0 === d.length && (d = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), t.append(d)), 0 === u.length && (u = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), t.append(u)), d.length && (d[0].style.opacity = Math.max(-s, 0)), u.length && (u[0].style.opacity = Math.max(s, 0)) } t.transform("translate3d(" + l + "px, " + p + "px, 0px) rotateX(" + o + "deg) rotateY(" + n + "deg)") } }, setTransition: function (a) { if (T.slides.transition(a).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(a), T.params.virtualTranslate && 0 !== a) { var t = !1; T.slides.eq(T.activeIndex).transitionEnd(function () { if (!t && T && e(this).hasClass(T.params.slideActiveClass)) { t = !0, T.animating = !1; for (var a = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], s = 0; s < a.length; s++)T.wrapper.trigger(a[s]) } }) } } }, cube: { setTranslate: function () { var a, t = 0; T.params.cube.shadow && (T.isHorizontal() ? (a = T.wrapper.find(".swiper-cube-shadow"), 0 === a.length && (a = e('<div class="swiper-cube-shadow"></div>'), T.wrapper.append(a)), a.css({ height: T.width + "px" })) : (a = T.container.find(".swiper-cube-shadow"), 0 === a.length && (a = e('<div class="swiper-cube-shadow"></div>'), T.container.append(a)))); for (var s = 0; s < T.slides.length; s++) { var i = T.slides.eq(s), r = 90 * s, n = Math.floor(r / 360); T.rtl && (r = -r, n = Math.floor(-r / 360)); var o = Math.max(Math.min(i[0].progress, 1), -1), l = 0, p = 0, d = 0; s % 4 == 0 ? (l = 4 * -n * T.size, d = 0) : (s - 1) % 4 == 0 ? (l = 0, d = 4 * -n * T.size) : (s - 2) % 4 == 0 ? (l = T.size + 4 * n * T.size, d = T.size) : (s - 3) % 4 == 0 && (l = -T.size, d = 3 * T.size + 4 * T.size * n), T.rtl && (l = -l), T.isHorizontal() || (p = l, l = 0); var u = "rotateX(" + (T.isHorizontal() ? 0 : -r) + "deg) rotateY(" + (T.isHorizontal() ? r : 0) + "deg) translate3d(" + l + "px, " + p + "px, " + d + "px)"; if (o <= 1 && o > -1 && (t = 90 * s + 90 * o, T.rtl && (t = 90 * -s - 90 * o)), i.transform(u), T.params.cube.slideShadows) { var c = T.isHorizontal() ? i.find(".swiper-slide-shadow-left") : i.find(".swiper-slide-shadow-top"), m = T.isHorizontal() ? i.find(".swiper-slide-shadow-right") : i.find(".swiper-slide-shadow-bottom"); 0 === c.length && (c = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), i.append(c)), 0 === m.length && (m = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), i.append(m)), c.length && (c[0].style.opacity = Math.max(-o, 0)), m.length && (m[0].style.opacity = Math.max(o, 0)) } } if (T.wrapper.css({ "-webkit-transform-origin": "50% 50% -" + T.size / 2 + "px", "-moz-transform-origin": "50% 50% -" + T.size / 2 + "px", "-ms-transform-origin": "50% 50% -" + T.size / 2 + "px", "transform-origin": "50% 50% -" + T.size / 2 + "px" }), T.params.cube.shadow) if (T.isHorizontal()) a.transform("translate3d(0px, " + (T.width / 2 + T.params.cube.shadowOffset) + "px, " + -T.width / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + T.params.cube.shadowScale + ")"); else { var h = Math.abs(t) - 90 * Math.floor(Math.abs(t) / 90), g = 1.5 - (Math.sin(2 * h * Math.PI / 360) / 2 + Math.cos(2 * h * Math.PI / 360) / 2), f = T.params.cube.shadowScale, v = T.params.cube.shadowScale / g, w = T.params.cube.shadowOffset; a.transform("scale3d(" + f + ", 1, " + v + ") translate3d(0px, " + (T.height / 2 + w) + "px, " + -T.height / 2 / v + "px) rotateX(-90deg)") } var y = T.isSafari || T.isUiWebView ? -T.size / 2 : 0; T.wrapper.transform("translate3d(0px,0," + y + "px) rotateX(" + (T.isHorizontal() ? 0 : t) + "deg) rotateY(" + (T.isHorizontal() ? -t : 0) + "deg)") }, setTransition: function (e) { T.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), T.params.cube.shadow && !T.isHorizontal() && T.container.find(".swiper-cube-shadow").transition(e) } }, coverflow: { setTranslate: function () { for (var a = T.translate, t = T.isHorizontal() ? -a + T.width / 2 : -a + T.height / 2, s = T.isHorizontal() ? T.params.coverflow.rotate : -T.params.coverflow.rotate, i = T.params.coverflow.depth, r = 0, n = T.slides.length; r < n; r++) { var o = T.slides.eq(r), l = T.slidesSizesGrid[r], p = o[0].swiperSlideOffset, d = (t - p - l / 2) / l * T.params.coverflow.modifier, u = T.isHorizontal() ? s * d : 0, c = T.isHorizontal() ? 0 : s * d, m = -i * Math.abs(d), h = T.isHorizontal() ? 0 : T.params.coverflow.stretch * d, g = T.isHorizontal() ? T.params.coverflow.stretch * d : 0; Math.abs(g) < .001 && (g = 0), Math.abs(h) < .001 && (h = 0), Math.abs(m) < .001 && (m = 0), Math.abs(u) < .001 && (u = 0), Math.abs(c) < .001 && (c = 0); var f = "translate3d(" + g + "px," + h + "px," + m + "px) rotateX(" + c + "deg) rotateY(" + u + "deg)"; if (o.transform(f), o[0].style.zIndex = 1 - Math.abs(Math.round(d)), T.params.coverflow.slideShadows) { var v = T.isHorizontal() ? o.find(".swiper-slide-shadow-left") : o.find(".swiper-slide-shadow-top"), w = T.isHorizontal() ? o.find(".swiper-slide-shadow-right") : o.find(".swiper-slide-shadow-bottom"); 0 === v.length && (v = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "left" : "top") + '"></div>'), o.append(v)), 0 === w.length && (w = e('<div class="swiper-slide-shadow-' + (T.isHorizontal() ? "right" : "bottom") + '"></div>'), o.append(w)), v.length && (v[0].style.opacity = d > 0 ? d : 0), w.length && (w[0].style.opacity = -d > 0 ? -d : 0) } } if (T.browser.ie) { T.wrapper[0].style.perspectiveOrigin = t + "px 50%" } }, setTransition: function (e) { T.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e) } } }, T.lazy = { initialImageLoaded: !1, loadImageInSlide: function (a, t) { if (void 0 !== a && (void 0 === t && (t = !0), 0 !== T.slides.length)) { var s = T.slides.eq(a), i = s.find("." + T.params.lazyLoadingClass + ":not(." + T.params.lazyStatusLoadedClass + "):not(." + T.params.lazyStatusLoadingClass + ")"); !s.hasClass(T.params.lazyLoadingClass) || s.hasClass(T.params.lazyStatusLoadedClass) || s.hasClass(T.params.lazyStatusLoadingClass) || (i = i.add(s[0])), 0 !== i.length && i.each(function () { var a = e(this); a.addClass(T.params.lazyStatusLoadingClass); var i = a.attr("data-background"), r = a.attr("data-src"), n = a.attr("data-srcset"), o = a.attr("data-sizes"); T.loadImage(a[0], r || i, n, o, !1, function () { if (void 0 !== T && null !== T && T) { if (i ? (a.css("background-image", 'url("' + i + '")'), a.removeAttr("data-background")) : (n && (a.attr("srcset", n), a.removeAttr("data-srcset")), o && (a.attr("sizes", o), a.removeAttr("data-sizes")), r && (a.attr("src", r), a.removeAttr("data-src"))), a.addClass(T.params.lazyStatusLoadedClass).removeClass(T.params.lazyStatusLoadingClass), s.find("." + T.params.lazyPreloaderClass + ", ." + T.params.preloaderClass).remove(), T.params.loop && t) { var e = s.attr("data-swiper-slide-index"); if (s.hasClass(T.params.slideDuplicateClass)) { var l = T.wrapper.children('[data-swiper-slide-index="' + e + '"]:not(.' + T.params.slideDuplicateClass + ")"); T.lazy.loadImageInSlide(l.index(), !1) } else { var p = T.wrapper.children("." + T.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]'); T.lazy.loadImageInSlide(p.index(), !1) } } T.emit("onLazyImageReady", T, s[0], a[0]) } }), T.emit("onLazyImageLoad", T, s[0], a[0]) }) } }, load: function () { var a, t = T.params.slidesPerView; if ("auto" === t && (t = 0), T.lazy.initialImageLoaded || (T.lazy.initialImageLoaded = !0), T.params.watchSlidesVisibility) T.wrapper.children("." + T.params.slideVisibleClass).each(function () { T.lazy.loadImageInSlide(e(this).index()) }); else if (t > 1) for (a = T.activeIndex; a < T.activeIndex + t; a++)T.slides[a] && T.lazy.loadImageInSlide(a); else T.lazy.loadImageInSlide(T.activeIndex); if (T.params.lazyLoadingInPrevNext) if (t > 1 || T.params.lazyLoadingInPrevNextAmount && T.params.lazyLoadingInPrevNextAmount > 1) { var s = T.params.lazyLoadingInPrevNextAmount, i = t, r = Math.min(T.activeIndex + i + Math.max(s, i), T.slides.length), n = Math.max(T.activeIndex - Math.max(i, s), 0); for (a = T.activeIndex + t; a < r; a++)T.slides[a] && T.lazy.loadImageInSlide(a); for (a = n; a < T.activeIndex; a++)T.slides[a] && T.lazy.loadImageInSlide(a) } else { var o = T.wrapper.children("." + T.params.slideNextClass); o.length > 0 && T.lazy.loadImageInSlide(o.index()); var l = T.wrapper.children("." + T.params.slidePrevClass); l.length > 0 && T.lazy.loadImageInSlide(l.index()) } }, onTransitionStart: function () { T.params.lazyLoading && (T.params.lazyLoadingOnTransitionStart || !T.params.lazyLoadingOnTransitionStart && !T.lazy.initialImageLoaded) && T.lazy.load() }, onTransitionEnd: function () { T.params.lazyLoading && !T.params.lazyLoadingOnTransitionStart && T.lazy.load() } }, T.scrollbar = { isTouched: !1, setDragPosition: function (e) { var a = T.scrollbar, t = T.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY, s = t - a.track.offset()[T.isHorizontal() ? "left" : "top"] - a.dragSize / 2, i = -T.minTranslate() * a.moveDivider, r = -T.maxTranslate() * a.moveDivider; s < i ? s = i : s > r && (s = r), s = -s / a.moveDivider, T.updateProgress(s), T.setWrapperTranslate(s, !0) }, dragStart: function (e) { var a = T.scrollbar; a.isTouched = !0, e.preventDefault(), e.stopPropagation(), a.setDragPosition(e), clearTimeout(a.dragTimeout), a.track.transition(0), T.params.scrollbarHide && a.track.css("opacity", 1), T.wrapper.transition(100), a.drag.transition(100), T.emit("onScrollbarDragStart", T) }, dragMove: function (e) { var a = T.scrollbar; a.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, a.setDragPosition(e), T.wrapper.transition(0), a.track.transition(0), a.drag.transition(0), T.emit("onScrollbarDragMove", T)) }, dragEnd: function (e) { var a = T.scrollbar; a.isTouched && (a.isTouched = !1, T.params.scrollbarHide && (clearTimeout(a.dragTimeout), a.dragTimeout = setTimeout(function () { a.track.css("opacity", 0), a.track.transition(400) }, 1e3)), T.emit("onScrollbarDragEnd", T), T.params.scrollbarSnapOnRelease && T.slideReset()) }, draggableEvents: function () { return T.params.simulateTouch !== !1 || T.support.touch ? T.touchEvents : T.touchEventsDesktop }(), enableDraggable: function () { var a = T.scrollbar, t = T.support.touch ? a.track : document; e(a.track).on(a.draggableEvents.start, a.dragStart), e(t).on(a.draggableEvents.move, a.dragMove), e(t).on(a.draggableEvents.end, a.dragEnd) }, disableDraggable: function () { var a = T.scrollbar, t = T.support.touch ? a.track : document; e(a.track).off(a.draggableEvents.start, a.dragStart), e(t).off(a.draggableEvents.move, a.dragMove), e(t).off(a.draggableEvents.end, a.dragEnd) }, set: function () { if (T.params.scrollbar) { var a = T.scrollbar; a.track = e(T.params.scrollbar), T.params.uniqueNavElements && "string" == typeof T.params.scrollbar && a.track.length > 1 && 1 === T.container.find(T.params.scrollbar).length && (a.track = T.container.find(T.params.scrollbar)), a.drag = a.track.find(".swiper-scrollbar-drag"), 0 === a.drag.length && (a.drag = e('<div class="swiper-scrollbar-drag"></div>'), a.track.append(a.drag)), a.drag[0].style.width = "", a.drag[0].style.height = "", a.trackSize = T.isHorizontal() ? a.track[0].offsetWidth : a.track[0].offsetHeight, a.divider = T.size / T.virtualSize, a.moveDivider = a.divider * (a.trackSize / T.size), a.dragSize = a.trackSize * a.divider, T.isHorizontal() ? a.drag[0].style.width = a.dragSize + "px" : a.drag[0].style.height = a.dragSize + "px", a.divider >= 1 ? a.track[0].style.display = "none" : a.track[0].style.display = "", T.params.scrollbarHide && (a.track[0].style.opacity = 0) } }, setTranslate: function () { if (T.params.scrollbar) { var e, a = T.scrollbar, t = (T.translate, a.dragSize); e = (a.trackSize - a.dragSize) * T.progress, T.rtl && T.isHorizontal() ? (e = -e, e > 0 ? (t = a.dragSize - e, e = 0) : -e + a.dragSize > a.trackSize && (t = a.trackSize + e)) : e < 0 ? (t = a.dragSize + e, e = 0) : e + a.dragSize > a.trackSize && (t = a.trackSize - e), T.isHorizontal() ? (T.support.transforms3d ? a.drag.transform("translate3d(" + e + "px, 0, 0)") : a.drag.transform("translateX(" + e + "px)"), a.drag[0].style.width = t + "px") : (T.support.transforms3d ? a.drag.transform("translate3d(0px, " + e + "px, 0)") : a.drag.transform("translateY(" + e + "px)"), a.drag[0].style.height = t + "px"), T.params.scrollbarHide && (clearTimeout(a.timeout), a.track[0].style.opacity = 1, a.timeout = setTimeout(function () { a.track[0].style.opacity = 0, a.track.transition(400) }, 1e3)) } }, setTransition: function (e) { T.params.scrollbar && T.scrollbar.drag.transition(e) } }, T.controller = { LinearSpline: function (e, a) { var t = function () { var e, a, t; return function (s, i) { for (a = -1, e = s.length; e - a > 1;)s[t = e + a >> 1] <= i ? a = t : e = t; return e } }(); this.x = e, this.y = a, this.lastIndex = e.length - 1; var s, i; this.x.length; this.interpolate = function (e) { return e ? (i = t(this.x, e), s = i - 1, (e - this.x[s]) * (this.y[i] - this.y[s]) / (this.x[i] - this.x[s]) + this.y[s]) : 0 } }, getInterpolateFunction: function (e) { T.controller.spline || (T.controller.spline = T.params.loop ? new T.controller.LinearSpline(T.slidesGrid, e.slidesGrid) : new T.controller.LinearSpline(T.snapGrid, e.snapGrid)) }, setTranslate: function (e, t) { function s(a) { e = a.rtl && "horizontal" === a.params.direction ? -T.translate : T.translate, "slide" === T.params.controlBy && (T.controller.getInterpolateFunction(a), r = -T.controller.spline.interpolate(-e)), r && "container" !== T.params.controlBy || (i = (a.maxTranslate() - a.minTranslate()) / (T.maxTranslate() - T.minTranslate()), r = (e - T.minTranslate()) * i + a.minTranslate()), T.params.controlInverse && (r = a.maxTranslate() - r), a.updateProgress(r), a.setWrapperTranslate(r, !1, T), a.updateActiveIndex() } var i, r, n = T.params.control; if (Array.isArray(n)) for (var o = 0; o < n.length; o++)n[o] !== t && n[o] instanceof a && s(n[o]); else n instanceof a && t !== n && s(n) }, setTransition: function (e, t) { function s(a) { a.setWrapperTransition(e, T), 0 !== e && (a.onTransitionStart(), a.wrapper.transitionEnd(function () { r && (a.params.loop && "slide" === T.params.controlBy && a.fixLoop(), a.onTransitionEnd()) })) } var i, r = T.params.control; if (Array.isArray(r)) for (i = 0; i < r.length; i++)r[i] !== t && r[i] instanceof a && s(r[i]); else r instanceof a && t !== r && s(r) } }, T.hashnav = { onHashCange: function (e, a) { var t = document.location.hash.replace("#", ""); t !== T.slides.eq(T.activeIndex).attr("data-hash") && T.slideTo(T.wrapper.children("." + T.params.slideClass + '[data-hash="' + t + '"]').index()) }, attachEvents: function (a) { var t = a ? "off" : "on"; e(window)[t]("hashchange", T.hashnav.onHashCange) }, setHash: function () { if (T.hashnav.initialized && T.params.hashnav) if (T.params.replaceState && window.history && window.history.replaceState) window.history.replaceState(null, null, "#" + T.slides.eq(T.activeIndex).attr("data-hash") || ""); else { var e = T.slides.eq(T.activeIndex), a = e.attr("data-hash") || e.attr("data-history"); document.location.hash = a || "" } }, init: function () { if (T.params.hashnav && !T.params.history) { T.hashnav.initialized = !0; var e = document.location.hash.replace("#", ""); if (e) for (var a = 0, t = T.slides.length; a < t; a++) { var s = T.slides.eq(a), i = s.attr("data-hash") || s.attr("data-history"); if (i === e && !s.hasClass(T.params.slideDuplicateClass)) { var r = s.index(); T.slideTo(r, 0, T.params.runCallbacksOnInit, !0) } } T.params.hashnavWatchState && T.hashnav.attachEvents() } }, destroy: function () { T.params.hashnavWatchState && T.hashnav.attachEvents(!0) } }, T.history = { init: function () { if (T.params.history) { if (!window.history || !window.history.pushState) return T.params.history = !1, void (T.params.hashnav = !0); T.history.initialized = !0, this.paths = this.getPathValues(), (this.paths.key || this.paths.value) && (this.scrollToSlide(0, this.paths.value, T.params.runCallbacksOnInit), T.params.replaceState || window.addEventListener("popstate", this.setHistoryPopState)) } }, setHistoryPopState: function () { T.history.paths = T.history.getPathValues(), T.history.scrollToSlide(T.params.speed, T.history.paths.value, !1) }, getPathValues: function () { var e = window.location.pathname.slice(1).split("/"), a = e.length; return { key: e[a - 2], value: e[a - 1] } }, setHistory: function (e, a) { if (T.history.initialized && T.params.history) { var t = T.slides.eq(a), s = this.slugify(t.attr("data-history")); window.location.pathname.includes(e) || (s = e + "/" + s), T.params.replaceState ? window.history.replaceState(null, null, s) : window.history.pushState(null, null, s) } }, slugify: function (e) { return e.toString().toLowerCase().replace(/\s+/g, "-").replace(/[^\w\-]+/g, "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "") }, scrollToSlide: function (e, a, t) { if (a) for (var s = 0, i = T.slides.length; s < i; s++) { var r = T.slides.eq(s), n = this.slugify(r.attr("data-history")); if (n === a && !r.hasClass(T.params.slideDuplicateClass)) { var o = r.index(); T.slideTo(o, e, t) } } else T.slideTo(0, e, t) } }, T.disableKeyboardControl = function () { T.params.keyboardControl = !1, e(document).off("keydown", p) }, T.enableKeyboardControl = function () { T.params.keyboardControl = !0, e(document).on("keydown", p) }, T.mousewheel = { event: !1, lastScrollTime: (new window.Date).getTime() }, T.params.mousewheelControl && (T.mousewheel.event = navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : function () { var e = "onwheel" in document; if (!e) { var a = document.createElement("div"); a.setAttribute("onwheel", "return;"), e = "function" == typeof a.onwheel } return !e && document.implementation && document.implementation.hasFeature && document.implementation.hasFeature("", "") !== !0 && (e = document.implementation.hasFeature("Events.wheel", "3.0")), e }() ? "wheel" : "mousewheel"), T.disableMousewheelControl = function () { if (!T.mousewheel.event) return !1; var a = T.container; return "container" !== T.params.mousewheelEventsTarged && (a = e(T.params.mousewheelEventsTarged)), a.off(T.mousewheel.event, u), T.params.mousewheelControl = !1, !0 }, T.enableMousewheelControl = function () { if (!T.mousewheel.event) return !1; var a = T.container; return "container" !== T.params.mousewheelEventsTarged && (a = e(T.params.mousewheelEventsTarged)), a.on(T.mousewheel.event, u), T.params.mousewheelControl = !0, !0 }, T.parallax = { setTranslate: function () { T.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { c(this, T.progress) }), T.slides.each(function () { var a = e(this); a.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { c(this, Math.min(Math.max(a[0].progress, -1), 1)) }) }) }, setTransition: function (a) { void 0 === a && (a = T.params.speed), T.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function () { var t = e(this), s = parseInt(t.attr("data-swiper-parallax-duration"), 10) || a; 0 === a && (s = 0), t.transition(s) }) } }, T.zoom = { scale: 1, currentScale: 1, isScaling: !1, gesture: { slide: void 0, slideWidth: void 0, slideHeight: void 0, image: void 0, imageWrap: void 0, zoomMax: T.params.zoomMax }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {} }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 }, getDistanceBetweenTouches: function (e) { if (e.targetTouches.length < 2) return 1; var a = e.targetTouches[0].pageX, t = e.targetTouches[0].pageY, s = e.targetTouches[1].pageX, i = e.targetTouches[1].pageY; return Math.sqrt(Math.pow(s - a, 2) + Math.pow(i - t, 2)) }, onGestureStart: function (a) { var t = T.zoom; if (!T.support.gestures) { if ("touchstart" !== a.type || "touchstart" === a.type && a.targetTouches.length < 2) return; t.gesture.scaleStart = t.getDistanceBetweenTouches(a) } if (!(t.gesture.slide && t.gesture.slide.length || (t.gesture.slide = e(this), 0 === t.gesture.slide.length && (t.gesture.slide = T.slides.eq(T.activeIndex)), t.gesture.image = t.gesture.slide.find("img, svg, canvas"), t.gesture.imageWrap = t.gesture.image.parent("." + T.params.zoomContainerClass), t.gesture.zoomMax = t.gesture.imageWrap.attr("data-swiper-zoom") || T.params.zoomMax, 0 !== t.gesture.imageWrap.length))) return void (t.gesture.image = void 0); t.gesture.image.transition(0), t.isScaling = !0 }, onGestureChange: function (e) { var a = T.zoom; if (!T.support.gestures) { if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return; a.gesture.scaleMove = a.getDistanceBetweenTouches(e) } a.gesture.image && 0 !== a.gesture.image.length && (T.support.gestures ? a.scale = e.scale * a.currentScale : a.scale = a.gesture.scaleMove / a.gesture.scaleStart * a.currentScale, a.scale > a.gesture.zoomMax && (a.scale = a.gesture.zoomMax - 1 + Math.pow(a.scale - a.gesture.zoomMax + 1, .5)), a.scale < T.params.zoomMin && (a.scale = T.params.zoomMin + 1 - Math.pow(T.params.zoomMin - a.scale + 1, .5)), a.gesture.image.transform("translate3d(0,0,0) scale(" + a.scale + ")")) }, onGestureEnd: function (e) { var a = T.zoom; !T.support.gestures && ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2) || a.gesture.image && 0 !== a.gesture.image.length && (a.scale = Math.max(Math.min(a.scale, a.gesture.zoomMax), T.params.zoomMin), a.gesture.image.transition(T.params.speed).transform("translate3d(0,0,0) scale(" + a.scale + ")"), a.currentScale = a.scale, a.isScaling = !1, 1 === a.scale && (a.gesture.slide = void 0)) }, onTouchStart: function (e, a) { var t = e.zoom; t.gesture.image && 0 !== t.gesture.image.length && (t.image.isTouched || ("android" === e.device.os && a.preventDefault(), t.image.isTouched = !0, t.image.touchesStart.x = "touchstart" === a.type ? a.targetTouches[0].pageX : a.pageX, t.image.touchesStart.y = "touchstart" === a.type ? a.targetTouches[0].pageY : a.pageY)) }, onTouchMove: function (e) { var a = T.zoom; if (a.gesture.image && 0 !== a.gesture.image.length && (T.allowClick = !1, a.image.isTouched && a.gesture.slide)) { a.image.isMoved || (a.image.width = a.gesture.image[0].offsetWidth, a.image.height = a.gesture.image[0].offsetHeight, a.image.startX = T.getTranslate(a.gesture.imageWrap[0], "x") || 0, a.image.startY = T.getTranslate(a.gesture.imageWrap[0], "y") || 0, a.gesture.slideWidth = a.gesture.slide[0].offsetWidth, a.gesture.slideHeight = a.gesture.slide[0].offsetHeight, a.gesture.imageWrap.transition(0), T.rtl && (a.image.startX = -a.image.startX), T.rtl && (a.image.startY = -a.image.startY)); var t = a.image.width * a.scale, s = a.image.height * a.scale; if (!(t < a.gesture.slideWidth && s < a.gesture.slideHeight)) { if (a.image.minX = Math.min(a.gesture.slideWidth / 2 - t / 2, 0), a.image.maxX = -a.image.minX, a.image.minY = Math.min(a.gesture.slideHeight / 2 - s / 2, 0), a.image.maxY = -a.image.minY, a.image.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, a.image.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !a.image.isMoved && !a.isScaling) { if (T.isHorizontal() && Math.floor(a.image.minX) === Math.floor(a.image.startX) && a.image.touchesCurrent.x < a.image.touchesStart.x || Math.floor(a.image.maxX) === Math.floor(a.image.startX) && a.image.touchesCurrent.x > a.image.touchesStart.x) return void (a.image.isTouched = !1); if (!T.isHorizontal() && Math.floor(a.image.minY) === Math.floor(a.image.startY) && a.image.touchesCurrent.y < a.image.touchesStart.y || Math.floor(a.image.maxY) === Math.floor(a.image.startY) && a.image.touchesCurrent.y > a.image.touchesStart.y) return void (a.image.isTouched = !1) } e.preventDefault(), e.stopPropagation(), a.image.isMoved = !0, a.image.currentX = a.image.touchesCurrent.x - a.image.touchesStart.x + a.image.startX, a.image.currentY = a.image.touchesCurrent.y - a.image.touchesStart.y + a.image.startY, a.image.currentX < a.image.minX && (a.image.currentX = a.image.minX + 1 - Math.pow(a.image.minX - a.image.currentX + 1, .8)), a.image.currentX > a.image.maxX && (a.image.currentX = a.image.maxX - 1 + Math.pow(a.image.currentX - a.image.maxX + 1, .8)), a.image.currentY < a.image.minY && (a.image.currentY = a.image.minY + 1 - Math.pow(a.image.minY - a.image.currentY + 1, .8)), a.image.currentY > a.image.maxY && (a.image.currentY = a.image.maxY - 1 + Math.pow(a.image.currentY - a.image.maxY + 1, .8)), a.velocity.prevPositionX || (a.velocity.prevPositionX = a.image.touchesCurrent.x), a.velocity.prevPositionY || (a.velocity.prevPositionY = a.image.touchesCurrent.y), a.velocity.prevTime || (a.velocity.prevTime = Date.now()), a.velocity.x = (a.image.touchesCurrent.x - a.velocity.prevPositionX) / (Date.now() - a.velocity.prevTime) / 2, a.velocity.y = (a.image.touchesCurrent.y - a.velocity.prevPositionY) / (Date.now() - a.velocity.prevTime) / 2, Math.abs(a.image.touchesCurrent.x - a.velocity.prevPositionX) < 2 && (a.velocity.x = 0), Math.abs(a.image.touchesCurrent.y - a.velocity.prevPositionY) < 2 && (a.velocity.y = 0), a.velocity.prevPositionX = a.image.touchesCurrent.x, a.velocity.prevPositionY = a.image.touchesCurrent.y, a.velocity.prevTime = Date.now(), a.gesture.imageWrap.transform("translate3d(" + a.image.currentX + "px, " + a.image.currentY + "px,0)") } } }, onTouchEnd: function (e, a) { var t = e.zoom; if (t.gesture.image && 0 !== t.gesture.image.length) { if (!t.image.isTouched || !t.image.isMoved) return t.image.isTouched = !1, void (t.image.isMoved = !1); t.image.isTouched = !1, t.image.isMoved = !1; var s = 300, i = 300, r = t.velocity.x * s, n = t.image.currentX + r, o = t.velocity.y * i, l = t.image.currentY + o; 0 !== t.velocity.x && (s = Math.abs((n - t.image.currentX) / t.velocity.x)), 0 !== t.velocity.y && (i = Math.abs((l - t.image.currentY) / t.velocity.y)); var p = Math.max(s, i); t.image.currentX = n, t.image.currentY = l; var d = t.image.width * t.scale, u = t.image.height * t.scale; t.image.minX = Math.min(t.gesture.slideWidth / 2 - d / 2, 0), t.image.maxX = -t.image.minX, t.image.minY = Math.min(t.gesture.slideHeight / 2 - u / 2, 0), t.image.maxY = -t.image.minY, t.image.currentX = Math.max(Math.min(t.image.currentX, t.image.maxX), t.image.minX), t.image.currentY = Math.max(Math.min(t.image.currentY, t.image.maxY), t.image.minY), t.gesture.imageWrap.transition(p).transform("translate3d(" + t.image.currentX + "px, " + t.image.currentY + "px,0)") } }, onTransitionEnd: function (e) { var a = e.zoom; a.gesture.slide && e.previousIndex !== e.activeIndex && (a.gesture.image.transform("translate3d(0,0,0) scale(1)"), a.gesture.imageWrap.transform("translate3d(0,0,0)"), a.gesture.slide = a.gesture.image = a.gesture.imageWrap = void 0, a.scale = a.currentScale = 1) }, toggleZoom: function (a, t) { var s = a.zoom; if (s.gesture.slide || (s.gesture.slide = a.clickedSlide ? e(a.clickedSlide) : a.slides.eq(a.activeIndex), s.gesture.image = s.gesture.slide.find("img, svg, canvas"), s.gesture.imageWrap = s.gesture.image.parent("." + a.params.zoomContainerClass)), s.gesture.image && 0 !== s.gesture.image.length) { var i, r, n, o, l, p, d, u, c, m, h, g, f, v, w, y, x, T; void 0 === s.image.touchesStart.x && t ? (i = "touchend" === t.type ? t.changedTouches[0].pageX : t.pageX, r = "touchend" === t.type ? t.changedTouches[0].pageY : t.pageY) : (i = s.image.touchesStart.x, r = s.image.touchesStart.y), s.scale && 1 !== s.scale ? (s.scale = s.currentScale = 1, s.gesture.imageWrap.transition(300).transform("translate3d(0,0,0)"), s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(1)"), s.gesture.slide = void 0) : (s.scale = s.currentScale = s.gesture.imageWrap.attr("data-swiper-zoom") || a.params.zoomMax, t ? (x = s.gesture.slide[0].offsetWidth, T = s.gesture.slide[0].offsetHeight, n = s.gesture.slide.offset().left, o = s.gesture.slide.offset().top, l = n + x / 2 - i, p = o + T / 2 - r, c = s.gesture.image[0].offsetWidth, m = s.gesture.image[0].offsetHeight, h = c * s.scale, g = m * s.scale, f = Math.min(x / 2 - h / 2, 0), v = Math.min(T / 2 - g / 2, 0), w = -f, y = -v, d = l * s.scale, u = p * s.scale, d < f && (d = f), d > w && (d = w), u < v && (u = v), u > y && (u = y)) : (d = 0, u = 0), s.gesture.imageWrap.transition(300).transform("translate3d(" + d + "px, " + u + "px,0)"), s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(" + s.scale + ")")) } }, attachEvents: function (a) { var t = a ? "off" : "on"; if (T.params.zoom) { var s = (T.slides, !("touchstart" !== T.touchEvents.start || !T.support.passiveListener || !T.params.passiveListeners) && { passive: !0, capture: !1 }); T.support.gestures ? (T.slides[t]("gesturestart", T.zoom.onGestureStart, s), T.slides[t]("gesturechange", T.zoom.onGestureChange, s), T.slides[t]("gestureend", T.zoom.onGestureEnd, s)) : "touchstart" === T.touchEvents.start && (T.slides[t](T.touchEvents.start, T.zoom.onGestureStart, s), T.slides[t](T.touchEvents.move, T.zoom.onGestureChange, s), T.slides[t](T.touchEvents.end, T.zoom.onGestureEnd, s)), T[t]("touchStart", T.zoom.onTouchStart), T.slides.each(function (a, s) { e(s).find("." + T.params.zoomContainerClass).length > 0 && e(s)[t](T.touchEvents.move, T.zoom.onTouchMove) }), T[t]("touchEnd", T.zoom.onTouchEnd), T[t]("transitionEnd", T.zoom.onTransitionEnd), T.params.zoomToggle && T.on("doubleTap", T.zoom.toggleZoom) } }, init: function () { T.zoom.attachEvents() }, destroy: function () { T.zoom.attachEvents(!0) } }, T._plugins = []; for (var Y in T.plugins) { var O = T.plugins[Y](T, T.params[Y]); O && T._plugins.push(O) } return T.callPlugins = function (e) { for (var a = 0; a < T._plugins.length; a++)e in T._plugins[a] && T._plugins[a][e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, T.emitterEventListeners = {}, T.emit = function (e) { T.params[e] && T.params[e](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); var a; if (T.emitterEventListeners[e]) for (a = 0; a < T.emitterEventListeners[e].length; a++)T.emitterEventListeners[e][a](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); T.callPlugins && T.callPlugins(e, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]) }, T.on = function (e, a) { return e = m(e), T.emitterEventListeners[e] || (T.emitterEventListeners[e] = []), T.emitterEventListeners[e].push(a), T }, T.off = function (e, a) { var t; if (e = m(e), void 0 === a) return T.emitterEventListeners[e] = [], T; if (T.emitterEventListeners[e] && 0 !== T.emitterEventListeners[e].length) { for (t = 0; t < T.emitterEventListeners[e].length; t++)T.emitterEventListeners[e][t] === a && T.emitterEventListeners[e].splice(t, 1); return T } }, T.once = function (e, a) { e = m(e); var t = function () { a(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]), T.off(e, t) }; return T.on(e, t), T }, T.a11y = { makeFocusable: function (e) { return e.attr("tabIndex", "0"), e }, addRole: function (e, a) { return e.attr("role", a), e }, addLabel: function (e, a) { return e.attr("aria-label", a), e }, disable: function (e) { return e.attr("aria-disabled", !0), e }, enable: function (e) { return e.attr("aria-disabled", !1), e }, onEnterKey: function (a) { 13 === a.keyCode && (e(a.target).is(T.params.nextButton) ? (T.onClickNext(a), T.isEnd ? T.a11y.notify(T.params.lastSlideMessage) : T.a11y.notify(T.params.nextSlideMessage)) : e(a.target).is(T.params.prevButton) && (T.onClickPrev(a), T.isBeginning ? T.a11y.notify(T.params.firstSlideMessage) : T.a11y.notify(T.params.prevSlideMessage)), e(a.target).is("." + T.params.bulletClass) && e(a.target)[0].click()) }, liveRegion: e('<span class="' + T.params.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>'), notify: function (e) { var a = T.a11y.liveRegion; 0 !== a.length && (a.html(""), a.html(e)) }, init: function () { T.params.nextButton && T.nextButton && T.nextButton.length > 0 && (T.a11y.makeFocusable(T.nextButton), T.a11y.addRole(T.nextButton, "button"), T.a11y.addLabel(T.nextButton, T.params.nextSlideMessage)), T.params.prevButton && T.prevButton && T.prevButton.length > 0 && (T.a11y.makeFocusable(T.prevButton), T.a11y.addRole(T.prevButton, "button"), T.a11y.addLabel(T.prevButton, T.params.prevSlideMessage)), e(T.container).append(T.a11y.liveRegion) }, initPagination: function () { T.params.pagination && T.params.paginationClickable && T.bullets && T.bullets.length && T.bullets.each(function () { var a = e(this); T.a11y.makeFocusable(a), T.a11y.addRole(a, "button"), T.a11y.addLabel(a, T.params.paginationBulletMessage.replace(/{{index}}/, a.index() + 1)) }) }, destroy: function () { T.a11y.liveRegion && T.a11y.liveRegion.length > 0 && T.a11y.liveRegion.remove() } }, T.init = function () { T.params.loop && T.createLoop(), T.updateContainerSize(), T.updateSlidesSize(), T.updatePagination(), T.params.scrollbar && T.scrollbar && (T.scrollbar.set(), T.params.scrollbarDraggable && T.scrollbar.enableDraggable()), "slide" !== T.params.effect && T.effects[T.params.effect] && (T.params.loop || T.updateProgress(), T.effects[T.params.effect].setTranslate()), T.params.loop ? T.slideTo(T.params.initialSlide + T.loopedSlides, 0, T.params.runCallbacksOnInit) : (T.slideTo(T.params.initialSlide, 0, T.params.runCallbacksOnInit), 0 === T.params.initialSlide && (T.parallax && T.params.parallax && T.parallax.setTranslate(), T.lazy && T.params.lazyLoading && (T.lazy.load(), T.lazy.initialImageLoaded = !0))), T.attachEvents(), T.params.observer && T.support.observer && T.initObservers(), T.params.preloadImages && !T.params.lazyLoading && T.preloadImages(), T.params.zoom && T.zoom && T.zoom.init(), T.params.autoplay && T.startAutoplay(), T.params.keyboardControl && T.enableKeyboardControl && T.enableKeyboardControl(), T.params.mousewheelControl && T.enableMousewheelControl && T.enableMousewheelControl(), T.params.hashnavReplaceState && (T.params.replaceState = T.params.hashnavReplaceState), T.params.history && T.history && T.history.init(), T.params.hashnav && T.hashnav && T.hashnav.init(), T.params.a11y && T.a11y && T.a11y.init(), T.emit("onInit", T) }, T.cleanupStyles = function () { T.container.removeClass(T.classNames.join(" ")).removeAttr("style"), T.wrapper.removeAttr("style"), T.slides && T.slides.length && T.slides.removeClass([T.params.slideVisibleClass, T.params.slideActiveClass, T.params.slideNextClass, T.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"), T.paginationContainer && T.paginationContainer.length && T.paginationContainer.removeClass(T.params.paginationHiddenClass), T.bullets && T.bullets.length && T.bullets.removeClass(T.params.bulletActiveClass), T.params.prevButton && e(T.params.prevButton).removeClass(T.params.buttonDisabledClass), T.params.nextButton && e(T.params.nextButton).removeClass(T.params.buttonDisabledClass), T.params.scrollbar && T.scrollbar && (T.scrollbar.track && T.scrollbar.track.length && T.scrollbar.track.removeAttr("style"), T.scrollbar.drag && T.scrollbar.drag.length && T.scrollbar.drag.removeAttr("style")) }, T.destroy = function (e, a) { T.detachEvents(), T.stopAutoplay(), T.params.scrollbar && T.scrollbar && T.params.scrollbarDraggable && T.scrollbar.disableDraggable(), T.params.loop && T.destroyLoop(), a && T.cleanupStyles(), T.disconnectObservers(), T.params.zoom && T.zoom && T.zoom.destroy(), T.params.keyboardControl && T.disableKeyboardControl && T.disableKeyboardControl(), T.params.mousewheelControl && T.disableMousewheelControl && T.disableMousewheelControl(), T.params.a11y && T.a11y && T.a11y.destroy(), T.params.history && !T.params.replaceState && window.removeEventListener("popstate", T.history.setHistoryPopState), T.params.hashnav && T.hashnav && T.hashnav.destroy(), T.emit("onDestroy"), e !== !1 && (T = null) }, T.init(), T } }; a.prototype = { isSafari: function () { var e = window.navigator.userAgent.toLowerCase(); return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0 }(), isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent), isArray: function (e) { return "[object Array]" === Object.prototype.toString.apply(e) }, browser: { ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled, ieTouch: window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1, lteIE9: function () { var e = document.createElement("div"); return e.innerHTML = "<!--[if lte IE 9]><i></i><![endif]-->", 1 === e.getElementsByTagName("i").length }() }, device: function () { var e = window.navigator.userAgent, a = e.match(/(Android);?[\s\/]+([\d.]+)?/), t = e.match(/(iPad).*OS\s([\d_]+)/), s = e.match(/(iPod)(.*OS\s([\d_]+))?/), i = !t && e.match(/(iPhone\sOS|iOS)\s([\d_]+)/); return { ios: t || i || s, android: a } }(), support: { touch: window.Modernizr && Modernizr.touch === !0 || function () { return !!("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch) }(), transforms3d: window.Modernizr && Modernizr.csstransforms3d === !0 || function () { var e = document.createElement("div").style; return "webkitPerspective" in e || "MozPerspective" in e || "OPerspective" in e || "MsPerspective" in e || "perspective" in e }(), flexbox: function () { for (var e = document.createElement("div").style, a = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), t = 0; t < a.length; t++)if (a[t] in e) return !0 }(), observer: function () { return "MutationObserver" in window || "WebkitMutationObserver" in window }(), passiveListener: function () { var e = !1; try { var a = Object.defineProperty({}, "passive", { get: function () { e = !0 } }); window.addEventListener("testPassiveListener", null, a) } catch (e) { } return e }(), gestures: function () { return "ongesturestart" in window }() }, plugins: {} }; for (var t = (function () { var e = function (e) { var a = this, t = 0; for (t = 0; t < e.length; t++)a[t] = e[t]; return a.length = e.length, this }, a = function (a, t) { var s = [], i = 0; if (a && !t && a instanceof e) return a; if (a) if ("string" == typeof a) { var r, n, o = a.trim(); if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) { var l = "div"; for (0 === o.indexOf("<li") && (l = "ul"), 0 === o.indexOf("<tr") && (l = "tbody"), 0 !== o.indexOf("<td") && 0 !== o.indexOf("<th") || (l = "tr"), 0 === o.indexOf("<tbody") && (l = "table"), 0 === o.indexOf("<option") && (l = "select"), n = document.createElement(l), n.innerHTML = a, i = 0; i < n.childNodes.length; i++)s.push(n.childNodes[i]) } else for (r = t || "#" !== a[0] || a.match(/[ .<>:~]/) ? (t || document).querySelectorAll(a) : [document.getElementById(a.split("#")[1])], i = 0; i < r.length; i++)r[i] && s.push(r[i]) } else if (a.nodeType || a === window || a === document) s.push(a); else if (a.length > 0 && a[0].nodeType) for (i = 0; i < a.length; i++)s.push(a[i]); return new e(s) }; return e.prototype = { addClass: function (e) { if (void 0 === e) return this; for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.add(a[t]); return this }, removeClass: function (e) { for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.remove(a[t]); return this }, hasClass: function (e) { return !!this[0] && this[0].classList.contains(e) }, toggleClass: function (e) { for (var a = e.split(" "), t = 0; t < a.length; t++)for (var s = 0; s < this.length; s++)this[s].classList.toggle(a[t]); return this }, attr: function (e, a) { if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0; for (var t = 0; t < this.length; t++)if (2 === arguments.length) this[t].setAttribute(e, a); else for (var s in e) this[t][s] = e[s], this[t].setAttribute(s, e[s]); return this }, removeAttr: function (e) { for (var a = 0; a < this.length; a++)this[a].removeAttribute(e); return this }, data: function (e, a) { if (void 0 !== a) { for (var t = 0; t < this.length; t++) { var s = this[t]; s.dom7ElementDataStorage || (s.dom7ElementDataStorage = {}), s.dom7ElementDataStorage[e] = a } return this } if (this[0]) { var i = this[0].getAttribute("data-" + e); return i ? i : this[0].dom7ElementDataStorage && e in this[0].dom7ElementDataStorage ? this[0].dom7ElementDataStorage[e] : void 0 } }, transform: function (e) { for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransform = t.MsTransform = t.msTransform = t.MozTransform = t.OTransform = t.transform = e } return this }, transition: function (e) { "string" != typeof e && (e += "ms"); for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransitionDuration = t.MsTransitionDuration = t.msTransitionDuration = t.MozTransitionDuration = t.OTransitionDuration = t.transitionDuration = e } return this }, on: function (e, t, s, i) { function r(e) { var i = e.target; if (a(i).is(t)) s.call(i, e); else for (var r = a(i).parents(), n = 0; n < r.length; n++)a(r[n]).is(t) && s.call(r[n], e) } var n, o, l = e.split(" "); for (n = 0; n < this.length; n++)if ("function" == typeof t || t === !1) for ("function" == typeof t && (s = arguments[1], i = arguments[2] || !1), o = 0; o < l.length; o++)this[n].addEventListener(l[o], s, i); else for (o = 0; o < l.length; o++)this[n].dom7LiveListeners || (this[n].dom7LiveListeners = []), this[n].dom7LiveListeners.push({ listener: s, liveListener: r }), this[n].addEventListener(l[o], r, i); return this }, off: function (e, a, t, s) { for (var i = e.split(" "), r = 0; r < i.length; r++)for (var n = 0; n < this.length; n++)if ("function" == typeof a || a === !1) "function" == typeof a && (t = arguments[1], s = arguments[2] || !1), this[n].removeEventListener(i[r], t, s); else if (this[n].dom7LiveListeners) for (var o = 0; o < this[n].dom7LiveListeners.length; o++)this[n].dom7LiveListeners[o].listener === t && this[n].removeEventListener(i[r], this[n].dom7LiveListeners[o].liveListener, s); return this }, once: function (e, a, t, s) { function i(n) { t(n), r.off(e, a, i, s) } var r = this; "function" == typeof a && (a = !1, t = arguments[1], s = arguments[2]), r.on(e, a, i, s) }, trigger: function (e, a) { for (var t = 0; t < this.length; t++) { var s; try { s = new window.CustomEvent(e, { detail: a, bubbles: !0, cancelable: !0 }) } catch (t) { s = document.createEvent("Event"), s.initEvent(e, !0, !0), s.detail = a } this[t].dispatchEvent(s) } return this }, transitionEnd: function (e) { function a(r) { if (r.target === this) for (e.call(this, r), t = 0; t < s.length; t++)i.off(s[t], a) } var t, s = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = this; if (e) for (t = 0; t < s.length; t++)i.on(s[t], a); return this }, width: function () { return this[0] === window ? window.innerWidth : this.length > 0 ? parseFloat(this.css("width")) : null }, outerWidth: function (e) { return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null }, height: function () { return this[0] === window ? window.innerHeight : this.length > 0 ? parseFloat(this.css("height")) : null }, outerHeight: function (e) { return this.length > 0 ? e ? this[0].offsetHeight + parseFloat(this.css("margin-top")) + parseFloat(this.css("margin-bottom")) : this[0].offsetHeight : null }, offset: function () { if (this.length > 0) { var e = this[0], a = e.getBoundingClientRect(), t = document.body, s = e.clientTop || t.clientTop || 0, i = e.clientLeft || t.clientLeft || 0, r = window.pageYOffset || e.scrollTop, n = window.pageXOffset || e.scrollLeft; return { top: a.top + r - s, left: a.left + n - i } } return null }, css: function (e, a) { var t; if (1 === arguments.length) { if ("string" != typeof e) { for (t = 0; t < this.length; t++)for (var s in e) this[t].style[s] = e[s]; return this } if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(e) } if (2 === arguments.length && "string" == typeof e) { for (t = 0; t < this.length; t++)this[t].style[e] = a; return this } return this }, each: function (e) { for (var a = 0; a < this.length; a++)e.call(this[a], a, this[a]); return this }, html: function (e) { if (void 0 === e) return this[0] ? this[0].innerHTML : void 0; for (var a = 0; a < this.length; a++)this[a].innerHTML = e; return this }, text: function (e) { if (void 0 === e) return this[0] ? this[0].textContent.trim() : null; for (var a = 0; a < this.length; a++)this[a].textContent = e; return this }, is: function (t) { if (!this[0]) return !1; var s, i; if ("string" == typeof t) { var r = this[0]; if (r === document) return t === document; if (r === window) return t === window; if (r.matches) return r.matches(t); if (r.webkitMatchesSelector) return r.webkitMatchesSelector(t); if (r.mozMatchesSelector) return r.mozMatchesSelector(t); if (r.msMatchesSelector) return r.msMatchesSelector(t); for (s = a(t), i = 0; i < s.length; i++)if (s[i] === this[0]) return !0; return !1 } if (t === document) return this[0] === document; if (t === window) return this[0] === window; if (t.nodeType || t instanceof e) { for (s = t.nodeType ? [t] : t, i = 0; i < s.length; i++)if (s[i] === this[0]) return !0; return !1 } return !1 }, index: function () { if (this[0]) { for (var e = this[0], a = 0; null !== (e = e.previousSibling);)1 === e.nodeType && a++; return a } }, eq: function (a) { if (void 0 === a) return this; var t, s = this.length; return a > s - 1 ? new e([]) : a < 0 ? (t = s + a, new e(t < 0 ? [] : [this[t]])) : new e([this[a]]) }, append: function (a) { var t, s; for (t = 0; t < this.length; t++)if ("string" == typeof a) { var i = document.createElement("div"); for (i.innerHTML = a; i.firstChild;)this[t].appendChild(i.firstChild) } else if (a instanceof e) for (s = 0; s < a.length; s++)this[t].appendChild(a[s]); else this[t].appendChild(a); return this }, prepend: function (a) { var t, s; for (t = 0; t < this.length; t++)if ("string" == typeof a) { var i = document.createElement("div"); for (i.innerHTML = a, s = i.childNodes.length - 1; s >= 0; s--)this[t].insertBefore(i.childNodes[s], this[t].childNodes[0]) } else if (a instanceof e) for (s = 0; s < a.length; s++)this[t].insertBefore(a[s], this[t].childNodes[0]); else this[t].insertBefore(a, this[t].childNodes[0]); return this }, insertBefore: function (e) { for (var t = a(e), s = 0; s < this.length; s++)if (1 === t.length) t[0].parentNode.insertBefore(this[s], t[0]); else if (t.length > 1) for (var i = 0; i < t.length; i++)t[i].parentNode.insertBefore(this[s].cloneNode(!0), t[i]) }, insertAfter: function (e) { for (var t = a(e), s = 0; s < this.length; s++)if (1 === t.length) t[0].parentNode.insertBefore(this[s], t[0].nextSibling); else if (t.length > 1) for (var i = 0; i < t.length; i++)t[i].parentNode.insertBefore(this[s].cloneNode(!0), t[i].nextSibling) }, next: function (t) { return new e(this.length > 0 ? t ? this[0].nextElementSibling && a(this[0].nextElementSibling).is(t) ? [this[0].nextElementSibling] : [] : this[0].nextElementSibling ? [this[0].nextElementSibling] : [] : []) }, nextAll: function (t) { var s = [], i = this[0]; if (!i) return new e([]); for (; i.nextElementSibling;) { var r = i.nextElementSibling; t ? a(r).is(t) && s.push(r) : s.push(r), i = r } return new e(s) }, prev: function (t) { return new e(this.length > 0 ? t ? this[0].previousElementSibling && a(this[0].previousElementSibling).is(t) ? [this[0].previousElementSibling] : [] : this[0].previousElementSibling ? [this[0].previousElementSibling] : [] : []) }, prevAll: function (t) { var s = [], i = this[0]; if (!i) return new e([]); for (; i.previousElementSibling;) { var r = i.previousElementSibling; t ? a(r).is(t) && s.push(r) : s.push(r), i = r } return new e(s) }, parent: function (e) { for (var t = [], s = 0; s < this.length; s++)e ? a(this[s].parentNode).is(e) && t.push(this[s].parentNode) : t.push(this[s].parentNode); return a(a.unique(t)) }, parents: function (e) { for (var t = [], s = 0; s < this.length; s++)for (var i = this[s].parentNode; i;)e ? a(i).is(e) && t.push(i) : t.push(i), i = i.parentNode; return a(a.unique(t)) }, find: function (a) { for (var t = [], s = 0; s < this.length; s++)for (var i = this[s].querySelectorAll(a), r = 0; r < i.length; r++)t.push(i[r]); return new e(t) }, children: function (t) { for (var s = [], i = 0; i < this.length; i++)for (var r = this[i].childNodes, n = 0; n < r.length; n++)t ? 1 === r[n].nodeType && a(r[n]).is(t) && s.push(r[n]) : 1 === r[n].nodeType && s.push(r[n]); return new e(a.unique(s)) }, remove: function () { for (var e = 0; e < this.length; e++)this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this }, add: function () { var e, t, s = this; for (e = 0; e < arguments.length; e++) { var i = a(arguments[e]); for (t = 0; t < i.length; t++)s[s.length] = i[t], s.length++ } return s } }, a.fn = e.prototype, a.unique = function (e) { for (var a = [], t = 0; t < e.length; t++)a.indexOf(e[t]) === -1 && a.push(e[t]); return a }, a }()), s = ["jQuery", "Zepto", "Dom7"], i = 0; i < s.length; i++)window[s[i]] && function (e) { e.fn.swiper = function (t) { var s; return e(this).each(function () { var e = new a(this, t); s || (s = e) }), s } }(window[s[i]]); var r; r = void 0 === t ? window.Dom7 || window.Zepto || window.jQuery : t, r && ("transitionEnd" in r.fn || (r.fn.transitionEnd = function (e) { function a(r) { if (r.target === this) for (e.call(this, r), t = 0; t < s.length; t++)i.off(s[t], a) } var t, s = ["webkitTransitionEnd", "transitionend", "oTransitionEnd", "MSTransitionEnd", "msTransitionEnd"], i = this; if (e) for (t = 0; t < s.length; t++)i.on(s[t], a); return this }), "transform" in r.fn || (r.fn.transform = function (e) { for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransform = t.MsTransform = t.msTransform = t.MozTransform = t.OTransform = t.transform = e } return this }), "transition" in r.fn || (r.fn.transition = function (e) { "string" != typeof e && (e += "ms"); for (var a = 0; a < this.length; a++) { var t = this[a].style; t.webkitTransitionDuration = t.MsTransitionDuration = t.msTransitionDuration = t.MozTransitionDuration = t.OTransitionDuration = t.transitionDuration = e } return this }), "outerWidth" in r.fn || (r.fn.outerWidth = function (e) { return this.length > 0 ? e ? this[0].offsetWidth + parseFloat(this.css("margin-right")) + parseFloat(this.css("margin-left")) : this[0].offsetWidth : null })), window.Swiper = a }(), "undefined" != typeof module ? module.exports = window.Swiper : "function" == typeof define && define.amd && define([], function () { "use strict"; return window.Swiper }); //# sourceMappingURL=maps/swiper.min.js.map </script> <style> #slideshow1.swiper-container, .swiper-wrapper, .swiper-slide { /*width: 100%; height: 18px;*/ } #slideshow1 .swiper-slide { text-align: center; /*font-size: 18px;*/ background: #fff; display: flex; } #slideshow1 .swiper-container { margin-left: auto; margin-right: auto; position: relative; overflow: hidden; z-index: 1; left: 10px; } </style> <style> .social-icons ul li,.sustainability-social .pipe,.sustainability-social a{display:inline-block;list-style-type:none}#HelloBarTextAds .social-icons ul li i{background-color:#b9b9b9}nav.sponsored-alert{display:block;position:fixed;top:0;left:0;width:100%;padding:0;height:auto;min-height:auto;line-height:normal;background:#fff;z-index:9999;border-radius:0;border-bottom:1px solid #e5e5e5!important;border:0}#slideshow1 .swiper-container-vertical>.swiper-wrapper{width:100%;height:18px}.left-tag{background:#7d663f;background:-moz-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-webkit-gradient(left top,right top,color-stop(0,#7d663f),color-stop(6%,#7d663f),color-stop(50%,#c29c66),color-stop(89%,#896d43),color-stop(100%,#896d43));background:-webkit-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-o-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:-ms-linear-gradient(left,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);background:linear-gradient(to right,#7d663f 0,#7d663f 6%,#c29c66 50%,#896d43 89%,#896d43 100%);float:left;padding:13px 30px 13px 10px;color:#fff;position:relative;background-color:#c5dff9;overflow:hidden}.left-tag:before{width:0;height:0;border-top:60px solid #a88656;border-right:34px solid transparent;position:absolute;content:"";top:0;right:0;z-index:9;background:#fff;display:none}.left-tag span{position:relative;z-index:99;font-size:14px;font-family:oxygenbold}.text-content{color:rgba(0,0,0,.7);padding:12px 15px}.text-content a{color:#004c5c;font-size:13px;font-family:oxygenbold}.text-content span{color:#c6c6c6}.text-content span a{color:#b3b3b3!important}.f2ftopmenu .navbar.navbar50{top:42px}.f2ftopmenu .navbar,body.body50{margin-top:42px}.social-icons li,.social-icons-top.toprightsocialheader li{position:relative;margin:0 auto!important;display:inline-block}nav.sponsored-alert .social-icons ul{padding:0;margin:0}nav.sponsored-alert .social-icons ul li i{padding:5px 7px;width:25px;height:25px;line-height:15px;font-size:13px}.sponsored-left-content{width:calc(100% - 285px)}.nav.sponsored-alert{border:0!important;border-bottom:1px solid #e5e5e5!important}.pattern-bg{margin-top:105px}@media screen and (max-width:991px){.pattern-bg{margin-top:135px}.sponsored-left-content{width:calc(100% - 250px)}.sponsored-alert .social-icons{width:250px}nav.sponsored-alert .container{width:100%;padding:0}nav.sponsored-alert .container>div:first-child{padding:0}nav.sponsored-alert .container>div:last-child{padding-left:0}.text-content{padding:13px 0}nav.sponsored-alert .social-icons ul li i{font-size:13px;width:24px;height:24px;line-height:15px}}#textadsdisplay .text-content a{color:#2f2f2f}#slideshow>div{position:absolute;top:12px;left:10px;right:10px;bottom:10px}.social-icons-top.toprightsocialheader li .fa{padding:4px 0;color:#868686;width:22px;height:22px;font-size:12px;background-color:#fff;border-radius:50%;transition:.5s;border:1px solid #595959;text-align:center}.social-icons-top.toprightsocialheader li{padding:0 1px}.social-icons-top li .fa.fa-facebook{padding:4px 8px}.left-tag.leftheadertag span{position:relative;z-index:99;font-size:12px;font-family:oxygenregular;font-weight:400;border-right:1px solid #e5e5e5;padding:5px 10px 5px 0}.left-tag.leftheadertag{background:#fff;float:left;padding:13px 0 10px 10px;color:#000;position:relative;overflow:hidden}.social-icons-top.toprightsocialheader li:before{border:0;display:none}.welcometext{margin-top:3px!important}.sponsored-alert .social-icons{padding:0 5px!important;border-left:0 solid #e5e5e5!important;text-align:right!important;float:right!important;width:auto!important}.social-icons li{padding:0 10px}.social-icons li:before{content:"";position:absolute;left:0;width:1px;height:100%;border-left:1px solid #e5e5e5}.sourcing-btn{text-align:right;display:inline-block}.sourcing-btn a{background:#c46bd6;float:left;border-radius:10px;padding:3px 17px;color:#fff;margin-top:11px;font-size:11px;margin-left:0;background:linear-gradient(92deg,#30478a -19%,#007cad 61%,#d09203 95%)}.social-icons-top.toprightsocialheader{margin-right:1.5%;padding-top:10px;text-align:right;display:inline-block;float:right}.social-icons-top ul{margin:0;padding:0}@media only screen and (max-width:1280px){.sourcing-btn a{margin-left:-18px}}@media (max-width:1024px){.text-content a{font-size:10px}#textadsdisplay .text-content a{margin-top:4px}.sourcing-btn a{display:none}}@media only screen and (max-width:991px){.sponsored-alert .social-icons{width:300px!important}.sponsored-alert .social-icons ul li{max-width:90px;padding:0}} </style> <div class="wrapper"> <div class="top-header"> <div class="container"> <div class="top-header-details"> <div class="top-header-left"> <div class="top-header-btn"> <span class="sponsored-btn">Sponsored</span> </div> <span> <div id="slideshow1"> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide" id="slide-0"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mqlw8ipGGIbh7S4/J+X7DaTMbFQE93Yfr88HN8IqXhOTGK79GiRL8t8A0OiE9i+xMJ/LHDhTrrzvh06F0CGFsfykcGWgZ5nM5gmfK691cvx1cDo+H8tVXhWAqE+yhcqKubcqgexADOKLR9BFNJe8+cFmCtaVIcXjOZKcoUCylfyabyUQ2LnxdzzJIxaug6P3t+GBHZwXfR3gj6HCR4dOz0kXI2yx8Ooxel3SzgMgM+6hepW6yoh+sF95SmAOWjooinyQDwAjQvC0kACAb7D3DKs5oDJ0eTeczDHhGzWhcLRHsoT3BPd2IgbPKEmQfKzyBWARIWD9QLtFPV7HNEiMIWWKiS7NFh/w6uTZZIpJDkusEE/8v5zwcBRpDleoB1dOQEEMa6FrFplMJVqFW1L9gn9UBixNtWBVWbGaN7ZK/OtLjUipJXgt5d+nMylo1+kByJvsS4egCoK+M=' target='_blank' title="Ensure product quality with Testex's wide range of testing solutions | Know More" placementid="14395" adsid="2575" displayorder="3" pcstartdate="29/10/2024" pcenddate="29/10/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="TESTEX AG_ Swiss Textile Testing Institute - 2024" companyname="TESTEX AG, Swiss Textile Testing Institute" uid="800632" country="Switzerland" zonedesc="Text Ads"> Ensure product quality with Testex's wide range of testing solutions | Know More <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <div class="swiper-slide" id="slide-1"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB05uRU5AsVSezjFGqtnIhOukTYitR7xKul9JX4/XrV8Z2Qdnf50Rwr9AxD8/7/au13Kawoh8x4OHymN5WkBt20GnRCYDyWLoq8LV0xgbZZEQYq+KdaVWJPXwPnfIImY4Fm3YWIK+ICPl88WZ9XRMAEX0Q4OwrluwW9y2JaMIpEsmhQK9OSXMrdRfTEkp8uMj2s4uGorEgrRDwgdyPumFIbW05xF9co65PEpEV7jKsrbI/EqzgCydvjL5B6lO65R9RVGNP4iq+2SXYkPZBjXRPtCGfQb68fnoXpX6qU3nmzqL1vwtJ/Il/LRZZLf0vn+/CXU0rm7vhSs4BgupxWVIGSUpmZc8vZBLQzO+SbWkOE2pbwT1bo3AEXrd89jcv0Vo0os3Au0cDi7TxFdwjG8gR2YM9vhtZTE8L0aaPOs5QvntIiUc2EjOeH47kVnrZjogp8W7nJZTCItC3ZtVg8BXZ3xobz97vDeG64=' target='_blank' title="Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge" placementid="14446" adsid="2596" displayorder="2" pcstartdate="14/11/2024" pcenddate="14/11/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="Messe Frankfurt France - 24-25" companyname="Messe Frankfurt France" uid="884755" country="France" zonedesc="Text Ads"> Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <div class="swiper-slide" id="slide-2"> <a class="gaclicktracking" href='https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTeVhOocKBic23uKdQd6WIar2vuftX9BkVLvCw7aL4yHeD55WSVjMvxZv7T0gOlBWQw16N7PUqtbJu90o/vfZmRsj2tn3sAZtCdeuafdfz69jGK9+HWAlJ9WnpXwto2iERjr8WlX0NpeThrAyCsIf/fk5cmEw6zrvWsG8hH9Hv3a77/rIRs5pFuapNXY65A9fmR2c8oDOh0+k3+3e9/d4ZbpvME0vM37io+1+zWrKtzOg4mAWkPKsF0UpB28Tvi8ISb+BJ/jNyvw4e4vf1TS50lUq1+43xqm906+O3lQPkujETU4I/dT6lH5Gdjv8U1LKXiYCsPtvseZ/cPCIClXgI+/Y0smb7/e9QoP3eom4F38BITo9HD6ZZAnmrvM7Aa0ifOMXEGsm0jO3wWTgtbsD3DVrsWn8o2uei3QEDeitOuM8roVzw0a0oGJe6ufxgWhDLM+oOjiNifEiZIlVcCtHDv1auAq12O9l1g9x1mzM/qa0thzoZi1wBVvb/mjdqO2v9bBLWTPPMolwow+1HSR10e9/6R8FMWtPdOMRJ/4yG5yNSLhMfqJLwIg9ptJP+Qq29ivhZnrDjTY=' target='_blank' title="Discover the Oeko-Tex Labelling Guide for Your Products | Learn More" placementid="14471" adsid="2587" displayorder="1" pcstartdate="19/11/2024" pcenddate="19/11/2024" platform="Desktop" channel="F2F" region="All" zone="TextAd" campaigncode="OEKO-TEX Service GmbH - 24" companyname="OEKO-TEX Service GmbH" uid="908805" country="Switzerland" zonedesc="Text Ads"> Discover the Oeko-Tex Labelling Guide for Your Products | Learn More <img style='display: block; height:1px !important; width:1px !important;' src='https://adsclick.fibre2fashion.com/Images/spacer.gif' class='gaTracking' /> </a> </div> <script> var swiper = new Swiper('#slideshow1 .swiper-container', { direction: 'vertical', mousewheelControl: true, loop: true, autoplay: { delay: 5, disableOnInteraction: false }, slidesPerView: 'auto', grabCursor: true, mousewheelControl: true, keyboardControl: true, speed: 1000, autoplay: 10000, slidesPerView: 'auto', parallax: false, // freeMode: true, // freeModeSticky: true }); </script> </div> </div> </div> </span> </div> <div class="top-header-right"> <ul> <li> <a data-f2feventclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Icon","F2FSection":"Header","F2FType":"Static","F2FText":"LinkedIn"}" target="_blank" itemprop="sameAs" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqMRZW4UcT4tJyXrC7wetq2g/f5PxccIrdSTgubU0MnWNAtMjRQhpzFV1mCe2QDZXSGeTGRENhpRN/7SKysz2j6mam+U0z1DDKqXzaBDMYfBMgAJ0GcoO2xIJnrtoRLz0a3zeoljvBpdVZhjpqT6MOoJ3UnioFRyg/tjYuDcWbGVu46pD8gmgj3quhb/OKM+sqccgn8wfayouL1UXZy+UW6jEYgOWplbbPRP2PetZ2oRxR5H1u4rCcif/EPBBAazPI6uy8uswS4rqoyd0br4rx7QoQzL90X1anSsfAZNELU82dun+xfwiDIeC2gr9QsOpUWdsIL+DWeSxqur95wi2n/rGnZImZVNggOZcRMO0LDTqy3Tm4+5AFFVTx/GJ7aurUA6UfN0obFA6yYbEhYqCoN7GMz3M+sf3abePoxRbacnfmDKmj1HKmMeG8n54iUlAHRfc2W1a48Ek="> <img width="122" height="27" src="https://static.fibre2fashion.com/staticresources/images/followusonlinkedin.png" alt="Linkdin" title="Linkdin"> </a> </li> <li class="weglotdiv multilanguage"></li> <script defer> var Weglot = function () { "use strict"; var e = { v1: [], v2: ["ABBR", "ACRONYM", "B", "BDO", "BIG", "CITE", "EM", "I", "KBD", "Q", "SMALL", "STRONG", "SUB", "SUP", "U"], v3: ["A", "BDI", "BR", "DEL", "DFN", "INS", "S", "SPAN"] }; e.v2.unshift("#text"); var t = e, n = { excluded_blocks: [], media_enabled: !1, external_enabled: !1, extra_definitions: [], translation_engine: 2, noTranslateAttribute: "data-wg-notranslate", mergeNodes: [] }, r = { ddtags: "env:prod", clientToken: "pub4efaec96ce2494088ba70a2049d58dc3", site: "datadoghq.com" }, o = { "dd-api-key": "pub4efaec96ce2494088ba70a2049d58dc3", ddsource: "browser" }, a = "prod"; function i(e) { var t = e.service; function n(e, n, i) { var c = i.sendToConsole; void 0 === c && (c = !0); var s = i.consoleOverride, l = i.sendToDatadog; if (void 0 === l && (l = !0), l && "dev" !== a && function (e, t, n) { "string" == typeof t && (t = { message: t }); var a = Object.assign({}, t, { service: e, status: n }, window.location && { view: { url: window.location.href } }, t.message && { message: t.message }, t.stack && { stack: t.stack }, t.status && { logStatus: t.status }, r); window.Weglot && window.Weglot.options && (a.projectInfo = ["host", "api_key", "url_type", "technology_name", "technology_id", "is_connect", "auto_switch"].reduce((function (e, t) { var n; return Object.assign({}, e, ((n = {})[t] = window.Weglot.options[t], n)) }), {})); var i = Object.keys(o).map((function (e) { return e + "=" + o[e] })).join("&"); fetch("https://http-intake.logs.datadoghq.com/api/v2/logs?" + i, { method: "POST", body: JSON.stringify(a), headers: { "Content-Type": "application/json" } }) }(t, e, n), c) { var u = s || e, f = ["notice", "info"].includes(n) ? "log" : n; console[f]("[Weglot]", u) } } var i = function (e) { return function (t, r) { return void 0 === r && (r = {}), n(t, e, r) } }; return { log: i("info"), info: i("info"), notice: i("notice"), warn: i("warn"), error: i("error") } } var c = i({ service: "html-parser-engine" }), s = function () { try { return JSON.parse('{"TRANSLATION":"translations.weglot.io","SWITCHER":"switchers.weglot.io","EXCLUSION":"exclusions.weglot.io","DEFINITION":"definitions.weglot.io"}') } catch (e) { return {} } }(), l = Object.keys(s).map((function (e) { return s[e] })); function u(e) { for (var t = 0, n = l; t < n.length; t += 1) { var r = n[t]; if (-1 !== e.indexOf(r)) return !0 } return !1 } function f(e, t, n) { var r = t && t[e]; if (r && r.textContent === t.textContent) return r.result; var o = n(t); return t ? (t[e] = { result: o, textContent: t.textContent }, o) : o } function d(e) { return f("__validMergeNodes", e, (function (e) { return e && p(e) && g(e) && !function (e) { return f("__containsNoTranslateNodes", e, (function (e) { return 1 === e.nodeType && (!!e.querySelector("[" + n.noTranslateAttribute + "]") || h(e)) })) }(e) })) } function g(e, t) { return void 0 === t && (t = !0), f("__validTextNodes", e, (function (e) { return !(!e.textContent || t && !e.textContent.trim() || -1 !== e.textContent.indexOf("BESbswy") || e.parentNode && e.parentNode.nodeName && -1 !== ["script", "style", "noscript"].indexOf(e.parentNode.nodeName.toLowerCase()) || function (e) { if (!(e = e.trim())) return !1; var t = e.charAt(0); if ("[" !== t && "{" !== t) return !1; var n = e[e.length - 1]; if ("]" !== n && "}" !== n) return !1; return e = e.replace(/\\(?:["\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""), /^[\],:{}\s]*$/.test(e) }(e.textContent)) })) } function _(e) { try { if (n.mergedSelectorRemove && e.closest && e.closest(n.mergedSelectorRemove)) return !1 } catch (e) { } return !(!n.mergeNodes || -1 === n.mergeNodes.indexOf(e.nodeName)) || (e.dataset && e.dataset.wgMerge || n.selectorMerging && e.matches && e.matches(n.selectorMerging)) } function p(e) { return f("__onlyInlineChildsNodes", e, (function (e) { if (!e.childNodes) return !0; for (var t = 0, n = e.childNodes; t < n.length; t += 1) { var r = n[t]; if (r.weglot || !_(r) || !p(r)) return !1 } return !0 })) } function h(e) { if (!e.children) return !1; for (var t = 0, n = e.children; t < n.length; t += 1) { var r = n[t]; if (r.wgNoTranslate || h(r)) return !0 } return !1 } function m(e) { return !!e && (!!e.wgNoTranslate || m(e.parentNode)) } function v(e) { if (!e) return !1; var t = e.closest ? e : e.parentNode; return !!(t && t.closest && t.closest("[" + n.noTranslateAttribute + "]")) || m(e) } var w = function (e, t) { return function (n, r) { try { var o = r; return -1 !== o.indexOf(":") && (o = o.replace(/([^\\]):/g, "$1\\:")), n[e] ? n[e](o) : t } catch (o) { try { return n[e] ? n[e](r) : t } catch (e) { c.warn(e, { consoleOverride: "Your CSS rules are incorrect: " + r, sendToDatadog: !1 }) } } return t } }, y = w("querySelectorAll", []), b = w("matches", !1); var k = new WeakMap; function E(e) { if (!e) return []; var t = e.querySelectorAll ? e : e.parentNode; if (!t) return []; if (function (e) { var t = n.excluded_blocks; if (t && t.length) { var r = t.map((function (e) { return e.value })), o = r.join(","); if (b(e, o)) { if (n.private_mode) { var a = r.find((function (t) { return b(e, t) })); e.wgNoTranslate = "Excluded by selector: " + a } else e.wgNoTranslate = !0; return } var i = y(e, o); if (i) for (var c = function () { var e = l[s]; if (n.private_mode) { var t = r.find((function (t) { return b(e, t) })); e.wgNoTranslate = "Excluded by selector: " + t } else e.wgNoTranslate = !0 }, s = 0, l = i; s < l.length; s += 1)c() } }(t), !n.whitelist || !n.whitelist.length) return [].concat(function (e) { var t = document.getElementsByTagName("title")[0]; if (e !== document.documentElement || !document.title || !t || v(t)) return []; return [{ element: t.firstChild, type: 9, words: t.textContent, properties: {} }] }(t), C(t)); var r = n.whitelist.map((function (e) { return e.value })).join(","); if (t.closest && t.closest(r)) return C(t); for (var o = [], a = 0, i = y(t, r); a < i.length; a += 1) { var c = i[a];[].push.apply(o, C(c)) } return o } function C(e) { return [].concat(function (e) { var t = []; return U.forEach((function (n) { for (var r, o, a, i = n.attribute, c = n.type, s = n.selectors, l = 0, u = (r = e, o = [], a = s.join(","), r.matches && r.matches(a) && o.push(r), r.childElementCount > 0 && o.push.apply(o, r.querySelectorAll(a)), o); l < u.length; l += 1) { var f = u[l]; if (!v(f)) { var d = i.get(f); L(d) || t.push({ element: f, words: d, type: c, attrSetter: i.set, attrName: i.name }) } } })), t }(e), function (e) { var t, r = [], o = n.translation_engine >= 2, a = document.createTreeWalker(e, 4, x, !1); for (; t = a.nextNode();) { var i = (o && (_(t.parentNode) || t.parentNode.childNodes.length > 1) ? S : O)(t, a); i && r.push(i) } return r }(e)) } function x(e) { return !g(e) || v(e) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT } function S(e, t) { var r = function (e) { if (e.wgResolved) return !1; var t = e; do { if (t.wgResolved) return t; t = t.parentElement || t.parentNode } while (null !== t && 1 === t.nodeType); return !1 }(e); if (r && k.has(r)) { var o = k.get(r); return { element: o[0], words: o[1], type: 1, properties: o[2] } } var a = function (e, t) { var r = [], o = e; for (; d(e.parentNode);)e = e.parentNode, o.textContent.trim() !== e.textContent.trim() && (o = e); o.textContent.trim() === e.textContent.trim() && (e = o); for (; t.nextNode();)if (!e.contains || !e.contains(t.currentNode)) { t.previousNode(); break } var a = e.cloneNode(!0); if (n.translation_engine > 2) { N(e, (function (e) { if (1 === e.nodeType) { var t = function (e) { for (var t = [], n = 0, r = e.attributes; n < r.length; n += 1) { var o = r[n]; t.push(o) } return t }(e); r.push({ attributes: t, child: e }) } })); var i = 1; N(a, (function (e) { 1 === e.nodeType && (!function (e) { if (!e.attributes) return e; for (; e.attributes.length > 0;)e.removeAttribute(e.attributes[0].name) }(e), e.setAttribute("wg-" + i++, "")) })) } if (e) { return e.wgResolved = !0, [e, (a.innerHTML || a.textContent || "").replace(/<!--[^>]*-->/g, ""), r] } }(e, t); if (a) { var i = a[0], c = a[1], s = a[2]; if (!L(c)) return k.set(i, a), { element: i, words: c, type: 1, properties: s } } } function O(e) { var t = e.textContent; if (!L(t)) return { element: e, words: t, type: 1, properties: {} } } function N(e, t) { if (e.childNodes) for (var n = 0, r = e.childNodes; n < r.length; n += 1) { var o = r[n]; if (!o) return; t(o), N(o, t) } } function L(e) { return !e || !e.trim() || !isNaN(e) || "" === e } function T(e, t) { for (var n = 0, r = e; n < r.length; n += 1) { var o = r[n], a = o.weglot.content; if (a && o.isConnected) { for (var i = 0, c = a; i < c.length; i += 1) { var s = c[i], l = s.original, u = s.properties, f = s.attrSetter, d = s.translations[t] || l; u && (o.weglot.setted = !0, A(o, d, u, e)), f && (o.weglot.setted = !0, f(o, d, l)) } o.wgResolved = !1 } } } function A(e, t, n, r) { if (1 === e.nodeType) { var o = function (e, t, n) { var r = document.createElement("div"); return r.innerHTML = e, j(t, r, n) }(t, e, n); return e.innerHTML = "", void e.appendChild(o) } if (-1 !== t.indexOf("<") && -1 !== t.indexOf(">")) { if (!e.parentNode) return c.warn("Unable to translate some words, please contact support@weglot.com."), void c.warn(e, { sendToDatadog: !1 }); if (1 === e.parentNode.childNodes.length) return e.parentNode.weglot = e.weglot, void (r ? r.push(e.parentNode) : A(e.parentNode, t, n)); var a = e.closest && e.closest("[data-wg-translation-wrapper]") || e.parentNode.closest("[data-wg-translation-wrapper]"); if (!a || a.innerHTML !== t) { var i = document.createElement("span"); i.dataset.wgTranslationWrapper = "", i.weglot = e.weglot, e.parentNode.replaceChild(i, e), r ? r.push(i) : A(e.parentNode, t, n) } } else e.textContent = t } function j(e, t, n) { var r = document.createDocumentFragment(); if (1 !== e.nodeType) return r.appendChild(t), r; for (var o = t.childNodes.length, a = 0; a < o; a++) { var i, s = t.firstChild; if (i = P(s)) { var l = n[i - 1]; if (!l) continue; var u = l.used ? l.child.cloneNode(!0) : l.child, f = j(u, s, n); if (f.contains(u)) return c.error("There is an HTML error in the translation of: " + e.innerHTML), r; u.innerHTML = "", u.appendChild(f), r.appendChild(u), document.createDocumentFragment().appendChild(s), l.used = !0 } else r.appendChild(s) } return r } function P(e) { if (e && 1 === e.nodeType && e.attributes && e.attributes[0]) { var t = parseInt(e.attributes[0].name.split("wg-")[1]); return isNaN(t) ? void 0 : t } } function I(e) { return { name: e, get: function (t) { return t.getAttribute(e) }, set: function (t, n) { return t.setAttribute(e, n) } } } function R(e, t) { if (e.parentNode && "PICTURE" === e.parentNode.tagName) for (var n = 0, r = e.parentNode.children; n < r.length; n += 1) { var o = r[n]; "SOURCE" === o.tagName && (o.getAttribute("srcset") && o.setAttribute("srcset", t)) } } function D(e) { return e && e.split && e.split("www.")[1] || e } function W(e) { var t = [{ type: 1, selectors: ["[title]"], attribute: I("title") }, { type: 2, selectors: ["input[type='submit']", "input[type='button']", "button"], attribute: I("value") }, { type: 3, selectors: ["input[placeholder]", "textarea[placeholder]"], attribute: I("placeholder") }, { type: 4, selectors: ["meta[name='description']", "meta[property='og:description']", "meta[property='og:site_name']", "meta[property='og:image:alt']", "meta[name='twitter:description']", "meta[itemprop='description']", "meta[itemprop='name']"], attribute: I("content") }, { type: 7, selectors: ["img"], attribute: I("alt") }, { type: 8, selectors: ["[href$='.pdf']", "[href$='.docx']", "[href$='.doc']"], attribute: I("href") }, { type: 9, selectors: ["meta[property='og:title']", "meta[name='twitter:title']"], attribute: I("content") }]; if (!e) return t; if (e.media_enabled && t.push({ type: 5, selectors: ["youtube.com", "youtu.be", "vimeo.com", "dailymotion.com"].map((function (e) { return "iframe[src*='" + e + "']" })), attribute: I("src") }, { type: 6, selectors: ["img", "source"], attribute: { name: "src", get: function (e) { var t = e.getAttribute("src"); if (!t || !t.split) return ""; if (0 === t.indexOf("data:image")) return ""; var n = t.split("?"); return n[1] && (e.queryString = n[1]), n[0] }, set: function (e, t, n) { var r = e.getAttribute("src"), o = e.getAttribute("srcset"); if (t === n) { if (e.removeAttribute("data-wgtranslated"), e.isChanged) { var a = "" + t + (e.queryString ? "?" + e.queryString : ""); e.setAttribute("src", a), R(e, a), e.hasAttribute("wgsrcset") && (e.setAttribute("srcset", e.getAttribute("wgsrcset") || e.dataset.srcset), e.removeAttribute("wgsrcset")) } } else r.split("?")[0] !== t && n !== t && (e.setAttribute("src", t), R(e, t), e.hasAttribute("srcset") && (e.setAttribute("wgsrcset", o), e.setAttribute("srcset", "")), e.dataset.wgtranslated = !0, e.isChanged = !0) } } }, { type: 6, selectors: ["meta[property='og:image']", "meta[property='og:logo']"], attribute: I("content") }, { type: 6, selectors: ["img"], attribute: I("srcset") }), e.translate_aria && t.push({ type: 1, selectors: ["[aria-label]"], attribute: I("aria-label") }), e.external_enabled) { var n = D(function () { var e = window.location, t = e.hostname, n = e.search; if (!u(t) || !n) return t; var r = decodeURIComponent(n).match(/url=https?:\/\/([^/]+)/); return r ? r[1] : (c.warn("[Weglot] Unable to get current hostname"), t) }()); t.push({ type: 10, selectors: ["iframe"], attribute: I("src") }, { type: 10, selectors: ["a[rel=external]"], attribute: I("href") }, { type: 10, selectors: ['[href^="mailto"]'], attribute: I("href") }, { type: 10, selectors: ['[href^="tel"]'], attribute: I("href") }, { type: 10, selectors: ["http:", "https:", "//"].map((function (e) { return '[href^="' + e + '"]:not(link)' })), attribute: { name: "href", get: function (e) { if (!e.href || !e.href.split) return ""; var t = e.href.split("/")[2]; return t && D(t) !== n ? e.getAttribute("href") : "" }, set: function (e, t) { return e.setAttribute("href", t) } } }) } if (e.extra_definitions && e.extra_definitions.length) for (var r = function () { var e = a[o], n = e.type, r = e.selector, i = e.attribute; i && r ? t.push({ type: n, selectors: [r], attribute: { name: i, get: function (e) { return e.getAttribute(i) }, set: function (e, t) { return e.setAttribute(i, t) } } }) : c.warn("Each extra definition option needs at least {attribute,selector} https://bit.ly/2yDsLxy", { sendToDatadog: !1 }) }, o = 0, a = e.extra_definitions; o < a.length; o += 1)r(); return t } x.acceptNode = x; var U = []; function H(e, r) { if (!r || !r.translation_engine) throw "translation_engine is required"; var o; return Object.assign(n, r), n.document = e, n.mergeNodes = (o = r.translation_engine, t.v2.unshift("#text", "#comment"), Object.keys(t).reduce((function (e, n, r) { return o >= r + 1 && [].push.apply(e, t[n]), e }), [])), Array.isArray(n.extra_merged_selectors) && (n.selectorMerging = r.extra_merged_selectors.filter((function (e) { return e && "string" == typeof e })).join(",")), r.merged_selectors_remove && (n.mergedSelectorRemove = r.merged_selectors_remove.map((function (e) { return e.value })).join(",")), { getTextNodes: E, setTextNodes: T, definitions: U = W(n) } } var M = i({ service: "js-library" }), q = "https://cdn.weglot.com/projects-settings/", z = "preview.weglot.io", F = "wglang", B = "wg-style-trans", $ = "data-wg-notranslate", V = "wg-translations", G = "wg-slugs", J = "Shopify", Y = "BigCommerce", K = "Jimdo", X = "Squarespace", Z = "Wix", Q = "Webflow", ee = "Square Online", te = "Bubble", ne = "Salesforce", re = ["excluded_blocks", "excluded_blocks_remove", "dynamics", "excluded_paths", "dangerously_force_dynamic", "extra_definitions", "translate_event"], oe = ["polyfillReady", "languageChanged", "initialized", "start", "switchersReady"], ae = { button_style: { full_name: !0, with_name: !0, is_dropdown: !0, with_flags: !1, flag_type: "" }, switchers: [], auto_switch: !1, auto_switch_fallback: "", excluded_blocks: [], excluded_blocks_remove: [], whitelist: [], translate_event: [{ selector: "[data-wg-translate-event]", eventName: null }], customer_tag: !1, order_tag: !0, dynamics: [], excluded_paths: [], wait_transition: !0, hide_switcher: !1, translate_search: !1, media_enabled: !1, search_forms: "", cache: !1, live: !0, loading_bar: !0, search_parameter: "", translation_engine: 2, override_hreflang: !0 }, ie = ["none", "shiny", "square", "circle", "rectangle_mat"], ce = {}; !function (e) { var t = function () { try { return !!Symbol.iterator } catch (e) { return !1 } }(), n = function (e) { var n = { next: function () { var t = e.shift(); return { done: void 0 === t, value: t } } }; return t && (n[Symbol.iterator] = function () { return n }), n }, r = function (e) { try { return encodeURIComponent(e).replace(/%20/g, "+") } catch (t) { return e } }, o = function (e) { try { return decodeURIComponent(String(e).replace(/\+/g, " ")) } catch (t) { return e } }; (function () { try { var t = e.URLSearchParams; return "a=1" === new t("?a=1").toString() && "function" == typeof t.prototype.set && "function" == typeof t.prototype.entries } catch (e) { return !1 } })() || function () { var o = function (e) { Object.defineProperty(this, "_entries", { writable: !0, value: {} }); var t = typeof e; if ("undefined" === t); else if ("string" === t) "" !== e && this._fromString(e); else if (e instanceof o) { var n = this; e.forEach((function (e, t) { n.append(t, e) })) } else { if (null === e || "object" !== t) throw new TypeError("Unsupported input's type for URLSearchParams"); if ("[object Array]" === Object.prototype.toString.call(e)) for (var r = 0; r < e.length; r++) { var a = e[r]; if ("[object Array]" !== Object.prototype.toString.call(a) && 2 === a.length) throw new TypeError("Expected [string, any] as entry at index " + r + " of URLSearchParams's input"); this.append(a[0], a[1]) } else for (var i in e) e.hasOwnProperty(i) && this.append(i, e[i]) } }, a = o.prototype; a.append = function (e, t) { e in this._entries ? this._entries[e].push(String(t)) : this._entries[e] = [String(t)] }, a.delete = function (e) { delete this._entries[e] }, a.get = function (e) { return e in this._entries ? this._entries[e][0] : null }, a.getAll = function (e) { return e in this._entries ? this._entries[e].slice(0) : [] }, a.has = function (e) { return e in this._entries }, a.set = function (e, t) { this._entries[e] = [String(t)] }, a.forEach = function (e, t) { var n; for (var r in this._entries) if (this._entries.hasOwnProperty(r)) { n = this._entries[r]; for (var o = 0; o < n.length; o++)e.call(t, n[o], r, this) } }, a.keys = function () { var e = []; return this.forEach((function (t, n) { e.push(n) })), n(e) }, a.values = function () { var e = []; return this.forEach((function (t) { e.push(t) })), n(e) }, a.entries = function () { var e = []; return this.forEach((function (t, n) { e.push([n, t]) })), n(e) }, t && (a[Symbol.iterator] = a.entries), a.toString = function () { var e = []; return this.forEach((function (t, n) { e.push(r(n) + "=" + r(t)) })), e.join("&") }, e.URLSearchParams = o }(); var a = e.URLSearchParams.prototype; "function" != typeof a.sort && (a.sort = function () { var e = this, t = []; this.forEach((function (n, r) { t.push([r, n]), e._entries || e.delete(r) })), t.sort((function (e, t) { return e[0] < t[0] ? -1 : e[0] > t[0] ? 1 : 0 })), e._entries && (e._entries = {}); for (var n = 0; n < t.length; n++)this.append(t[n][0], t[n][1]) }), "function" != typeof a._fromString && Object.defineProperty(a, "_fromString", { enumerable: !1, configurable: !1, writable: !1, value: function (e) { if (this._entries) this._entries = {}; else { var t = []; this.forEach((function (e, n) { t.push(n) })); for (var n = 0; n < t.length; n++)this.delete(t[n]) } var r, a = (e = e.replace(/^\?/, "")).split("&"); for (n = 0; n < a.length; n++)r = a[n].split("="), this.append(o(r[0]), r.length > 1 ? o(r[1]) : "") } }) }(ce), function (e) { if (function () { try { var t = new e.URL("b", "http://a"); return t.pathname = "c d", "http://a/c%20d" === t.href && t.searchParams } catch (e) { return !1 } }() || function () { var t = e.URL, n = function (t, n) { "string" != typeof t && (t = String(t)), n && "string" != typeof n && (n = String(n)); var r, o = document; if (n && (void 0 === e.location || n !== e.location.href)) { n = n.toLowerCase(), (r = (o = document.implementation.createHTMLDocument("")).createElement("base")).href = n, o.head.appendChild(r); try { if (0 !== r.href.indexOf(n)) throw new Error(r.href) } catch (e) { throw new Error("URL unable to set base " + n + " due to " + e) } } var a = o.createElement("a"); a.href = t, r && (o.body.appendChild(a), a.href = a.href); var i = o.createElement("input"); if (i.type = "url", i.value = t, ":" === a.protocol || !/:/.test(a.href) || !i.checkValidity() && !n) throw new TypeError("Invalid URL"); Object.defineProperty(this, "_anchorElement", { value: a }); var c = new e.URLSearchParams(this.search), s = !0, l = !0, u = this;["append", "delete", "set"].forEach((function (e) { var t = c[e]; c[e] = function () { t.apply(c, arguments), s && (l = !1, u.search = c.toString(), l = !0) } })), Object.defineProperty(this, "searchParams", { value: c, enumerable: !0 }); var f = void 0; Object.defineProperty(this, "_updateSearchParams", { enumerable: !1, configurable: !1, writable: !1, value: function () { this.search !== f && (f = this.search, l && (s = !1, this.searchParams._fromString(this.search), s = !0)) } }) }, r = n.prototype;["hash", "host", "hostname", "port", "protocol"].forEach((function (e) { !function (e) { Object.defineProperty(r, e, { get: function () { return this._anchorElement[e] }, set: function (t) { this._anchorElement[e] = t }, enumerable: !0 }) }(e) })), Object.defineProperty(r, "search", { get: function () { return this._anchorElement.search }, set: function (e) { this._anchorElement.search = e, this._updateSearchParams() }, enumerable: !0 }), Object.defineProperties(r, { toString: { get: function () { var e = this; return function () { return e.href } } }, href: { get: function () { return this._anchorElement.href.replace(/\?$/, "") }, set: function (e) { this._anchorElement.href = e, this._updateSearchParams() }, enumerable: !0 }, pathname: { get: function () { return this._anchorElement.pathname.replace(/(^\/?)/, "/") }, set: function (e) { this._anchorElement.pathname = e }, enumerable: !0 }, origin: { get: function () { var e = { "http:": 80, "https:": 443, "ftp:": 21 }[this._anchorElement.protocol], t = this._anchorElement.port != e && "" !== this._anchorElement.port; return this._anchorElement.protocol + "//" + this._anchorElement.hostname + (t ? ":" + this._anchorElement.port : "") }, enumerable: !0 }, password: { get: function () { return "" }, set: function (e) { }, enumerable: !0 }, username: { get: function () { return "" }, set: function (e) { }, enumerable: !0 } }), n.createObjectURL = function (e) { return t.createObjectURL.apply(t, arguments) }, n.revokeObjectURL = function (e) { return t.revokeObjectURL.apply(t, arguments) }, e.URL = n }(), void 0 !== e.location && !("origin" in e.location)) { var t = function () { return e.location.protocol + "//" + e.location.hostname + (e.location.port ? ":" + e.location.port : "") }; try { Object.defineProperty(e.location, "origin", { get: t, enumerable: !0 }) } catch (n) { setInterval((function () { e.location.origin = t() }), 100) } } }(ce); var se = ce.URL, le = function (e, t) { return function (n, r) { if (!n || !n[e] || !r) return t; try { return n[e](r) } catch (e) { M.error(e, { consoleOverride: "The CSS selectors that you provided are incorrect: " + r, sendToDatadog: !1 }) } return t } }, ue = le("querySelectorAll", []), fe = le("querySelector", null), de = le("closest", null), ge = function (e) { return document.getElementById(e) }; function _e(e) { e && e.parentNode && e.parentNode.removeChild(e) } function pe(e) { e = "" + e; return [" ", "&", """, "<", ">"].some((function (t) { return -1 !== e.indexOf(t) })) ? e.replace(/ /g, " ").replace(/&/g, "&").replace(/"/g, '"').replace(/</g, "<").replace(/>/g, ">") : e } function he(e) { var t = window.location.search.slice(1).split("&").map((function (e) { return e && e.split("=") })).find((function (t) { return t[0] === e })); return t && t[1] } function me() { try { if (window.frameElement || window.self !== window.top) return "with-window-top" } catch (e) { return "no-window-top" } } function ve(e, t) { var n = document.createElement("style"); _e(ge(t)), n.id = t, n.type = "text/css", n.styleSheet ? n.styleSheet.cssText = e : n.appendChild(document.createTextNode(e)), document.head.appendChild(n) } var we = function () { return /google|facebook|bing|yahoo|baidu|yandex|lighthouse/i.test(navigator.userAgent) }; function ye(e) { try { document.createDocumentFragment().querySelector(e) } catch (e) { return !1 } return !0 } var be = function (e, t, n) { var r = new se(e, location.href); return r.searchParams.set(t, n), "" + r.pathname + r.search }; function ke(e) { "loading" !== document.readyState ? e() : document.addEventListener("DOMContentLoaded", (function () { return e() })) } var Ee = function (e, t) { var n; return void 0 === t && (t = 1e3), function () { for (var r = this, o = [], a = arguments.length; a--;)o[a] = arguments[a]; clearTimeout(n), n = setTimeout((function () { e.apply(r, o) }), t) } }, Ce = function (e) { var t = (new Date).getTime().toString(); try { var n = e.contentWindow; return n[t] = "asd", "asd" === n[t] } catch (e) { return !1 } }; var xe = {}, Se = function (e, t) { xe[e] = t }, Oe = function (e, t) { if (xe[e]) return xe[e](t) }; var Ne, Le = {}; try { document.cookie, Ne = !0 } catch (lr) { Ne = !1 } Le.set = function (e, t, n, r, o) { Ne && (e = e.replace(/[^+#$&^`|]/g, encodeURIComponent).replace("(", "%28").replace(")", "%29"), t = t.toString().replace(/[^+#$&/:<-[\]-}]/g, encodeURIComponent), !n && xt.is_connect && (xt.subdomain ? n = xt.host.split("www.").pop() : xt.subdirectory && (n = xt.host)), n = n ? ";domain=" + n : "", o = o ? ";expires=" + o : "", r = r || "", document.cookie = e + "=" + t + n + ";path=/" + r + o + ";SameSite=None;Secure") }, Le.get = function (e) { if (!Ne) return null; for (var t = document.cookie.split(";"); t.length;) { var n = t.pop(), r = n.indexOf("="); if (r = r < 0 ? n.length : r, decodeURIComponent(n.slice(0, r).replace(/^\s+/, "")) === e) return decodeURIComponent(n.slice(r + 1)) } return null }, Le.erase = function (e, t, n) { Le.set(e, "", t, n, "Thu, 01 Jan 1970 00:00:00 GMT") }; var Te = []; function Ae(e, t, n) { if (e) return n(); je(t, n, !0) } function je(e, t, n) { return "function" != typeof t ? (M.error("You should provide a callback function as second argument", { sendToDatadog: n }), !1) : !n && oe.indexOf(e) < 0 ? (M.error("No Weglot event is named " + e, { sendToDatadog: !1 }), !1) : (Te.push({ name: e, callback: t, internal: n }), !0) } function Pe(e) { for (var t = [], n = arguments.length - 1; n-- > 0;)t[n] = arguments[n + 1]; for (var r = Te.filter((function (t) { return t.name === e })), o = 0, a = r; o < a.length; o += 1) { var i = a[o]; try { i.callback.apply(i, t) } catch (e) { if (i.internal) throw e; M.error("Error triggering callback function: " + e, { sendToDatadog: !1 }) } } } function Ie() { if (!u(window.location.hostname) || !document.baseURI) { var e = window.location; return { url: e.href, hostname: e.hostname, pathname: e.pathname, search: e.search } } var t = new se(document.baseURI), n = t.hostname, r = t.pathname, o = t.search; return { url: document.baseURI, hostname: n, pathname: r, search: o } } var Re = Ie(); Ae(xt && Object.keys(xt).length > 0, "onOptionsReady", (function () { if (xt.dynamicPushState) { var e = history.pushState; history.pushState = function () { for (var t = [], n = arguments.length; n--;)t[n] = arguments[n]; e.apply(history, t); var r = Ie(); Re.hostname = r.hostname, Re.pathname = r.pathname, Re.url = r.url, Pe("onCurrentLocationChanged") } } })); var De, We = {}; function Ue(e) { var t = 1; return e.replace(/\((.*?)\)/g, (function () { return "$" + t++ })) } function He() { var e = Re.pathname, t = xt.localeRules; void 0 === t && (t = []); var n = xt.languages, r = { position: 0, translatedFormat: "CODE", originalFormat: "", addedByDefault: !0 }, o = xt.language_from; if (t.length) { var a = []; t.map((function (e) { var t = e.position, n = e.translatedFormat; n && "CODE" !== n && a.push(t || 0) })); var i = a.filter((function (e, t, n) { return n.indexOf(e) === t })).map((function (e) { return Object.assign({}, r, { position: e }) })); t.unshift.apply(t, i) } else t.push(r); var c = null, s = null, l = t.find((function (t) { var r = t.position; void 0 === r && (r = 0); var a = t.translatedFormat; void 0 === a && (a = "CODE"); var i = t.originalFormat; void 0 === i && (i = ""); var l = t.addedByDefault; if (!a.includes("CODE")) return !1; var u = e.split("/"); if (u.length <= r) return !1; var f = u[r + 1], d = n.find((function (e) { var t = e.custom_code || e.language_to, n = a.replace("CODE", t), r = new RegExp("^" + n + "$", "g"); return !!r.test(f) && (s = r, !0) })); if (d) return c = d.custom_code || d.language_to, !0; if (i) { var g = i.replace("CODE", o); return new RegExp("^" + g + "$", "g").test(f) } return !l })) || r; return We.convertLocale = function (t, n, r, a) { if (void 0 === n && (n = e), void 0 === r && (r = c || o), void 0 === a && (a = null), r === t) return n; var i = l.position; void 0 === i && (i = 0); var u = l.originalFormat; void 0 === u && (u = ""); var f = l.translatedFormat; void 0 === f && (f = "CODE"); var d = n.split("/"); if (d.length <= i) return n; var g = d[i + 1]; if (r === o) { var _ = f.replace(/CODE/g, t), p = !1; if (u) { var h = u.replace(/CODE/g, o), m = new RegExp("^" + h + "$", "g"), v = Ue(_); _ = g.replace(m, v), a && !m.test(g) && (p = !0, _ = a.split("/")[i + 1]) } var w = u && !p ? 2 : 1; return d.slice(0, i + 1).concat([_], d.slice(i + w)).join("/") } if (t === o && !u) return d.slice(0, i + 1).concat(d.slice(i + 2)).join("/"); var y = Ue((t === o ? u : f).replace(/CODE/g, t)), b = g.replace(s, y); return d.slice(0, i + 1).concat([b], d.slice(i + 2)).join("/") }, We.language = c || o, We } function Me() { var e = Re.hostname, t = xt.languages.find((function (t) { return t.connect_host_destination && t.connect_host_destination.host === e })); return t ? t.custom_code || t.language_to : xt.language_from } function qe() { return He().language } function ze() { if (De) return De; if (xt.is_connect) { var e = document.documentElement.dataset.wgTranslated; return e ? (De = e, e) : De = xt.subdirectory ? qe() : Me() } return De = xt.language_from } function Fe(e, t) { var n = t; n || (n = ze()); for (var r = 0, o = e; r < o.length; r += 1) { var a = o[r]; if (!a || !a.dataset || !a.dataset.wgOnlyDisplay) return; a.hidden = a.dataset.wgOnlyDisplay !== n } } je("onCurrentLocationChanged", (function () { We = {} }), !0); var Be = { getItem: function (e) { return Le.get(e) }, setItem: function (e, t, n) { void 0 === n && (n = {}); var r = n.domain, o = n.path, a = n.expires; Le.set(e, t, r, o, a) }, removeItem: function (e) { return Le.erase(e) } }, $e = { getItem: function () { }, setItem: function () { }, removeItem: function () { } }; function Ve(e) { void 0 === e && (e = {}); var t = e.type || "local"; try { return "cookie" === t ? Be : window[t + "Storage"] } catch (e) { } return e.type ? $e : Ve({ type: "local" === t ? "cookie" : "local" }) } var Ge = { slugs: {}, version: 0, network: void 0 }; function Je() { return new Promise((function (e) { for (var t = xt.languages, n = {}, r = function () { var r = a[o], i = r.custom_code, c = r.language_to; (function (e) { var t = xt.api_key, n = xt.versions; if (!n || !n.slugTranslation) return Promise.resolve({}); var r = "https://cdn-api-weglot.com/translations/slugs?api_key=" + t + "&language_to=" + e + "&v=" + n.slugTranslation; return fetch(r).then((function (e) { return e.json() })).then((function (e) { return Array.isArray(e) ? {} : e })).catch((function (e) { return M.error(e), {} })) })(c).then((function (r) { n[i || c] = r, Object.keys(n).length === t.length && e(n) })) }, o = 0, a = t; o < a.length; o += 1)r() })) } function Ye(e) { return e ? Object.keys(e).reduce((function (t, n) { return t[n] = function (e) { return Object.keys(e).reduce((function (t, n) { return e[n] && (t.original[n] = e[n], t.translated[e[n]] = n), t }), { original: {}, translated: {} }) }(e[n]), t }), {}) : {} } function Ke(e) { var t = xt.versions; if (t && t.slugTranslation) { var n = t.slugTranslation; Ge.version < n && (Ge.network ? Ge.network.resolved || Ge.network.then((function (t) { return e(Ye(t)) })) : Ge.network = Je().then((function (t) { return Ge.network.resolved = !0, function (e) { var t = xt.versions, n = { version: t ? t.slugTranslation : 1, slugs: e }; try { var r = Ve({ type: "local" }); r && r.setItem(G, JSON.stringify(n)) } catch (e) { M.warn(e) } Ge = Object.assign({}, Ge, n) }(t), e(Ye(t)), t })).catch((function () { return e({}), {} }))), e(Ye(Ge.slugs)) } else e({}) } !function () { if (Object.keys(Ge.slugs).length) return Ge.slugs; try { var e = Ve({ type: "local" }); if (!e) return {}; var t = e.getItem(G); t && (Object.assign(Ge, JSON.parse(t)), Ge.slugs) } catch (e) { return {} } }(); var Xe = {}; function Ze(e, t) { return e.split("/").map((function (e) { return t[decodeURIComponent(e)] || e })).join("/") } function Qe(e, t) { xt.is_tld && xt.auto_switch && (e === xt.language_from ? t.searchParams.set("no_redirect", "true") : t.searchParams.delete("no_redirect")) } function et(e, t) { var n = ze(), r = new se(Re.url); r.searchParams.has("lang") && r.searchParams.delete("lang"), Qe(e, r); var o = function (e) { if (xt.subdirectory) return !1; var t = xt.language_from, n = xt.host, r = xt.languages; if (e === t) return n; var o = r.find((function (t) { return t.custom_code === e || t.language_to === e })) || {}, a = o.connect_host_destination; return a && a.host }(e); return o && (r.hostname = o), r.pathname = function (e, t, n, r) { if (!Object.keys(e).length) return t; if (!Xe.originalPath) if (n !== xt.language_from && e[n]) { var o = e[n].translated; Xe.originalPath = Ze(t, o) } else Xe.originalPath = t; return r === xt.language_from ? Xe.originalPath : e[r] && e[r].original ? Ze(Xe.originalPath, e[r].original) : t }(t, r.pathname, n, e), xt.subdirectory && e && (r.pathname = He().convertLocale(e, r.pathname)), r.toString() } function tt(e, t) { if (!xt.is_connect || !e) return t("#"); var n = xt.dynamicPushState, r = xt.injectedData; void 0 === r && (r = {}); var o = r.allLanguageUrls; if (void 0 === o && (o = {}), !n && o && o[e]) { var a = new se(o[e]); return Qe(e, a), t(a.toString()) } Ke((function (n) { return t(et(e, n)) })) } je("onCurrentLocationChanged", (function () { Xe = {} }), !0); var nt = {}; function rt() { var e = xt.host; return void 0 === e && (e = window.location.hostname), 0 === e.indexOf("www.") ? e.slice(3) : "." + e } function ot() { var e = document.cookie.match(/(^cart=[^;]+|[\W]cart=[^;]+)/g); if (e) { var t = e.map((function (e) { return e.split("=").pop() })); 1 !== t.length && t[0] === t[1] || Le.set("cart", t[0], rt()) } else setTimeout(ot, 100) } function at(e) { var t = "/checkout?locale=" + e + (xt.shopify_skip_shop_pay ? "&skip_shop_pay=true" : ""); fetch(t).then((function (e) { document.location.href = e.url })).catch((function () { document.location.href = t })) } function it(e) { var t = e || ze(), n = ct(t), r = [{ name: "locale", value: n }].concat(xt.shopify_skip_shop_pay ? [{ name: "skip_shop_pay", value: "true" }] : []);[{ name: "action", selector: ['form[method="post"][action*="/cart"]', 'form[method="post"][action*="/checkout"]'], testRegex: /\/(cart|checkout|)\/?(\?|$)/, event: "submit" }, { name: "href", selector: ['a[href*="/checkout"]', 'a[href*="/cart/checkout"]'], testRegex: /\/(cart\/)?checkout\/?(\?|$)/, event: "click" }].forEach((function (e) { for (var o = e.name, a = e.selector, i = e.testRegex, c = e.event, s = document.querySelectorAll(a.join(",")), l = function () { var e = f[u], a = e.getAttribute(o); if (i.test(a) && !r.every((function (e) { return a.includes(e.name + "=" + e.value) }))) { for (var s = 0, l = r; s < l.length; s += 1) { var d = l[s]; a = be(a, d.name, d.value) } e.setAttribute(o, a), e.wgCheckoutListener && e.removeEventListener(c, e.wgCheckoutListener), t !== xt.language_from && xt.fix_shopify_checkout_locale && (e.wgCheckoutListener = function (e) { return e.preventDefault(), e.stopPropagation(), xt.is_connect && !xt.subdirectory ? (Ve({ type: "cookie" }).setItem("wg_checkout_redirect", t), document.location.href = (xt.is_https ? "https:" : "http:") + "//" + xt.host) : at(n), !1 }, e.addEventListener(c, e.wgCheckoutListener)) } }, u = 0, f = s; u < f.length; u += 1)l() })) } function ct(e) { var t = { pt: "pt-PT", ro: "ro-RO", fl: "fil", zh: "zh-CN", tw: "zh-TW" }; return t[e] ? t[e] : e.substr(0, 2) } function st(e) { var t, n, r, o = e || ze(), a = document.getElementById("create_customer") || document.querySelector('form[action="' + (t = o, n = "/account", (xt.is_connect && t !== xt.language_from ? nt[n] ? nt[n] : (Ke((function (e) { var o = e && e[t] ? Ze(n, e[t].original) : n; r = xt.subdirectory ? He().convertLocale(t, o, xt.language_from) : o })), nt[n] = r, r) : n) + '"]')) || "string" == typeof xt.customer_tag && fe(document, xt.customer_tag); if (a) { var i = document.getElementById("weglot-lang-form"); i && i.parentNode.removeChild(i); var c = document.createElement("input"); Object.assign(c, { type: "hidden", id: "weglot-lang-form", name: "customer[tags]", value: "#wg" + o + "#wg" }), a.appendChild(c) } } function lt(e) { var t = function () { var e = document.getElementById("shopify-features"); if (!e) return null; var t = e.textContent.match(/"shopId":(\d*)/); return t ? t[1] : null }(); t && Le.set("checkout_locale", ct(e), null, t) } function ut(e) { var t = e || ze(); if (!xt.visual_editor && !me()) { var n = xt.cart_attributes, r = xt.is_connect, o = xt.original_shopify_checkout, a = xt.subdirectory, i = xt.language_from, c = Ve({ type: "cookie" }).getItem("cart"), s = Ve({ type: "session" }).getItem("wg-cart-update-token"); if (Ve({ type: "session" }).getItem("wg-cart-update-lang") !== ct(t) || c !== s) { var l = n.map((function (e) { return "attributes[" + e + "]=" + ct(t) })).join("&"), u = fetch("/cart/update.js", { method: "POST", body: l, headers: { "Content-Type": "application/x-www-form-urlencoded" }, credentials: "same-origin" }); !1 !== o && r && !a && i === ze() && u.then((function (e) { return e.json() })).then((function (e) { var t = e.token; return Le.set("cart", t, rt()) })), Ve({ type: "session" }).setItem("wg-cart-update-token", c), Ve({ type: "session" }).setItem("wg-cart-update-lang", ct(t)) } for (var f = document.querySelectorAll('a[href*="/cart/"]'), d = "attributes[lang]=" + t, g = 0, _ = f; g < _.length; g += 1) { var p = _[g], h = p.getAttribute("href"); if (h) { var m = h.match(/\/cart\/\d+:\d+(\?)?/); m && (h = h.replace(/&?attributes\[lang\]=([a-zA-Z-]+)/g, ""), p.setAttribute("href", h + (m[1] ? "&" : "?") + d)) } } } } function ft(e) { if (xt.language_from !== e) { window.Shopify && (window.Shopify.locale = e), !we() && xt.order_tag && ut(e), it(e), lt(e); var t = document.querySelectorAll("[data-wg-only-display]"); t.length && Fe(t, e), xt.customer_tag && st(e) } } je("onCurrentLocationChanged", (function () { nt = {} }), !0), Se("onWeglotSetup", (function () { !1 !== xt.original_shopify_checkout && xt.is_connect && !xt.subdirectory && xt.language_from === ze() && ot() })); var dt = ["#isp_search_result_page_container", ".snize-ac-results", "#snize_results", ".snize-recommendation", ".snize-modal", ".snize-search-results-header", "div>span.cc-message", ".hc-widget", ".jdgm-rev-widg__header", ".jdgm-rev__body", ".jdgm-rev-title", ".yotpo-main-widget", "#swell-popup", ".swell-tab", ".yotpo-widget-override-css", ".cw-row", ".mini-popup-container", "email-field cw-form-control", "phone-field cw-form-control", ".sms-policy-text", ".wlo-content-holder", ".wlo-wheel-holder", ".yotpo-smsbump-modal__content", ".cw-compliance-text", "#saso-notifications", ".saso-cross-sell-popup", ".saso-cart-item-discount-notes", ".saso-cart-item-upsell-notes", ".saso-volume-discount-tiers", ".opw-leading-normal", ".opw-my-2.opw-leading-normal.opw-text-lg.opw-text-left", ".opinew-navbar.opw-flex.opw-items-center.opw-justify-between.opw-flex-wrap.opw-py-4.opw-px-6", ".main-content-container.opw--mx-1", ".opw-text-center.opw-text-sm.opw-border-solid.opw-border-0.opw-mt-3", ".summary-card-container.opw-mx-1", ".opw-reviews-container.opw-mt-3.opw--mx-1", ".opinew-reviews-title.opw-flex.opw-items-center.opw-flex-no-shrink.opw-mr-6", ".opw-flex.opw-flex-row-reverse", "#opinew-app-container", ".gem_dynamic-content", ".pp_tracking_content", ".pp_all_form_div", ".pp_tracking_result_title", ".progress-bar-style", ".pp_tracking_left", ".pp_num_status_show", ".pp_tracking_status_tips", ".pp_page_map_div", ".pp_tracking_result_parent", ".pp_tracking_right", ".pp_recommend_product_parent", ".currency-converter-cart-note", ".cbb-shipping-rates-calculator", ".cbb-frequently-bought-container", ".cbb-frequently-bought-discount-applied-message", ".cbb-also-bought-container", "#zonos", ".buddha-menu-item", ".R-GlobalModal", ".ruk-rating-snippet-count", ".R-ContentList-container", ".R-ReviewsList-container", ".R-SliderIndicator-group", ".R-TextBody", ".widgetId-reviewsio-carousel-widget", ".REVIEWSIO-FloatingMinimised", ".REVIEWSIO-FloatingMinimised__Container", ".reviewsio-carousel-widget", ".reviews-io-floating-widget", ".reviews_container", ".site-nav.style--sidebar .site-nav-container .subtitle", ".search-more", ".variant-quantity", ".lion-claimed-rewards-list", ".lion-header", ".lion-header__join-buttons", ".lion-header__join-today", ".lion-history-table", ".lion-integrated-page-section__heading-text", ".lion-loyalty-panel", ".lion-loyalty-splash", ".lion-loyalty-widget", ".lion-modal__content", ".lion-modal__header", ".lion-referral-widget", ".lion-rewards-list", ".lion-rules-list", ".lion-tier-overview", ".ccpops-popup__content__bottom-text", ".ccpops-popup__content__top-text", ".ccpops-trigger__text", ".ks-table-row", ".klaviyo-form"]; var gt = {}; function _t(e) { return e ? "string" != typeof e ? e : e.split(",").map((function (e) { return { value: e } })) : [] } function pt(e, t) { if (void 0 === t && (t = ""), !e) return ae.button_style; var n = e.classF || "", r = n.match(/flag-(\d)/), o = { with_name: e.withname, full_name: !!e.fullname, is_dropdown: !!e.is_dropdown, with_flags: -1 !== n.indexOf("wg-flags"), flag_type: r && r[1] ? ie[r[1]] : "", invert_flags: !0 }; return t && (o.custom_css = t), o } function ht(e) { var t = e.styleOpt, n = e.containerCss, r = e.target, o = e.sibling; return { style: pt(t, n), location: { target: r, sibling: o } } } gt[J] = function () { je("initialized", (function () { var e = Ve({ type: "cookie" }).getItem("wg_checkout_redirect"); e && (Ve({ type: "cookie" }).removeItem("wg_checkout_redirect"), Ve({ type: "cookie" }).setItem("wg_checkout_language", e), at(e)), window.langify && M.log("%c Please, uninstall langify to properly use Weglot", { sendToDatadog: !1 }), we() || !xt.order_tag || xt.is_connect && xt.language_from !== ze() || ut(), it(); var t, n = document.querySelectorAll("[data-wg-only-display]"); n.length && Fe(n), xt.customer_tag && st(), document.getElementsByClassName("shopify-payment-button").length && (t = window.fetch, window.fetch = function () { if ("/wallets/checkouts.json" === arguments[0]) try { var e = JSON.parse(arguments[1].body), n = ct(ze()); e.checkout.attributes = {}, xt.cart_attributes.forEach((function (t) { return e.checkout.attributes[t] = n })), arguments[1].body = JSON.stringify(e) } catch (e) { } return t.apply(window, arguments) }) }), !0), Se("onConnectPageLoad", (function (e) { return ft(e) })), Se("onPageLanguageSet", (function (e) { return ft(e) })), Se("onDynamicDetected", (function () { it(ze()) })), Se("startWhen", (function () { return ge("admin-bar-iframe") || ge("preview-bar-iframe") || xt.private_mode || function () { for (var e = 0, t = document.scripts; e < t.length; e += 1)if (-1 !== t[e].src.indexOf("preview_bar_injector")) return !0; return !1 }() })); var e = [".shopify-payment-button button"].concat(dt).concat(xt.is_connect ? [] : ["form.cart.ajaxcart", "form.cart-drawer", "#cross-sell", ".wheelio_holder", ".mini-cart", "#shopify-product-reviews", "#esc-oos-form", ".product__add-to-cart-button", "select.product-variants>option:not([value])", ".ui-autocomplete", ".shopify-payment-button__button", "#shopify-section-static-recently-viewed-products", "#recently-viewed-products", "#shopify-section-product-recommendations", ".action_button.add_to_cart"]), t = /^\/(\d+\/checkouts|checkouts\/[a-z]{1,2})\/(?:\w{2}-)?\w{32}/.test(document.location.pathname), n = "loox.io" === document.location.hostname && me(); return Object.assign({}, { cart_attributes: ["lang", "Invoice Language"], excluded_blocks: ["input[type='radio']", "span.money", ".price", ".product__prices", "#admin-bar-iframe", ".notranslate", ".skiptranslate", "#isp_refine_nevigation", "#isp_header_subtitle", ".isp_sorting_and_result_view_wrapper", "#isp_results_did_you_mean > span", ".isp_facet_show_hide_values", "#isp_main_search_box", ".snize-filter-variant-count", ".snize-search-results-header a", ".snize-search-results-header b", ".hc-author__text", ".hc-avatar__initials", ".hc-rating-chart__count", ".hc-rating-chart__percentage-value", ".yotpo-review-date", ".yotpo-user-name", ".yotpo-user-letter", ".yotpo .avg-score", ".yotpo .sr-only", ".yotpo-mandatory-mark"].map((function (e) { return { value: e } })), search_forms: "form[action='/pages/search-results'],form[action='/search']", search_parameter: "q" }, n && xt.is_connect && { dynamicPushState: !0 }, { dynamics: e.map((function (e) { return { value: e } })), extra_definitions: [{ type: 1, selector: ".snize-color-swatch", attribute: "data-sntooltip" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-soldout" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-adding" }, { type: 1, selector: "button[data-pf-type=ProductATC]", attribute: "data-added" }], shopifyCheckout: t }) }, gt[Y] = function () { return Se("onPageLanguageSet", (function (e) { !function (e) { for (var t = 0, n = document.querySelectorAll('[href*="/checkout.php"],[href*="/cart.php"]'); t < n.length; t += 1) { var r = n[t]; r.setAttribute("href", be(r.getAttribute("href"), "lang", e)) } }(e) })), { dynamics: [".quick-shop-details", "#QuickViewProductDetails", ".QuickViewModal", ".modalContainer", ".ng-checkout-container", ".previewCartAction", "#checkout-app"].map((function (e) { return { value: e } })), search_forms: "form[action='/search.php']", search_parameter: "search_query" } }, gt[te] = function () { return xt.is_connect ? {} : { dynamics: [{ value: ".content" }] } }, gt[K] = function () { return { excluded_blocks: ['[data-display="cms-only"]', ".j-admin-links", ".cc-m-status-empty"].map((function (e) { return { value: e } })) } }, gt[X] = function () { var e = [], t = ["body.sqs-is-page-editing"]; document.getElementById("sqs-cart-root") && (e.push("#sqs-cart-container"), t.push("#sqs-cart-container [class*=subtotalPrice]", "#sqs-cart-container .cart-container .item-price")), document.getElementById("sqs-standard-checkout") && (e.push("#checkout"), t.push("#checkout span.money", "#checkout [data-test*=incomplete] [class^=PaymentCard-container]", "#checkout [data-test*=incomplete] [class^=CustomerAddress-container]", "#checkout [class^=CustomerInfoSection-email]", "#checkout [class^=GoogleResultsList]")); var n = window.location.host.endsWith("squarespace.com"); if (je("initialized", (function () { try { var e = window.ExtensionScriptsSDK; if (!e) return; e["1.0"].page.events.dispatchScriptLoadEvent("Weglot") } catch (e) { } })), !xt.is_connect) try { document.querySelectorAll(".animation-segment-wrapper").forEach((function (e) { e.parentNode.dataset.dynamicStrings = e.textContent })), document.querySelectorAll(".animation-segment-parent-hidden").forEach((function (e) { e.dataset.dynamicStrings = "" })), t.push(".animation-segment-wrapper"), t.push(".animation-segment-parent-hidden > *") } catch (e) { } return { force_translation: e.join(","), dynamics: ["#sqs-cart-container", "#checkout", ".sqs-widgets-confirmation", ".video-player", ".jdgm-widget", ".calendar-block", ".opentable-v2-block", ".blog-item-comments"].map((function (e) { return { value: e } })).concat(xt.is_connect ? [{ value: ".sqs-add-to-cart-button.cart-adding" }, { value: ".sqs-add-to-cart-button.cart-added" }] : [{ value: "[data-dynamic-strings]" }, { value: ".sqs-add-to-cart-button" }, { value: ".variant-select-wrapper" }]), excluded_blocks: t.map((function (e) { return { value: e } })).concat(xt.is_connect ? [{ value: ".comment-body" }] : []), forceDisableConnect: n, merged_selectors_remove: [{ value: ".plyr__menu__container" }, { value: ".product-price .original-price" }, { value: ".comment-btn-wrapper" }], extra_definitions: [{ type: 1, selector: ".variant-select-wrapper", attribute: "data-text" }] } }, gt[Z] = function () { var e = { dynamics: document.documentElement.getAttribute("data-wg-translated") ? [] : [{ value: "#SITE_CONTAINER" }], dynamicPushState: !0 }; if (window.wixBiSession && "bolt" !== window.wixBiSession.renderType && !xt.visual_editor && (document.addEventListener("DOMContentLoaded", (function () { new MutationObserver((function (e) { for (var t = 0; t < e.length; t++) { "SUCCESS" === e[t].target.getAttribute("data-santa-render-status") && (this.disconnect(), Pe("start")) } })).observe(document.getElementById("SITE_CONTAINER"), { attributes: !0, attributeFilter: ["data-santa-render-status"] }) })), e.delayStart = !0, e.wait_transition = !1), window.wixBiSession && "bolt" === window.wixBiSession.renderType) { var t = 0, n = setInterval((function () { (document.body && window.sssr || 40 === t) && (Pe("start"), clearInterval(n)), t++ }), 100); e.delayStart = !0, e.wait_transition = !1 } return e }, gt[Q] = function () { return je("switchersReady", (function () { var e = document.querySelector(".weglot-container"); e && e.classList.add("weglot-container--left") })), { forceDisableConnect: window.Webflow && window.Webflow.env && !!window.Webflow.env("editor"), excluded_blocks: [".wg-element-wrapper"].map((function (e) { return { value: e } })), linkHooksConfig: { additionalCheckSelectors: [".weglot-switcher-component a[lang]"], buildAdditionalSelectors: function (e) { return ['.weglot-switcher-component a[lang="' + e + '"]'] }, onLinkActive: function (e) { e.classList.add("w--current"), e.setAttribute("aria-current", "lang") }, offLinkActive: function (e) { e.classList.remove("w--current"), e.removeAttribute("aria-current") } } } }, gt[ee] = function () { return { dynamics: [".w-container", ".w-wrapper", ".product-header", ".product-messages", ".error", "button"].map((function (e) { return { value: e } })) } }, gt[ne] = function () { return { ignoreDynamicFragments: !0, dynamicPushState: !0, merged_selectors_remove: [{ value: ".themeProfileMenu" }] } }; var mt = [{ from: "originalLanguage", to: "language_from" }, { from: "autoSwitch", to: "auto_switch" }, { from: "autoSwitchFallback", to: "auto_switch_fallback" }, { from: "waitTransition", to: "wait_transition" }, { from: "subDomain", to: "subdomain" }, { from: "translateSearch", to: "translate_search" }, { from: "searchsForms", to: "search_forms" }, { from: "searchParameter", to: "search_parameter" }, { from: "hideSwitcher", to: "hide_switcher" }, { from: "dangerouslyForceDynamic", to: "dangerously_force_dynamic" }, { from: "loadingBar", to: "loading_bar" }, { from: "customerTag", to: "customer_tag" }, { from: "orderTag", to: "order_tag" }, { from: "translateImages", to: "media_enabled" }, { from: "extraDefinitions", to: "extra_definitions" }, { from: "excludePaths", to: "excluded_paths", func: function (e) { return e ? "string" != typeof e ? e : e.split(",").filter((function (e) { return !!e })).map((function (e) { return { value: e, type: "CONTAIN" } })) : [] } }, { from: "exceptions", to: "excluded_blocks", func: _t }, { from: "whiteList", to: "whitelist", func: _t }, { from: "styleOpt", to: "button_style", func: pt }, { from: "destinationLanguages", to: "languages", func: function (e) { return "string" != typeof e ? e : e.split(",").map((function (e) { return { language_to: e, provider: null, automatic_translation_enabled: !0 } })) } }]; function vt(e) { var t = Object.assign({}, e); return t.switchers && ("string" == typeof t.switchers && (t.switchers = JSON.parse(t.switchers)), t.switchers.length && t.switchers[0].styleOpt && (t.switchers = t.switchers.map(ht)), t.scriptParamSwitcher = !0), Array.isArray(t.dynamic) && (t.dynamic = t.dynamic.join(",")), Array.isArray(t.translate_iframes) && (t.translate_iframes = t.translate_iframes.join(",")), t.translate_images && (t.media_enabled = !0), mt.forEach((function (e) { var n = e.from, r = e.to, o = e.func; void 0 !== t[n] && (t[r] = o ? o(t[n]) : t[n], delete t[n]) })), t } function wt(e, t) { var n = {}; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && -1 === t.indexOf(r) && (n[r] = e[r]); return n } var yt = {}; function bt(e) { if (!e || !e.api_key) throw Error("You have to provide at least a key"); var t = e.api_key.split("wg_").pop(), n = vt(e); return function (e) { if (u(window.location.hostname)) return fetch("https://api.weglot.com/projects/settings?api_key=wg_" + e).then((function (e) { return e.json() })); var t = kt(); if (t) { var n = t.settings, r = wt(t, ["settings"]); return n.injectedData = r, Promise.resolve(n) } var o = function (e) { if (!e.includes(z)) return null; var t = e.split(".")[0]; if (t.includes("-")) { return t.split("-").reverse()[0] } return t }(window.location.hostname); if (o) return fetch("" + q + o + ".json").then((function (e) { return e.json() })).then((function (e) { return "SUBDOMAIN" === e.url_type && (e.languages = e.languages.map((function (e) { return Object.assign({}, e, { connect_host_destination: Object.assign({}, e.connect_host_destination, { is_dns_set: !0, created_on_aws: 1, host: (e.custom_code || e.language_to) + "-" + o + "." + z }) }) }))), e.is_dns_set = !0, e.previewHash = o, e })); return fetch("" + q + e + ".json").then((function (e) { return e.json() })) }(t).then((function (e) { var t = e.custom_settings, r = wt(e, ["custom_settings"]); n.button_style = Object.assign(t ? t.button_style : {}, n.button_style); var o = r.language_from, a = r.languages; o && (n.language_from = o), a && (n.languages = a), t && t.localeRules && (n.localeRules = t.localeRules); var i = Ct(Object.assign({}, r, t, n)); return Pe("onOptionsReady"), i })).catch((function (e) { M.error(e, { consoleOverride: e && e.wgErrMsg || "Cannot fetch Weglot options. Is your key correct?", sendToDatadog: !1 }) })) } function kt() { var e = ge("weglot-data"); if (!e) return null; try { var t = JSON.parse(e.innerHTML); return t.settings ? t : null } catch (e) { return null } } function Et() { var e = kt(); e && (delete e.settings, yt.injectedData = e) } function Ct(e) { if (e.deleted_at) throw { wgErrMsg: "Cannot load Weglot because the project has been deleted" }; e.injectedData || ke(Et), "SUBDIRECTORY" === e.url_type && e.is_dns_set && (e.subdirectory = !0), e.languages.length || (e.languages = []), yt.is_connect = e.subdirectory || e.languages.some((function (e) { return e.connect_host_destination && e.connect_host_destination.is_dns_set && e.connect_host_destination.created_on_aws })), e.subdomain = !e.subdirectory && (e.subdomain || yt.is_connect), e.dynamic && (e.dynamics || (e.dynamics = e.dynamic.split(",").map((function (e) { return { value: e.trim() } }))), delete e.dynamic), u(window.location.hostname) && (yt.visual_editor = !0), (function () { -1 !== location.search.indexOf("weglot-private=0") && Ve().removeItem("wg-private-mode"); var e = document.getElementById("admin-bar-iframe") || document.getElementById("preview-bar-iframe") || -1 !== location.search.indexOf("weglot-private=1") || "1" === Ve({ type: "cookie" }).getItem("wg-private-mode"); return e && Ve({ type: "cookie" }).setItem("wg-private-mode", "1"), e }() || yt.switcher_editor || yt.visual_editor) && (yt.private_mode = !0); var t, n, r, o = e.technology_name || yt.technology_name, a = (t = o) && gt[t] ? gt[t]() : {}, i = Object.assign({}, ae, a); if (Object.assign(yt, i, e), re.forEach((function (e) { var t, n; yt[e] !== i[e] && (yt[e] = (t = yt[e], (n = i[e]) ? Array.isArray(t) ? [].concat(t, n) : "object" == typeof t ? Object.assign({}, t, n) : (t = t.split(",").filter((function (e) { return e })).join(",")) && t.length > 0 && t !== n ? t += "," + n : t = n : t)) })), n = "https://cdn.weglot.com/weglot.min.css?v=4", (r = document.createElement("link")).rel = "stylesheet", r.type = "text/css", r.href = n, document.head.appendChild(r), yt.button_style && yt.button_style.custom_css && ve(yt.button_style.custom_css, "weglot-custom-style"), yt.switchers && 0 !== yt.switchers.length ? yt.switchers = yt.switchers.map((function (e) { var t = e.button_style, n = wt(e, ["button_style"]); return Object.assign({}, { style: n.style || t }, n) })) : yt.switchers = [{ style: yt.button_style, location: {}, default: !0 }], yt.cache && yt.visual_editor && (yt.cache = !1), yt.api_key.length < 36 && (yt.translation_engine = 1), yt.excluded_blocks_remove && (yt.excluded_blocks = yt.excluded_blocks.filter((function (e) { return !yt.excluded_blocks_remove.includes(e.value) }))), yt.dangerously_force_dynamic && (yt.dynamics = yt.dynamics.concat(yt.dangerously_force_dynamic.split(",").map((function (e) { return { value: e.trim() } })))), yt.excluded_blocks = yt.excluded_blocks.filter((function (e) { return ye(e.value) })), yt.dynamics = yt.dynamics.filter((function (e) { return ye(e.value) })), yt.dynamics_remove && (yt.dynamics = yt.dynamics.filter((function (e) { return !yt.dynamics_remove.includes(e.value) }))), yt.is_tld = !1, a.forceDisableConnect && (yt.is_connect = !1), yt.is_connect && !yt.previewHash) { var c = yt.host.split("www.").pop(); yt.is_tld = yt.languages.some((function (e) { if (e.connect_host_destination && e.connect_host_destination.host) return -1 === e.connect_host_destination.host.indexOf(c) })) } return yt.whitelist && !Array.isArray(yt.whitelist) && (yt.whitelist = [{ value: String(yt.whitelist) }]), yt } var xt = yt; var St = { "Node.prototype.contains": document.contains, "Element.prototype.cloneNode": "document" in self && "cloneNode" in document.documentElement, "location.origin": "location" in self && "origin" in self.location, MutationObserver: "MutationObserver" in self, Promise: "Promise" in self && "resolve" in Promise, "Element.prototype.matches": "document" in self && "matches" in document.documentElement, "Element.prototype.closest": "document" in self && "closest" in document.documentElement, "Element.prototype.classList": "document" in self && "classList" in document.documentElement && function () { var e = document.createElement("div"); if (!(e.classList && e.classList.add && e.classList.remove && e.classList.contains && e.classList.toggle)) return !1; var t = !0; e.classList.add("add1", "add2"), t = t && e.className.indexOf("add1") >= 0 && e.className.indexOf("add2") >= 0, e.className = "remove1 remove2 remove3", e.classList.remove("remove1", "remove3"), t = t && -1 === e.className.indexOf("remove1") && e.className.indexOf("remove2") >= 0 && -1 === e.className.indexOf("remove3"); try { e.remove() } catch (t) { e = null } return t }(), "String.prototype.includes": "includes" in String.prototype, fetch: "fetch" in self, "Array.prototype.find": "find" in Array.prototype, "Array.prototype.findIndex": "findIndex" in Array.prototype, "Object.assign": "assign" in Object, "Array.prototype.includes": "includes" in Array.prototype, URL: function (e) { try { var t = new e.URL("http://weglot.com"); if ("href" in t && "searchParams" in t) { var n = new URL("http://weglot.com"); if (n.search = "a=1&b=2", "http://weglot.com/?a=1&b=2" === n.href && (n.search = "", "http://weglot.com/" === n.href)) { var r = new e.URLSearchParams("a=1"), o = new e.URLSearchParams(r); if ("a=1" === String(o)) return !0 } } return !1 } catch (e) { return !1 } }(self) }, Ot = !1; function Nt() { Ot = !0, Pe("polyfillReady") } function Lt() { return Ot } !function (e) { window.Prototype && (delete Object.prototype.toJSON, delete Array.prototype.toJSON); var t = Object.keys(St).filter((function (e) { return !St[e] })); if (t.length) { !function (e, t, n) { var r = !1; function o() { r || (r = !0, setTimeout((function () { return t(n) }), 20)) } var a = document.getElementsByTagName("head")[0] || document.documentElement, i = document.createElement("script"); i.type = "text/javascript", i.src = e, i.addEventListener ? (i.addEventListener("load", o, !1), i.addEventListener("error", o, !1)) : i.readyState && (i.onreadystatechange = o), a.insertBefore(i, a.firstChild) }("https://cdn.polyfill.io/v2/polyfill.min.js?callback=Weglot.polyReady&features=" + t.join(","), (function () { })) } else e() }(Nt); var Tt = [{ condition: [{ type: "TECHNOLOGY_ID", payload: 2 }], value: [{ original: "^/checkouts/(?:[\\w]{32})(/.*)?$", formatted: "/checkouts$1" }, { original: "^/account/(orders|activate)/(?:[\\w]{32})$", formatted: "/account/$1/" }, { original: "^/orders/(?:[\\w]{32})$", formatted: "/orders/" }, { original: "^/wallets/checkouts/(?:.*)$", formatted: "/wallets/checkouts/" }, { original: "^/(.+)\\.(json|xml)$", formatted: "/$1" }] }], At = !1, jt = {}, Pt = {}, It = Ve({ type: "local" }); if (It.getItem(V)) try { jt = JSON.parse(It.getItem(V)), Object.keys(jt).forEach((function (e) { Object.keys(jt[e]).forEach((function (t) { if (2 === t.length) { Pt[t] || (Pt[t] = {}); var n = jt[e][t]; Pt[t][n] = e } })) })), At = !0 } catch (lr) { At = !0 } function Rt(e) { return jt[e] } function Dt(e, t, n, r) { var o, a = Rt(e); a ? (a[r] = n, a.createdTime = (new Date).getTime(), a.t = t) : jt[e] = ((o = {})[r] = n, o.createdTime = (new Date).getTime(), o.t = t, o), Pt[r] || (Pt[r] = {}), Pt[r][n] = e, xt.cache && Ee(Wt)() } var Wt = function () { return jt && It.setItem(V, JSON.stringify(jt)) }; var Ut = [], Ht = new Set, Mt = !1, qt = function (e) { return Ht.has(pe(e).trim()) }, zt = function (e) { return Ht.add(pe(e).trim()) }; function Ft(e, t) { void 0 === e && (e = document.documentElement); var n = ze(); return E(e).filter((function (e) { return (t || Bt)(e) })).map(function (e) { return function (t) { var n = t.element, r = t.words, o = t.type, a = t.properties, i = t.attrSetter; n.weglot || (n.weglot = { content: [] }); var c, s, l = n.weglot, u = {}, f = (c = r, !!Pt[s = e] && Pt[s][c]); if (f && (u[e] = r, r = f), a) { var d = l.content.find((function (e) { return e.html })); d ? Object.assign(d, { original: r, properties: a, translations: u }) : l.content.push({ html: !0, original: r, type: o, properties: a, translations: u }) } if (i) { var g = l.content.find((function (e) { return e.attrSetter === i })), _ = { attrSetter: i, original: r, type: o, translations: u }; g ? Object.assign(g, _) : l.content.push(_) } return n } }(n)) } function Bt(e) { var t = e.element, n = e.words; return !t.weglot || !t.weglot.content || !t.weglot.content.some((function (e) { var t, r = e.original, o = e.translations; return r === n || (t = o, Object.keys(t).map((function (e) { return t[e] }))).includes(pe(n)) })) } function $t(e) { for (var t = [], n = 0, r = e; n < r.length; n += 1) { var o = r[n]; -1 === Ut.indexOf(o) && t.push(o) } return [].push.apply(Ut, t), t } function Vt(e, t) { void 0 === e && (e = Ut), void 0 === t && (t = {}); var n = xt.prevent_retranslation, r = xt.injectedData; void 0 === r && (r = {}); var o = xt.is_connect; if (n && o && !Mt) { var a = r.translatedWordsList; void 0 === a && (a = []), a.forEach((function (e) { return zt(e) })), Mt = !0 } for (var i = [], c = {}, s = 0, l = e; s < l.length; s += 1)for (var u = 0, f = l[s].weglot.content; u < f.length; u += 1) { var d = f[u], g = d.original, _ = d.type; c[g] || (n && qt(g) || (c[g] = !0, i.push(Object.assign({}, { t: _, w: g }, t.label && { l: t.label })))) } return i } function Gt(e, t, n) { if (void 0 === t && (t = ze()), void 0 === n && (n = Ut), e && e.to_words && e.to_words.length) for (var r = e.from_words, o = e.to_words, a = 0, i = n; a < i.length; a += 1)for (var c = 0, s = i[a].weglot.content || {}; c < s.length; c += 1) { var l = s[c], u = l.original, f = l.translations, d = r.indexOf(pe(u)); if (-1 !== d && !f[t]) { var g = (_ = o[d]) && _.replace && _.replace(/wg-(\d+)=""(\s*)\/(\s*)>/g, 'wg-$1="">'); xt.prevent_retranslation && zt(g), f[t] = g } } var _; try { T(n, t) } catch (e) { M.error(e) } } function Jt(e) { if (e && e.toLowerCase) { var t = e.toLowerCase(), n = xt.languages.find((function (e) { var n = e.language_to, r = e.custom_code; return n === t || (r ? r.toLowerCase() === t : void 0) })); return n ? n.language_to : e } } function Yt(e, t) { var n; void 0 === t && (t = { cdn: !1, search: !1 }); var r = e.l_to, o = e.words; e.l_to = Jt(r); var a, i = o; if (!xt.visual_editor) { if (n = function (e, t) { var n = [], r = [], o = []; return e.forEach((function (e) { var a = Rt(e.w); a && a[t] ? (n.push(a[t]), r.push(pe(e.w))) : o.push(e) })), { cachedWords: { to_words: n, from_words: r }, newWords: o } }(o, r), i = n.newWords, (a = n.cachedWords).to_words.length && !t.search) { if (!i.length) return Promise.resolve(a); Gt(a, r, t.nodes) } At && [].push.apply(i, function () { At = !1; var e = (new Date).getTime(); return Object.keys(jt).filter((function (t) { return jt[t].createdTime + 216e5 < e })).map((function (e) { return { t: jt[e].t, w: e } })) }()) } return i.length ? (e.words = i, e.request_url = function () { var e = function () { if (xt.visual_editor) return new se(Re.url); var e = xt.technology_name, t = xt.injectedData; if (e === Z) return new se(window.location.href); if (t && t.originalCanonicalUrl) try { return new se(t.originalCanonicalUrl) } catch (e) { } var n = document.querySelector("link[rel='canonical'][href]"); if (n) try { return new se(n.href) } catch (e) { } return new se(window.location.href) }(); e.pathname = (t = e.pathname, t.split("/").filter((function (e) { return !e || isNaN(Number(e)) })).join("/")); var t; for (var n = 0, r = Tt.filter((function (e) { return e.condition.some((function (e) { var t = e.type, n = e.payload; return "TECHNOLOGY_ID" === t && n === xt.technology_id })) })); n < r.length; n += 1) { var o = r[n].value; try { for (var a = 0, i = o; a < i.length; a += 1) { var c = i[a], s = c.original, l = c.formatted, u = e.pathname.replace(new RegExp(s), l); if (u !== e.pathname) return e.pathname = u, e.toString() } } catch (e) { M.warn(e, { consoleOverride: "Invalid URL regex, " + e.stack }) } } return e.toString() }(), function (e) { var t = xt.versions && xt.versions.translation || 1, n = ["api_key=" + xt.api_key, "v=" + t], r = "https://" + (xt.bypass_cdn_api ? "api.weglot.com" : "cdn-api-weglot.com") + "/translate?" + n.join("&"); return fetch(r, { method: "POST", body: Kt(JSON.stringify(e)) }).then(Xt).then((function (e) { return e.json() })).then((function (e) { if (!e || !e.to_words) throw M.warn(e), Error("An error occurred, please try again later"); return e })) }(e).then((function (e) { return i.forEach((function (t, n) { var o = e.to_words[n]; Dt(t.w, t.t, o, r) })), e }))) : t.search && a ? Promise.resolve(a) : Promise.resolve({ to_words: [], from_words: [] }) } function Kt(e) { return e.replace(/[\u007F-\uFFFF]/g, (function (e) { return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).substr(-4) })) } function Xt(e) { if (400 === e.status) throw Error("You reached Weglot limitation. Please upgrade your plan."); if (401 === e.status) throw Error("Your Weglot API key seems wrong."); if (e.status >= 402) throw Error(e.statusText); return e } function Zt(e) { var t = xt.api_key; return fetch("https://api.weglot.com/pageviews?api_key=" + t, { method: "POST", body: JSON.stringify({ url: e || Re.url, language: ze(), browser_language: navigator.language }) }) } var Qt, en = {}; function tn(e) { return { START_WITH: function (t) { return 0 === e.indexOf(t) }, NOT_START_WITH: function (t) { return 0 !== e.indexOf(t) }, END_WITH: function (t) { return -1 !== e.indexOf(t, e.length - t.length) }, NOT_END_WITH: function (t) { return -1 === e.indexOf(t, e.length - t.length) }, CONTAIN: function (t) { return -1 !== e.indexOf(t) }, NOT_CONTAIN: function (t) { return -1 === e.indexOf(t) }, IS_EXACTLY: function (t) { return e === t }, NOT_IS_EXACTLY: function (t) { return e !== t }, MATCH_REGEX: function (t) { try { return new RegExp(t, "i").test(e) } catch (e) { return M.warn(e, { consoleOverride: t + " is an invalid regex", sendToDatadog: !1 }), !1 } } } } function nn(e) { var t = xt.excluded_paths, n = Re.pathname; if (n = n.toLowerCase(), "shopify.weglot.com" === window.location.host || !t || !t.length) return !1; if ("string" == typeof t && t.split(",").some((function (e) { return new RegExp(e, "i").test(n) }))) return { allExcluded: !0, language_button_displayed: !0 }; var r = e || Jt(ze()); return void 0 !== en[r] && en.currentLang === r || (en.currentLang = r, xt.injectedData && xt.injectedData.originalPath && (n = xt.injectedData.originalPath.toLowerCase()), t.some((function (e) { var t = e.type, o = e.value, a = e.excluded_languages, i = e.language_button_displayed, c = e.regex; o = o.toLowerCase(); var s = { language_button_displayed: i, allExcluded: !(!a || !(0 === a.length || a.length >= xt.languages.length)) }; if (a && a.length && !a.includes(r)) return !1; var l = tn(n); if (c && !t.startsWith("NOT") ? l.MATCH_REGEX(c) : l[t](o)) return en[r] = s, !0; var u = n; try { u = decodeURIComponent(n) } catch (e) { return } if (u !== n) { var f = tn(u); return (c && !t.startsWith("NOT") ? f.MATCH_REGEX(c) : f[t](o)) ? (en[r] = s, !0) : void 0 } }))), en[r] } function rn() { if (Qt) return Qt; if (!xt.api_key) return M.warn("Weglot must be initialized to use it.", { sendToDatadog: !1 }), []; var e = (xt.languages || []).filter((function (e) { var t = nn(e.language_to), n = !t || t.language_button_displayed; return (!1 !== e.enabled || xt.private_mode) && n && (xt.subdirectory || !xt.is_connect || e.connect_host_destination && e.connect_host_destination.created_on_aws) })).map((function (e) { return e.custom_code || e.language_to })), t = [xt.language_from].concat(e); return Qt = t.filter((function (e, n) { return e && t.indexOf(e) == n })), e.length || M.log("No public language available.", { sendToDatadog: !1 }), Qt } je("onCurrentLocationChanged", (function () { en = {} }), !0), je("onCurrentLocationChanged", (function () { Qt = null }), !0); var on = [{ codes: ["no"], pattern: /^(nn|nb)(-[a-z]+)?$/i }, { codes: ["zh"], pattern: /^zh(-hans(-\w{2})?)?(-(cn|sg))?$/i }, { codes: ["tw", "zh-TW"], pattern: /^zh-(hant)?-?(tw|hk|mo)?$/i }, { codes: ["br"], pattern: /^pt-br$/i }, { codes: ["fl"], pattern: /^fil$/i }]; function an(e) { void 0 === e && (e = rn()); for (var t = {}, n = {}, r = 0, o = e; r < o.length; r += 1) { var a = o[r], i = a.toLowerCase(), c = i.substring(0, 2); t[c] || (t[c] = []), t[c].push(i), n[i] = a } for (var s = 0, l = navigator.languages || [navigator.language]; s < l.length; s += 1) { var u = l[s], f = u.toLowerCase(), d = f.substring(0, 2); if (n[f]) return n[f]; for (var g = 0, _ = on; g < _.length; g += 1) { var p = _[g], h = p.codes, m = p.pattern, v = h.find((function (t) { return e.includes(t) })); if (v && m.test(u)) return v } if (t[d]) { if ("zh" === d) continue; var w = t[d].indexOf(d); return w >= 0 ? n[t[d][w]] : n[t[d].shift()] } } } function cn() { var e = window.location.search.indexOf("no_redirect=true") > -1; if (!(!xt.auto_switch || xt.subdirectory || e || Ve({ type: "cookie" }).getItem("WG_CHOOSE_ORIGINAL") || we() || xt.visual_editor)) { var t = an(); return t && !nn(t) ? t : xt.auto_switch_fallback && !nn(xt.auto_switch_fallback) ? xt.auto_switch_fallback : void 0 } e && sn(ze()) } function sn(e) { if (e === xt.language_from) { var t = new Date; t.setTime(t.getTime() + 2592e6), Ve({ type: "cookie" }).setItem("WG_CHOOSE_ORIGINAL", "1", { expires: t.toUTCString() }) } else Ve({ type: "cookie" }).removeItem("WG_CHOOSE_ORIGINAL") } function ln() { var e = Ve().getItem(F); if (e && rn().includes(e)) return e } var un = function (e) { return e && Ve().setItem(F, e) }; function fn() { _e(ge(B)) } function dn(e, t, n) { void 0 === n && (n = {}); n = Object.assign({}, { title: !0, cdn: !1, search: !1 }, n); var r = { l_from: xt.language_from, l_to: t, words: e }; return n.title && (r.title = document.title), Yt(r, n) } function gn(e, t) { if ("string" != typeof e || "function" != typeof t) return !1; var n = ze(); return n === xt.language_from ? (t(e), !1) : (Yt({ l_from: n, l_to: xt.language_from, words: [{ t: 2, w: e }] }, { cdn: !0, search: !0 }).then((function (e) { return e.to_words[0].toLowerCase().trim() })).then(t), !0) } var _n = []; function pn(e) { var t = e.langTo; void 0 === t && (t = ze()); var n = e.node; void 0 === n && (n = document.documentElement); var r = xt.proxify_iframes, o = xt.api_key, a = xt.language_from; if (r && r.length && Array.isArray(r)) for (var i = 0, c = ue(n, r.join(",")); i < c.length; i += 1) { var s = c[i], l = s.src; if (!l) return; if (s.weglot || (s.weglot = {}), !l.includes("proxy.weglot.com/")) { if (s.weglot.originalFrameSrc || (s.weglot.originalFrameSrc = l), t === a) return; try { s.src = l.replace("://", "://proxy.weglot.com/" + o + "/" + a + "/" + t + "/") } catch (e) { } return } if (!t || t === a) { var u = (s.weglot || {}).originalFrameSrc; return void (u && (s.src = u)) } var f = new RegExp(o + "/" + a + "/[^/]+/"); return void (s.src = l.replace(f, o + "/" + a + "/" + t + "/")) } } function hn(e) { void 0 === e && (e = ze()), function (e) { void 0 === e && (e = ze()); for (var t = { message: "Weglot.setLanguage", payload: e }, n = 0, r = _n; n < r.length; n += 1) { var o = r[n]; try { o.postMessage(t, "*") } catch (e) { console.warn(e) } } }(e), pn({ langTo: e }) } function mn(e) { if (e.data && "null" !== e.origin) { var t = e.data, n = t.message, r = t.payload; if (n) { if ("Weglot.iframe" === n) { var o = { message: "Weglot.setLanguage", payload: ze() }; return e.source.postMessage(o, e.origin), void _n.push(e.source) } "Weglot.setLanguage" !== n || ia(r) } } } function vn(e) { var t = xt.linkHooksConfig && xt.linkHooksConfig.buildAdditionalSelectors; return ["a[href='#Weglot-" + e + "']", "a[href*='change-language.weglot.com/" + e + "']"].concat(t ? t(e) : []).join(",") } var wn, yn, bn, kn, En, Cn, xn, Sn, On = {}, Nn = [], Ln = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i; function Tn(e, t) { for (var n in t) e[n] = t[n]; return e } function An(e) { var t = e.parentNode; t && t.removeChild(e) } function jn(e, t, n) { var r, o, a, i = {}; for (a in t) "key" == a ? r = t[a] : "ref" == a ? o = t[a] : i[a] = t[a]; if (arguments.length > 2 && (i.children = arguments.length > 3 ? wn.call(arguments, 2) : n), "function" == typeof e && null != e.defaultProps) for (a in e.defaultProps) void 0 === i[a] && (i[a] = e.defaultProps[a]); return Pn(e, i, r, o, null) } function Pn(e, t, n, r, o) { var a = { type: e, props: t, key: n, ref: r, __k: null, __: null, __b: 0, __e: null, __d: void 0, __c: null, __h: null, constructor: void 0, __v: null == o ? ++bn : o }; return null == o && null != yn.vnode && yn.vnode(a), a } function In(e) { return e.children } function Rn(e, t) { this.props = e, this.context = t } function Dn(e, t) { if (null == t) return e.__ ? Dn(e.__, e.__.__k.indexOf(e) + 1) : null; for (var n; t < e.__k.length; t++)if (null != (n = e.__k[t]) && null != n.__e) return n.__e; return "function" == typeof e.type ? Dn(e) : null } function Wn(e) { var t, n; if (null != (e = e.__) && null != e.__c) { for (e.__e = e.__c.base = null, t = 0; t < e.__k.length; t++)if (null != (n = e.__k[t]) && null != n.__e) { e.__e = e.__c.base = n.__e; break } return Wn(e) } } function Un(e) { (!e.__d && (e.__d = !0) && kn.push(e) && !Hn.__r++ || En !== yn.debounceRendering) && ((En = yn.debounceRendering) || Cn)(Hn) } function Hn() { var e, t, n, r, o, a, i, c; for (kn.sort(xn); e = kn.shift();)e.__d && (t = kn.length, r = void 0, o = void 0, i = (a = (n = e).__v).__e, (c = n.__P) && (r = [], (o = Tn({}, a)).__v = a.__v + 1, Yn(c, a, o, n.__n, void 0 !== c.ownerSVGElement, null != a.__h ? [i] : null, r, null == i ? Dn(a) : i, a.__h), Kn(r, a), a.__e != i && Wn(a)), kn.length > t && kn.sort(xn)); Hn.__r = 0 } function Mn(e, t, n, r, o, a, i, c, s, l) { var u, f, d, g, _, p, h, m = r && r.__k || Nn, v = m.length; for (n.__k = [], u = 0; u < t.length; u++)if (null != (g = n.__k[u] = null == (g = t[u]) || "boolean" == typeof g || "function" == typeof g ? null : "string" == typeof g || "number" == typeof g || "bigint" == typeof g ? Pn(null, g, null, null, g) : Array.isArray(g) ? Pn(In, { children: g }, null, null, null) : g.__b > 0 ? Pn(g.type, g.props, g.key, g.ref ? g.ref : null, g.__v) : g)) { if (g.__ = n, g.__b = n.__b + 1, null === (d = m[u]) || d && g.key == d.key && g.type === d.type) m[u] = void 0; else for (f = 0; f < v; f++) { if ((d = m[f]) && g.key == d.key && g.type === d.type) { m[f] = void 0; break } d = null } Yn(e, g, d = d || On, o, a, i, c, s, l), _ = g.__e, (f = g.ref) && d.ref != f && (h || (h = []), d.ref && h.push(d.ref, null, g), h.push(f, g.__c || _, g)), null != _ ? (null == p && (p = _), "function" == typeof g.type && g.__k === d.__k ? g.__d = s = qn(g, s, e) : s = Fn(e, g, d, m, _, s), "function" == typeof n.type && (n.__d = s)) : s && d.__e == s && s.parentNode != e && (s = Dn(d)) } for (n.__e = p, u = v; u--;)null != m[u] && ("function" == typeof n.type && null != m[u].__e && m[u].__e == n.__d && (n.__d = Bn(r).nextSibling), Qn(m[u], m[u])); if (h) for (u = 0; u < h.length; u++)Zn(h[u], h[++u], h[++u]) } function qn(e, t, n) { for (var r, o = e.__k, a = 0; o && a < o.length; a++)(r = o[a]) && (r.__ = e, t = "function" == typeof r.type ? qn(r, t, n) : Fn(n, r, r, o, r.__e, t)); return t } function zn(e, t) { return t = t || [], null == e || "boolean" == typeof e || (Array.isArray(e) ? e.some((function (e) { zn(e, t) })) : t.push(e)), t } function Fn(e, t, n, r, o, a) { var i, c, s; if (void 0 !== t.__d) i = t.__d, t.__d = void 0; else if (null == n || o != a || null == o.parentNode) e: if (null == a || a.parentNode !== e) e.appendChild(o), i = null; else { for (c = a, s = 0; (c = c.nextSibling) && s < r.length; s += 1)if (c == o) break e; e.insertBefore(o, a), i = a } return void 0 !== i ? i : o.nextSibling } function Bn(e) { var t, n, r; if (null == e.type || "string" == typeof e.type) return e.__e; if (e.__k) for (t = e.__k.length - 1; t >= 0; t--)if ((n = e.__k[t]) && (r = Bn(n))) return r; return null } function $n(e, t, n) { "-" === t[0] ? e.setProperty(t, null == n ? "" : n) : e[t] = null == n ? "" : "number" != typeof n || Ln.test(t) ? n : n + "px" } function Vn(e, t, n, r, o) { var a; e: if ("style" === t) if ("string" == typeof n) e.style.cssText = n; else { if ("string" == typeof r && (e.style.cssText = r = ""), r) for (t in r) n && t in n || $n(e.style, t, ""); if (n) for (t in n) r && n[t] === r[t] || $n(e.style, t, n[t]) } else if ("o" === t[0] && "n" === t[1]) a = t !== (t = t.replace(/Capture$/, "")), t = t.toLowerCase() in e ? t.toLowerCase().slice(2) : t.slice(2), e.l || (e.l = {}), e.l[t + a] = n, n ? r || e.addEventListener(t, a ? Jn : Gn, a) : e.removeEventListener(t, a ? Jn : Gn, a); else if ("dangerouslySetInnerHTML" !== t) { if (o) t = t.replace(/xlink(H|:h)/, "h").replace(/sName$/, "s"); else if ("width" !== t && "height" !== t && "href" !== t && "list" !== t && "form" !== t && "tabIndex" !== t && "download" !== t && t in e) try { e[t] = null == n ? "" : n; break e } catch (e) { } "function" == typeof n || (null == n || !1 === n && "-" !== t[4] ? e.removeAttribute(t) : e.setAttribute(t, n)) } } function Gn(e) { return this.l[e.type + !1](yn.event ? yn.event(e) : e) } function Jn(e) { return this.l[e.type + !0](yn.event ? yn.event(e) : e) } function Yn(e, t, n, r, o, a, i, c, s) { var l, u, f, d, g, _, p, h, m, v, w, y, b, k, E, C = t.type; if (void 0 !== t.constructor) return null; null != n.__h && (s = n.__h, c = t.__e = n.__e, t.__h = null, a = [c]), (l = yn.__b) && l(t); try { e: if ("function" == typeof C) { if (h = t.props, m = (l = C.contextType) && r[l.__c], v = l ? m ? m.props.value : l.__ : r, n.__c ? p = (u = t.__c = n.__c).__ = u.__E : ("prototype" in C && C.prototype.render ? t.__c = u = new C(h, v) : (t.__c = u = new Rn(h, v), u.constructor = C, u.render = er), m && m.sub(u), u.props = h, u.state || (u.state = {}), u.context = v, u.__n = r, f = u.__d = !0, u.__h = [], u._sb = []), null == u.__s && (u.__s = u.state), null != C.getDerivedStateFromProps && (u.__s == u.state && (u.__s = Tn({}, u.__s)), Tn(u.__s, C.getDerivedStateFromProps(h, u.__s))), d = u.props, g = u.state, u.__v = t, f) null == C.getDerivedStateFromProps && null != u.componentWillMount && u.componentWillMount(), null != u.componentDidMount && u.__h.push(u.componentDidMount); else { if (null == C.getDerivedStateFromProps && h !== d && null != u.componentWillReceiveProps && u.componentWillReceiveProps(h, v), !u.__e && null != u.shouldComponentUpdate && !1 === u.shouldComponentUpdate(h, u.__s, v) || t.__v === n.__v) { for (t.__v !== n.__v && (u.props = h, u.state = u.__s, u.__d = !1), u.__e = !1, t.__e = n.__e, t.__k = n.__k, t.__k.forEach((function (e) { e && (e.__ = t) })), w = 0; w < u._sb.length; w++)u.__h.push(u._sb[w]); u._sb = [], u.__h.length && i.push(u); break e } null != u.componentWillUpdate && u.componentWillUpdate(h, u.__s, v), null != u.componentDidUpdate && u.__h.push((function () { u.componentDidUpdate(d, g, _) })) } if (u.context = v, u.props = h, u.__P = e, y = yn.__r, b = 0, "prototype" in C && C.prototype.render) { for (u.state = u.__s, u.__d = !1, y && y(t), l = u.render(u.props, u.state, u.context), k = 0; k < u._sb.length; k++)u.__h.push(u._sb[k]); u._sb = [] } else do { u.__d = !1, y && y(t), l = u.render(u.props, u.state, u.context), u.state = u.__s } while (u.__d && ++b < 25); u.state = u.__s, null != u.getChildContext && (r = Tn(Tn({}, r), u.getChildContext())), f || null == u.getSnapshotBeforeUpdate || (_ = u.getSnapshotBeforeUpdate(d, g)), E = null != l && l.type === In && null == l.key ? l.props.children : l, Mn(e, Array.isArray(E) ? E : [E], t, n, r, o, a, i, c, s), u.base = t.__e, t.__h = null, u.__h.length && i.push(u), p && (u.__E = u.__ = null), u.__e = !1 } else null == a && t.__v === n.__v ? (t.__k = n.__k, t.__e = n.__e) : t.__e = Xn(n.__e, t, n, r, o, a, i, s); (l = yn.diffed) && l(t) } catch (e) { t.__v = null, (s || null != a) && (t.__e = c, t.__h = !!s, a[a.indexOf(c)] = null), yn.__e(e, t, n) } } function Kn(e, t) { yn.__c && yn.__c(t, e), e.some((function (t) { try { e = t.__h, t.__h = [], e.some((function (e) { e.call(t) })) } catch (e) { yn.__e(e, t.__v) } })) } function Xn(e, t, n, r, o, a, i, c) { var s, l, u, f = n.props, d = t.props, g = t.type, _ = 0; if ("svg" === g && (o = !0), null != a) for (; _ < a.length; _++)if ((s = a[_]) && "setAttribute" in s == !!g && (g ? s.localName === g : 3 === s.nodeType)) { e = s, a[_] = null; break } if (null == e) { if (null === g) return document.createTextNode(d); e = o ? document.createElementNS("http://www.w3.org/2000/svg", g) : document.createElement(g, d.is && d), a = null, c = !1 } if (null === g) f === d || c && e.data === d || (e.data = d); else { if (a = a && wn.call(e.childNodes), l = (f = n.props || On).dangerouslySetInnerHTML, u = d.dangerouslySetInnerHTML, !c) { if (null != a) for (f = {}, _ = 0; _ < e.attributes.length; _++)f[e.attributes[_].name] = e.attributes[_].value; (u || l) && (u && (l && u.__html == l.__html || u.__html === e.innerHTML) || (e.innerHTML = u && u.__html || "")) } if (function (e, t, n, r, o) { var a; for (a in n) "children" === a || "key" === a || a in t || Vn(e, a, null, n[a], r); for (a in t) o && "function" != typeof t[a] || "children" === a || "key" === a || "value" === a || "checked" === a || n[a] === t[a] || Vn(e, a, t[a], n[a], r) }(e, d, f, o, c), u) t.__k = []; else if (_ = t.props.children, Mn(e, Array.isArray(_) ? _ : [_], t, n, r, o && "foreignObject" !== g, a, i, a ? a[0] : n.__k && Dn(n, 0), c), null != a) for (_ = a.length; _--;)null != a[_] && An(a[_]); c || ("value" in d && void 0 !== (_ = d.value) && (_ !== e.value || "progress" === g && !_ || "option" === g && _ !== f.value) && Vn(e, "value", _, f.value, !1), "checked" in d && void 0 !== (_ = d.checked) && _ !== e.checked && Vn(e, "checked", _, f.checked, !1)) } return e } function Zn(e, t, n) { try { "function" == typeof e ? e(t) : e.current = t } catch (e) { yn.__e(e, n) } } function Qn(e, t, n) { var r, o; if (yn.unmount && yn.unmount(e), (r = e.ref) && (r.current && r.current !== e.__e || Zn(r, null, t)), null != (r = e.__c)) { if (r.componentWillUnmount) try { r.componentWillUnmount() } catch (e) { yn.__e(e, t) } r.base = r.__P = null, e.__c = void 0 } if (r = e.__k) for (o = 0; o < r.length; o++)r[o] && Qn(r[o], t, n || "function" != typeof e.type); n || null == e.__e || An(e.__e), e.__ = e.__e = e.__d = void 0 } function er(e, t, n) { return this.constructor(e, n) } function tr(e) { var t, n, r = ""; if ("string" == typeof e || "number" == typeof e) r += e; else if ("object" == typeof e) if (Array.isArray(e)) for (t = 0; t < e.length; t++)e[t] && (n = tr(e[t])) && (r && (r += " "), r += n); else for (t in e) e[t] && (r && (r += " "), r += t); return r } wn = Nn.slice, yn = { __e: function (e, t, n, r) { for (var o, a, i; t = t.__;)if ((o = t.__c) && !o.__) try { if ((a = o.constructor) && null != a.getDerivedStateFromError && (o.setState(a.getDerivedStateFromError(e)), i = o.__d), null != o.componentDidCatch && (o.componentDidCatch(e, r || {}), i = o.__d), i) return o.__E = o } catch (t) { e = t } throw e } }, bn = 0, Rn.prototype.setState = function (e, t) { var n; n = null != this.__s && this.__s !== this.state ? this.__s : this.__s = Tn({}, this.state), "function" == typeof e && (e = e(Tn({}, n), this.props)), e && Tn(n, e), null != e && this.__v && (t && this._sb.push(t), Un(this)) }, Rn.prototype.forceUpdate = function (e) { this.__v && (this.__e = !0, e && this.__h.push(e), Un(this)) }, Rn.prototype.render = In, kn = [], Cn = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, xn = function (e, t) { return e.__v.__b - t.__v.__b }, Hn.__r = 0, Sn = 0; var nr, rr, or, ar, ir = 0, cr = [], sr = [], lr = yn.__b, ur = yn.__r, fr = yn.diffed, dr = yn.__c, gr = yn.unmount; function _r(e, t) { yn.__h && yn.__h(rr, e, ir || t), ir = 0; var n = rr.__H || (rr.__H = { __: [], __h: [] }); return e >= n.__.length && n.__.push({ __V: sr }), n.__[e] } function pr(e) { return ir = 1, function (e, t, n) { var r = _r(nr++, 2); if (r.t = e, !r.__c && (r.__ = [n ? n(t) : Cr(void 0, t), function (e) { var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e); t !== n && (r.__N = [n, r.__[1]], r.__c.setState({})) }], r.__c = rr, !rr.u)) { var o = function (e, t, n) { if (!r.__c.__H) return !0; var o = r.__c.__H.__.filter((function (e) { return e.__c })); if (o.every((function (e) { return !e.__N }))) return !a || a.call(this, e, t, n); var i = !1; return o.forEach((function (e) { if (e.__N) { var t = e.__[0]; e.__ = e.__N, e.__N = void 0, t !== e.__[0] && (i = !0) } })), !(!i && r.__c.props === e) && (!a || a.call(this, e, t, n)) }; rr.u = !0; var a = rr.shouldComponentUpdate, i = rr.componentWillUpdate; rr.componentWillUpdate = function (e, t, n) { if (this.__e) { var r = a; a = void 0, o(e, t, n), a = r } i && i.call(this, e, t, n) }, rr.shouldComponentUpdate = o } return r.__N || r.__ }(Cr, e) } function hr(e, t) { var n = _r(nr++, 3); !yn.__s && Er(n.__H, t) && (n.__ = e, n.i = t, rr.__H.__h.push(n)) } function mr(e) { return ir = 5, function (e, t) { var n = _r(nr++, 7); return Er(n.__H, t) ? (n.__V = e(), n.i = t, n.__h = e, n.__V) : n.__ }((function () { return { current: e } }), []) } function vr() { for (var e; e = cr.shift();)if (e.__P && e.__H) try { e.__H.__h.forEach(br), e.__H.__h.forEach(kr), e.__H.__h = [] } catch (t) { e.__H.__h = [], yn.__e(t, e.__v) } } yn.__b = function (e) { rr = null, lr && lr(e) }, yn.__r = function (e) { ur && ur(e), nr = 0; var t = (rr = e.__c).__H; t && (or === rr ? (t.__h = [], rr.__h = [], t.__.forEach((function (e) { e.__N && (e.__ = e.__N), e.__V = sr, e.__N = e.i = void 0 }))) : (t.__h.forEach(br), t.__h.forEach(kr), t.__h = [])), or = rr }, yn.diffed = function (e) { fr && fr(e); var t = e.__c; t && t.__H && (t.__H.__h.length && (1 !== cr.push(t) && ar === yn.requestAnimationFrame || ((ar = yn.requestAnimationFrame) || yr)(vr)), t.__H.__.forEach((function (e) { e.i && (e.__H = e.i), e.__V !== sr && (e.__ = e.__V), e.i = void 0, e.__V = sr }))), or = rr = null }, yn.__c = function (e, t) { t.some((function (e) { try { e.__h.forEach(br), e.__h = e.__h.filter((function (e) { return !e.__ || kr(e) })) } catch (n) { t.some((function (e) { e.__h && (e.__h = []) })), t = [], yn.__e(n, e.__v) } })), dr && dr(e, t) }, yn.unmount = function (e) { gr && gr(e); var t, n = e.__c; n && n.__H && (n.__H.__.forEach((function (e) { try { br(e) } catch (e) { t = e } })), n.__H = void 0, t && yn.__e(t, n.__v)) }; var wr = "function" == typeof requestAnimationFrame; function yr(e) { var t, n = function () { clearTimeout(r), wr && cancelAnimationFrame(t), setTimeout(e) }, r = setTimeout(n, 100); wr && (t = requestAnimationFrame(n)) } function br(e) { var t = rr, n = e.__c; "function" == typeof n && (e.__c = void 0, n()), rr = t } function kr(e) { var t = rr; e.__c = e.__(), rr = t } function Er(e, t) { return !e || e.length !== t.length || t.some((function (t, n) { return t !== e[n] })) } function Cr(e, t) { return "function" == typeof t ? t(e) : t } function xr(e, t) { for (var n in t) e[n] = t[n]; return e } function Sr(e, t) { for (var n in e) if ("__source" !== n && !(n in t)) return !0; for (var r in t) if ("__source" !== r && e[r] !== t[r]) return !0; return !1 } function Or(e) { this.props = e } (Or.prototype = new Rn).isPureReactComponent = !0, Or.prototype.shouldComponentUpdate = function (e, t) { return Sr(this.props, e) || Sr(this.state, t) }; var Nr = yn.__b; yn.__b = function (e) { e.type && e.type.__f && e.ref && (e.props.ref = e.ref, e.ref = null), Nr && Nr(e) }; var Lr = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.forward_ref") || 3911; var Tr = yn.__e; yn.__e = function (e, t, n, r) { if (e.then) for (var o, a = t; a = a.__;)if ((o = a.__c) && o.__c) return null == t.__e && (t.__e = n.__e, t.__k = n.__k), o.__c(e, t); Tr(e, t, n, r) }; var Ar = yn.unmount; function jr(e, t, n) { return e && (e.__c && e.__c.__H && (e.__c.__H.__.forEach((function (e) { "function" == typeof e.__c && e.__c() })), e.__c.__H = null), null != (e = xr({}, e)).__c && (e.__c.__P === n && (e.__c.__P = t), e.__c = null), e.__k = e.__k && e.__k.map((function (e) { return jr(e, t, n) }))), e } function Pr(e, t, n) { return e && (e.__v = null, e.__k = e.__k && e.__k.map((function (e) { return Pr(e, t, n) })), e.__c && e.__c.__P === t && (e.__e && n.insertBefore(e.__e, e.__d), e.__c.__e = !0, e.__c.__P = n)), e } function Ir() { this.__u = 0, this.t = null, this.__b = null } function Rr(e) { var t = e.__.__c; return t && t.__a && t.__a(e) } function Dr() { this.u = null, this.o = null } yn.unmount = function (e) { var t = e.__c; t && t.__R && t.__R(), t && !0 === e.__h && (e.type = null), Ar && Ar(e) }, (Ir.prototype = new Rn).__c = function (e, t) { var n = t.__c, r = this; null == r.t && (r.t = []), r.t.push(n); var o = Rr(r.__v), a = !1, i = function () { a || (a = !0, n.__R = null, o ? o(c) : c()) }; n.__R = i; var c = function () { if (!--r.__u) { if (r.state.__a) { var e = r.state.__a; r.__v.__k[0] = Pr(e, e.__c.__P, e.__c.__O) } var t; for (r.setState({ __a: r.__b = null }); t = r.t.pop();)t.forceUpdate() } }, s = !0 === t.__h; r.__u++ || s || r.setState({ __a: r.__b = r.__v.__k[0] }), e.then(i, i) }, Ir.prototype.componentWillUnmount = function () { this.t = [] }, Ir.prototype.render = function (e, t) { if (this.__b) { if (this.__v.__k) { var n = document.createElement("div"), r = this.__v.__k[0].__c; this.__v.__k[0] = jr(this.__b, n, r.__O = r.__P) } this.__b = null } var o = t.__a && jn(In, null, e.fallback); return o && (o.__h = null), [jn(In, null, t.__a ? null : e.children), o] }; var Wr = function (e, t, n) { if (++n[1] === n[0] && e.o.delete(t), e.props.revealOrder && ("t" !== e.props.revealOrder[0] || !e.o.size)) for (n = e.u; n;) { for (; n.length > 3;)n.pop()(); if (n[1] < n[0]) break; e.u = n = n[2] } }; (Dr.prototype = new Rn).__a = function (e) { var t = this, n = Rr(t.__v), r = t.o.get(e); return r[0]++, function (o) { var a = function () { t.props.revealOrder ? (r.push(o), Wr(t, e, r)) : o() }; n ? n(a) : a() } }, Dr.prototype.render = function (e) { this.u = null, this.o = new Map; var t = zn(e.children); e.revealOrder && "b" === e.revealOrder[0] && t.reverse(); for (var n = t.length; n--;)this.o.set(t[n], this.u = [1, 0, this.u]); return e.children }, Dr.prototype.componentDidUpdate = Dr.prototype.componentDidMount = function () { var e = this; this.o.forEach((function (t, n) { Wr(e, n, t) })) }; var Ur = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103, Hr = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, Mr = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, qr = /[A-Z0-9]/g, zr = "undefined" != typeof document, Fr = function (e) { return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/ : /fil|che|ra/).test(e) }; Rn.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach((function (e) { Object.defineProperty(Rn.prototype, e, { configurable: !0, get: function () { return this["UNSAFE_" + e] }, set: function (t) { Object.defineProperty(this, e, { configurable: !0, writable: !0, value: t }) } }) })); var Br = yn.event; function $r() { } function Vr() { return this.cancelBubble } function Gr() { return this.defaultPrevented } yn.event = function (e) { return Br && (e = Br(e)), e.persist = $r, e.isPropagationStopped = Vr, e.isDefaultPrevented = Gr, e.nativeEvent = e }; var Jr = { enumerable: !1, configurable: !0, get: function () { return this.class } }, Yr = yn.vnode; yn.vnode = function (e) { "string" == typeof e.type && function (e) { var t = e.props, n = e.type, r = {}; for (var o in t) { var a = t[o]; if (!("value" === o && "defaultValue" in t && null == a || zr && "children" === o && "noscript" === n || "class" === o || "className" === o)) { var i = o.toLowerCase(); "defaultValue" === o && "value" in t && null == t.value ? o = "value" : "download" === o && !0 === a ? a = "" : "ondoubleclick" === i ? o = "ondblclick" : "onchange" !== i || "input" !== n && "textarea" !== n || Fr(t.type) ? "onfocus" === i ? o = "onfocusin" : "onblur" === i ? o = "onfocusout" : Mr.test(o) ? o = i : -1 === n.indexOf("-") && Hr.test(o) ? o = o.replace(qr, "-$&").toLowerCase() : null === a && (a = void 0) : i = o = "oninput", "oninput" === i && r[o = i] && (o = "oninputCapture"), r[o] = a } } "select" == n && r.multiple && Array.isArray(r.value) && (r.value = zn(t.children).forEach((function (e) { e.props.selected = -1 != r.value.indexOf(e.props.value) }))), "select" == n && null != r.defaultValue && (r.value = zn(t.children).forEach((function (e) { e.props.selected = r.multiple ? -1 != r.defaultValue.indexOf(e.props.value) : r.defaultValue == e.props.value }))), t.class && !t.className ? (r.class = t.class, Object.defineProperty(r, "className", Jr)) : (t.className && !t.class || t.class && t.className) && (r.class = r.className = t.className), e.props = r }(e), e.$$typeof = Ur, Yr && Yr(e) }; var Kr = yn.__r; yn.__r = function (e) { Kr && Kr(e), e.__c }; var Xr = yn.diffed; yn.diffed = function (e) { Xr && Xr(e); var t = e.props, n = e.__e; null != n && "textarea" === e.type && "value" in t && t.value !== n.value && (n.value = null == t.value ? "" : t.value) }; var Zr = function (e, t) { var n = { __c: t = "__cC" + Sn++, __: e, Consumer: function (e, t) { return e.children(t) }, Provider: function (e) { var n, r; return this.getChildContext || (n = [], (r = {})[t] = this, this.getChildContext = function () { return r }, this.shouldComponentUpdate = function (e) { this.props.value !== e.value && n.some((function (e) { e.__e = !0, Un(e) })) }, this.sub = function (e) { n.push(e); var t = e.componentWillUnmount; e.componentWillUnmount = function () { n.splice(n.indexOf(e), 1), t && t.call(e) } }), e.children } }; return n.Provider.__ = n.Consumer.contextType = n }({}), Qr = function (e, t) { return function (n) { var r = t || {}, o = r.shouldForwardProp, a = r.label; var i = function (e, t) { function n(e) { var n = this.props.ref, r = n == e.ref; return !r && n && (n.call ? n(null) : n.current = null), t ? !t(this.props, e) || !r : Sr(this.props, e) } function r(t) { return this.shouldComponentUpdate = n, jn(e, t) } return r.displayName = "Memo(" + (e.displayName || e.name) + ")", r.prototype.isReactComponent = !0, r.__f = !0, r }(function (e) { function t(t) { var n = xr({}, t); return delete n.ref, e(n, t.ref || null) } return t.$$typeof = Lr, t.render = t, t.prototype.isReactComponent = t.__f = !0, t.displayName = "ForwardRef(" + (e.displayName || e.name) + ")", t }((function (t, r) { var a = t || {}, i = a.children, c = a.as; void 0 === c && (c = e); var s = a.style; void 0 === s && (s = {}); var l = function (e, t) { var n = {}; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && -1 === t.indexOf(r) && (n[r] = e[r]); return n }(a, ["children", "as", "style"]), u = l, f = function (e) { var t = rr.context[e.__c], n = _r(nr++, 9); return n.c = e, t ? (null == n.__ && (n.__ = !0, t.sub(rr)), t.props.value) : e.__ }(Zr); return jn(c, Object.assign({}, { ref: r, style: Object.assign({}, n(Object.assign({}, u, { theme: f })), "function" == typeof s ? s(Object.assign({}, u, { theme: f })) : s) }, o ? function (e, t) { return Object.keys(e).filter(t).reduce((function (t, n) { return t[n] = e[n], t }), {}) }(u, o) : u), i) }))); return i.displayName = (a || e) + "💅", i } }("div")((function () { return { display: "flex", alignItems: "center", justifyContent: "center", height: "100vh" } })); function eo(e) { var t = e.displayError; void 0 === t && (t = !0); var n = e.logger; void 0 === n && (n = function () { }); var r = e.children, o = function (e) { var t = _r(nr++, 10), n = pr(); return t.__ = e, rr.componentDidCatch || (rr.componentDidCatch = function (e, r) { t.__ && t.__(e, r), n[1](e) }), [n[0], function () { n[1](void 0) }] }((function (e) { return n(e.message) })); return o[0] && t ? jn(Qr, null, jn("p", null, "An error has occurred, we apologise for the inconvenience. ", jn("br", null), jn("br", null), "We have been notified and will rectify the situation as soon as possible. ", jn("br", null), jn("br", null), "Please try again later or contact support@weglot.com directly.")) : r } var to = [{ name: "default", editorDropdown: !0, editableProps: ["flag_type", "with_flags", "is_dropdown", "with_name", "full_name", "invert_flags", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !0, is_dropdown: !0, invert_flags: !0, flag_type: "rectangle_mat" }, opts: { open_hover: !1, close_outside_click: !1 } } }, { name: "toggle", editableProps: ["color"], defaultValues: { style: { full_name: !1, color: "#3D46FB" } } }, { name: "bubble", editorDropdown: !0, editableProps: ["flag_type", "with_flags", "full_name", "color", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !0, flag_type: "rectangle_mat", color: "#555555" }, opts: { open_hover: !1, close_outside_click: !0 } } }, { name: "vertical_expand", editorDropdown: !0, editableProps: ["with_flags", "full_name", "color", "open_hover", "close_outside_click", "bg_transparent"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !1, flag_type: "square", color: "#3D46FB", bg_transparent: !1 }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "horizontal_expand", editorDropdown: !1, editableProps: ["color", "open_hover", "close_outside_click"], defaultValues: { style: { with_name: !0, with_flags: !1, full_name: !1, flag_type: "square", color: "#3D46FB" }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "underline_edge", editableProps: ["full_name", "color"], maxLanguages: 10, minLanguages: null, defaultValues: { style: { full_name: !1, color: "#FA8072" } } }, { name: "skewed", editorDropdown: !0, editableProps: ["with_flags", "full_name", "color", "open_hover", "close_outside_click", "bg_transparent"], defaultValues: { style: { with_name: !0, with_flags: !0, full_name: !1, flag_type: "square", color: "#3D46FB" }, opts: { open_hover: !0, close_outside_click: !1 } } }, { name: "underline_full", maxLanguages: 10, minLanguages: null, editableProps: ["with_flags", "flag_type", "color"], defaultValues: { style: { full_name: !0, color: "#3D46FB", with_flags: !0, flag_type: "rectangle_mat" } } }].map((function (e) { return Object.assign({}, e, { defaultValues: Object.assign({}, e.defaultValues, { opts: Object.assign({}, e.defaultValues.opts, { is_responsive: !1, display_device: "mobile", pixel_cutoff: 768 }), style: Object.assign({}, e.defaultValues.style, { size_scale: 1 }) }), editableProps: e.editableProps.concat(["is_responsive", "display_device", "pixel_cutoff", "size_scale"]) }) })); function no(e) { var t = function (e) { return void 0 === e && (e = "default"), to.find((function (t) { return t.name === (e || "default") })) }(e), n = t.defaultValues; void 0 === n && (n = {}); var r = n, o = r.style; void 0 === o && (o = {}); var a = r.opts; return void 0 === a && (a = {}), { style: o, opts: a } } var ro = i({ service: "switcher-templates" }), oo = { af: { name: "Afrikaans", flag: "za" }, am: { name: "አማርኛ", flag: "et" }, ar: { name: "العربية", flag: "sa" }, az: { name: "Azərbaycan dili", flag: "az" }, ba: { name: "башҡорт теле", flag: "ru" }, be: { name: "Беларуская", flag: "by" }, bg: { name: "Български", flag: "bg" }, bn: { name: "বাংলা", flag: "bd" }, br: { name: "Português Brasileiro", flag: "br" }, bs: { name: "Bosanski", flag: "ba" }, ca: { name: "Català", flag: "es-ca" }, co: { name: "Corsu", flag: "fr-co" }, cs: { name: "Čeština", flag: "cz" }, cy: { name: "Cymraeg", flag: "gb-wls" }, da: { name: "Dansk", flag: "dk" }, de: { name: "Deutsch", flag: "de" }, el: { name: "Ελληνικά", flag: "gr" }, en: { name: "English", flag: "gb" }, eo: { name: "Esperanto", flag: "eo" }, es: { name: "Español", flag: "es" }, et: { name: "Eesti", flag: "ee" }, eu: { name: "Euskara", flag: "eus" }, fa: { name: "فارسی", flag: "ir" }, fi: { name: "Suomi", flag: "fi" }, fj: { name: "Vosa Vakaviti", flag: "fj" }, fl: { name: "Filipino", flag: "ph" }, fr: { name: "Français", flag: "fr" }, fy: { name: "frysk", flag: "nl" }, ga: { name: "Gaeilge", flag: "ie" }, gd: { name: "Gàidhlig", flag: "gb-sct" }, gl: { name: "Galego", flag: "es-ga" }, gu: { name: "ગુજરાતી", flag: "in" }, ha: { name: "هَوُسَ", flag: "ne" }, he: { name: "עברית", flag: "il" }, hi: { name: "हिंदी", flag: "in" }, hr: { name: "Hrvatski", flag: "hr" }, ht: { name: "Kreyòl ayisyen", flag: "ht" }, hu: { name: "Magyar", flag: "hu" }, hw: { name: "‘Ōlelo Hawai‘i", flag: "hw" }, hy: { name: "հայերեն", flag: "am" }, id: { name: "Bahasa Indonesia", flag: "id" }, ig: { name: "Igbo", flag: "ne" }, is: { name: "Íslenska", flag: "is" }, it: { name: "Italiano", flag: "it" }, ja: { name: "日本語", flag: "jp" }, jv: { name: "Wong Jawa", flag: "id" }, ka: { name: "ქართული", flag: "ge" }, kk: { name: "Қазақша", flag: "kz" }, km: { name: "ភាសាខ្មែរ", flag: "kh" }, kn: { name: "ಕನ್ನಡ", flag: "in" }, ko: { name: "한국어", flag: "kr" }, ku: { name: "كوردی", flag: "iq" }, ky: { name: "кыргызча", flag: "kg" }, la: { name: "Latine", flag: "it" }, lb: { name: "Lëtzebuergesch", flag: "lu" }, lo: { name: "ພາສາລາວ", flag: "la" }, lt: { name: "Lietuvių", flag: "lt" }, lv: { name: "Latviešu", flag: "lv" }, lg: { name: "Oluganda", flag: "ug" }, mg: { name: "Malagasy", flag: "mg" }, mi: { name: "te reo Māori", flag: "nz" }, mk: { name: "Македонски", flag: "mk" }, ml: { name: "മലയാളം", flag: "in" }, mn: { name: "Монгол", flag: "mn" }, mr: { name: "मराठी", flag: "in" }, ms: { name: "Bahasa Melayu", flag: "my" }, mt: { name: "Malti", flag: "mt" }, my: { name: "မျန္မာစာ", flag: "mm" }, ne: { name: "नेपाली", flag: "np" }, nl: { name: "Nederlands", flag: "nl" }, no: { name: "Norsk", flag: "no" }, ny: { name: "chiCheŵa", flag: "mw" }, pa: { name: "ਪੰਜਾਬੀ", flag: "in" }, pl: { name: "Polski", flag: "pl" }, ps: { name: "پښت", flag: "af" }, pt: { name: "Português", flag: "pt" }, ro: { name: "Română", flag: "ro" }, ru: { name: "Русский", flag: "ru" }, sd: { name: '"سنڌي، سندھی, सिन्धी"', flag: "pk" }, si: { name: "සිංහල", flag: "lk" }, sk: { name: "Slovenčina", flag: "sk" }, sl: { name: "Slovenščina", flag: "si" }, sm: { name: '"gagana fa\'a Samoa"', flag: "ws" }, sn: { name: "chiShona", flag: "zw" }, so: { name: "Soomaaliga", flag: "so" }, sq: { name: "Shqip", flag: "al" }, sr: { name: "Српски", flag: "rs" }, st: { name: "seSotho", flag: "ng" }, su: { name: "Sundanese", flag: "sd" }, sv: { name: "Svenska", flag: "se" }, sw: { name: "Kiswahili", flag: "ke" }, ta: { name: "தமிழ்", flag: "in" }, te: { name: "తెలుగు", flag: "in" }, tg: { name: "Тоҷикӣ", flag: "tj" }, th: { name: "ภาษาไทย", flag: "th" }, tl: { name: "Tagalog", flag: "ph" }, to: { name: "faka-Tonga", flag: "to" }, tr: { name: "Türkçe", flag: "tr" }, tt: { name: "Tatar", flag: "tr" }, tw: { name: "中文 (繁體)", flag: "tw" }, ty: { name: '"te reo Tahiti, te reo Māʼohi"', flag: "pf" }, uk: { name: "Українська", flag: "ua" }, ur: { name: "اردو", flag: "pk" }, uz: { name: '"O\'zbek"', flag: "uz" }, vi: { name: "Tiếng Việt", flag: "vn" }, xh: { name: "isiXhosa", flag: "za" }, yi: { name: "ייִדיש", flag: "il" }, yo: { name: "Yorùbá", flag: "ng" }, zh: { name: "中文 (简体)", flag: "cn" }, zu: { name: "isiZulu", flag: "za" }, hm: { name: "Hmoob", flag: "hmn" }, cb: { name: "Sugbuanon", flag: "ph" }, or: { name: "ଓଡ଼ିଆ", flag: "in" }, tk: { name: "Türkmen", flag: "tr" }, ug: { name: "ئۇيغۇر", flag: "uig" }, fc: { name: "Français (Canada)", flag: "ca" }, as: { name: "অসমীয়া", flag: "in" }, sa: { name: "Srpski", flag: "rs" }, om: { name: "Afaan Oromoo", flag: "et" }, iu: { name: "ᐃᓄᒃᑎᑐᑦ", flag: "ca" }, ti: { name: "ቲግሪንያ", flag: "er" }, bm: { name: "Bamanankan", flag: "ml" }, bo: { name: "བོད་ཡིག", flag: "cn" }, ak: { name: "Baoulé", flag: "gh" }, rw: { name: "Kinyarwanda", flag: "rw" } }; function ao(e) { if (!e || !e.toLowerCase) return "Unknown"; var t = e.toLowerCase(), n = xt.languages.find((function (e) { var n = e.language_to, r = e.custom_code; return n === t || (r ? r.toLowerCase() === t : void 0) })); return n && n.custom_local_name ? n.custom_local_name : n && n.custom_name ? n.custom_name : t === xt.language_from && xt.language_from_custom_name ? xt.language_from_custom_name : oo[t].name } function io(e, t) { return t[e] ? t[e].flag : "" } function co(e) { return function (e, t, n) { if (!e || !e.toLowerCase) return ""; if (t.language_from === e) return t.language_from_custom_flag || io(e, n); var r = e.toLowerCase(), o = t.languages.find((function (e) { var t = e.language_to, n = e.custom_code; return t === r || n && n.toLowerCase() === r })); return o ? o.custom_flag || io(o.language_to, n) : "" }(e, xt, oo) } function so(e, t, n) { return t < e ? e : t > n ? n : t } function lo(e, t) { return t && 1 !== t ? Math.round(e * t * 100) / 100 : e } function uo(e, t) { return "WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? t(xt.injectedData.switcher_links[e]) : tt(e, t) } var fo = 13, go = 27, _o = 38, po = 40; var ho = ["none", "shiny", "square", "circle", "rectangle_mat"]; function mo(e) { return e ? e.getBoundingClientRect() : { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0 } } function vo() { var e = pr("WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? xt.injectedData.current_language : xt.switcher_editor ? xt.language_from : window.Weglot.getCurrentLang()), t = e[0], n = e[1]; return hr((function () { xt.is_connect || "WordPress" === xt.technology_name || xt.switcher_editor || window.Weglot.on("languageChanged", (function (e) { n(e) })) }), []), [t, n] } function wo(e, t) { var n = window.innerWidth > 0 ? window.innerWidth : screen.width, r = t || 768; return "mobile" === e ? n <= r : n > r } function yo(e, t, n) { var r = pr(!1), o = r[0], a = r[1]; return hr((function () { var r = e.size_scale; if ("default" !== n || r && 1 !== r) { var o, i, c, s, l, u = (o = t(e), i = n, c = xt.button_style && xt.button_style.custom_css, s = "default" === i, l = o.map((function (e) { var t = e.selector, n = e.declarations; return [(s ? "aside.country-selector" : "") + ".weglot_switcher." + i + t + " {", Object.keys(n).map((function (e) { return "\t" + e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase() + ": " + n[e] + ";" })).join("\n"), "}"].join("\n") })).join("\n\n"), !c || xt.switcher_gallery ? l : l + "\n\n" + c); !function (e, t) { if (e) { var n = document.querySelector("style#weglot-switcher-" + t); if (n) n.textContent = e; else { var r = document.createElement("style"); r.id = "weglot-switcher-" + t, r.textContent = e, document.head.appendChild(r) } } }(u, n), a(!0) } }), []), o } function bo(e) { var t = e.close_outside_click; void 0 === t && (t = !1); var n = e.open_hover; void 0 === n && (n = !1); var r = vo(), o = r[0], a = r[1], i = pr(!1), c = i[0], s = i[1], l = function (e) { var t = mr(null); return hr((function () { if (e) return document.addEventListener("mousedown", n), function () { document.removeEventListener("mousedown", n) }; function n(n) { t.current && !t.current.contains(n.target) && e() } }), [t]), t }(t && !n && E), f = mr(null), d = rn().filter((function (e) { return e !== o })), g = pr(null), _ = g[0], p = g[1], h = pr(!1), m = h[0], v = h[1], w = pr(!1), y = w[0], b = w[1]; function k() { var e = mo(l.current), t = e.bottom; void 0 === t && (t = 0); var n = e.left; void 0 === n && (n = 0), b(t > window.innerHeight / 2), v(n > window.innerWidth / 2), s(!0) } function E() { s(!1), p(null) } function C() { return c ? E() : k() } function x(e) { if (xt.switcher_editor) return s(!1); var t; a(e), t = e, "WordPress" === xt.technology_name && xt.injectedData && !xt.is_connect ? uo(t, (function (e) { u(window.location.hostname) ? window.dispatchEvent(new CustomEvent("veLanguageChangeUrl", { detail: { targetUrl: e } })) : window.location.replace(e) })) : window.Weglot.switchTo(t), s(!1) } return hr((function () { _ && f.current.scrollIntoView({ block: "center" }) }), [_]), { open: c, opensUpward: y, opensLeftward: m, language: o, otherLanguages: d, focusedLanguage: _, switcherContainerRef: l, focusedLanguageRef: f, handleMouseEnter: function () { n && k() }, handleMouseLeave: function () { n && E() }, handleKeyDown: function (e) { return e.keyCode === fo ? (e.preventDefault(), _ && x(_), C()) : e.keyCode === po || e.keyCode === _o ? (e.preventDefault(), void function (e) { var t = e === po ? "down" : "up", n = d.slice(-1).pop(), r = d[0], o = mo(l.current).bottom; void 0 === o && (o = 0); var a = o > window.innerHeight / 2; if (!_ || !c) { return p("down" === t ? r : n), void (!c && ("up" === t && a || "down" === t && !a) && k()) } if (!a && "up" === t && _ === r || a && "down" === t && _ === n) return void C(); var i = "up" === t ? -1 : 1, s = d.indexOf(_) + i; if (s === d.length || -1 === s) return; p(d[s]) }(e.keyCode)) : void (e.keyCode === go && c && (e.preventDefault(), C())) }, switchLanguage: x, toggleOpen: C } } var ko = { rectangle_mat: { width: 30, height: 20 }, shiny: { width: 30, height: 20 }, circle: { width: 24, height: 24 }, square: { width: 24, height: 24 } }, Eo = function (e) { var t = e.language, n = e.flagType; void 0 === n && (n = "circle"); var r = e.size_scale, o = co(t), a = ko[n] || {}, i = a.width, c = a.height; if (o) return jn("img", { src: o.indexOf("http") > -1 ? o : "https://cdn.weglot.com/flags/" + n + "/" + o + ".svg", width: lo(i, r), height: lo(c, r), className: "wg-flag", role: "none", alt: ao(t) + " flag" }) }, Co = function (e) { var t = e.styleOpts, n = e.language, r = e.onClick, o = e.legacyFlags, a = e.open; void 0 === a && (a = !1); var i = e.url, c = e.focusedLanguage, s = e.isSelected; void 0 === s && (s = !1); var l = e.focusRef; void 0 === l && (l = null); var u = t.with_name; void 0 === u && (u = !0); var f = t.full_name; void 0 === f && (f = !0); var d = t.with_flags, g = t.size_scale, _ = t.flag_type, p = !!c && n === c, h = f ? ao(n) : n.toUpperCase(), m = s ? "div" : "li", v = ho.indexOf(_ || "rectangle_mat"), w = d ? " wg-flags" + (o ? " flag-" + v + " legacy" : "") : "", y = p && !s ? " focus" : "", b = s ? " wgcurrent" : ""; return jn(m, Object.assign({}, { "data-l": n, onClick: function (e) { return function (e, t) { e.preventDefault(), r(t) }(e, n) }, className: "wg-li " + n + b + w + y }, s ? { role: "combobox", "aria-activedescendant": c ? "weglot-language-" + c : "", "aria-label": "Language", tabindex: "0", "aria-expanded": a, "aria-controls": "weglot-listbox" } : { role: "none", id: "wg-" + n }), jn("a", Object.assign({}, s ? { target: "_self" } : { role: "option" }, { href: i }, !u && { "aria-label": h }, p && !s && { ref: l }, { id: "weglot-language-" + n, tabIndex: -1 }), d && !o && jn(Eo, { language: n, flagType: _, size_scale: g }), u && h)) }; function xo(e) { var t = e.size_scale, n = function (e) { return lo(e, t) }; return [{ selector: ".wg-drop ul", declarations: { top: n(38) + "px", bottom: "auto" } }, { selector: ".wg-drop.weg-openup ul", declarations: { bottom: n(38) + "px", top: "auto" } }, { selector: " a", declarations: { fontSize: n(13) + "px" } }, { selector: ".wg-drop a img.wg-flag", declarations: { height: n(30) + "px" } }, { selector: ".wg-drop .wg-li.wgcurrent", declarations: { height: n(38) + "px", display: "flex", alignItems: "center" } }, { selector: ".wg-drop a", declarations: { height: n(38) + "px" } }, { selector: " .wgcurrent:after", declarations: { height: n(38) + "px", backgroundSize: n(9) + "px" } }, { selector: ".wg-drop .wgcurrent a", declarations: { paddingRight: so(22, n(40), 40) + "px", paddingLeft: so(5, n(10), 10) + "px" } }] } var So, Oo, No, Lo = "default", To = function (e, t) { return function (n) { var r = n || {}, o = r.style; void 0 === o && (o = {}); var a = r.opts; void 0 === a && (a = {}); var i = no(t), c = i.style, s = i.opts, l = document.createElement("div"); return function (e, t, n) { var r, o, a; yn.__ && yn.__(e, t), o = (r = "function" == typeof n) ? null : n && n.__k || t.__k, a = [], Yn(t, e = (!r && n || t).__k = jn(In, null, [e]), o || On, On, void 0 !== t.ownerSVGElement, !r && n ? [n] : o ? null : t.firstChild ? wn.call(t.childNodes) : null, a, !r && n ? n : o ? o.__e : t.firstChild, r), Kn(a, e) }(jn(eo, { logger: ro.error, displayError: !1 }, jn(e, { style: Object.assign({}, c, o), opts: Object.assign({}, s, a) })), l), l.classList.add("weglot-container"), l } }((function (e) { var t = e.style, n = e.opts, r = bo(n), o = r.open, a = r.opensUpward, i = r.opensLeftward, c = r.language, s = r.focusedLanguage, l = r.switcherContainerRef, u = r.focusedLanguageRef, f = r.handleMouseEnter, d = r.handleMouseLeave, g = r.handleKeyDown, _ = r.switchLanguage, p = r.toggleOpen, h = function () { var e = rn(), t = pr(e.reduce((function (e, t) { var n; return Object.assign({}, e, ((n = {})[t] = "", n)) }), {})), n = t[0], r = t[1]; return hr((function () { Promise.all(e.map((function (e) { return new Promise((function (t) { return uo(e, (function (n) { return t({ l: e, url: n }) })) })) }))).then((function (e) { return r(e.reduce((function (e, t) { var n, r = t.l, o = t.url; return Object.assign({}, e, ((n = {})[r] = o, n)) }), {})) })) }), []), n }(), m = function (e) { var t = e.is_responsive, n = e.display_device, r = e.pixel_cutoff, o = pr(!t || wo(n, r)), a = o[0], i = o[1], c = function () { return i(wo(n, r)) }; return hr((function () { if (t) return window.addEventListener("resize", c), function () { window.removeEventListener("resize", c) } }), [t, n, r]), a }(n); yo(t, xo, Lo); var v = xt.switcher_editor, w = t.is_dropdown, y = t.invert_flags, b = w || y, k = rn().filter((function (e) { return !b || e !== c })), E = /background-position/i.test(xt.button_style.custom_css) && !xt.languages.some((function (e) { return e.custom_flag })), C = function () { for (var e, t, n = arguments, r = 0, o = ""; r < arguments.length;)(e = n[r++]) && (t = tr(e)) && (o && (o += " "), o += t); return o }({ open: o, closed: !o, "wg-drop": w, "wg-list": !w, "weg-openup": a && o, "weg-openleft": i && o, "wg-editor": v }); return m ? jn("aside", { ref: l, "data-wg-notranslate": !0, onKeyDown: g, onMouseEnter: f, onMouseLeave: d, className: "weglot_switcher wg-mouse-click country-selector default " + C, "aria-label": "Language selected: " + ao(c) }, b && jn(Co, { styleOpts: t, open: o, focusedLanguage: s, language: c, isSelected: !0, onClick: p, legacyFlags: E, url: "#" }), jn("ul", { role: "listbox", id: "weglot-listbox", style: !o && t.is_dropdown && { display: "none" } }, k.map((function (e) { return jn(Co, { language: e, url: e === c ? "#" : h[e], onClick: _, isSelected: e === c, focusedLanguage: s, key: "wg-" + e, focusRef: u, styleOpts: t, legacyFlags: E }) })))) : jn(In, null) }), Lo), Ao = 0, jo = []; function Po(e, t) { if (void 0 === t && (t = document.documentElement), e && !e.ready) { var n = e.style || xt.button_style, r = e.location; void 0 === r && (r = {}); var o = function (e, t) { void 0 === e && (e = {}); var n = e.target, r = e.sibling; if (!n) return { defaultPosition: !0 }; var o = ue(t, n); if (!o.length) return { error: ye(n) ? "The provided target is not on this page." : "The provided target is not a valid CSS selector." }; var a = ue(t, r); if (!r || !a.length) return { targetNode: o[0], siblingNode: null }; var i = Array.from(o), c = Array.from(a), s = null, l = c.find((function (e) { return s = i.find((function (t) { return e.parentNode === t })), !!s })); return l && s ? { targetNode: s, siblingNode: l } : { error: "The provided sibling selector does not belong to target element." } }(r, t), a = o.error, i = o.targetNode, c = o.siblingNode, s = o.defaultPosition; if (!a) { var l = To(Object.assign({}, e, !xt.switcher_editor && { style: n })); if (l.weglotSwitcher = e, jo.push(l), s) return l.classList.add("wg-default"), document.body.appendChild(l), e.ready = !0, l; l.setAttribute("data-switcher-id", String(++Ao)), l.id = "weglot-switcher-" + Ao, l.setAttribute("data-switcher-style-opt", JSON.stringify(n)), i.insertBefore(l, c), e.ready = !0; for (var u = 0, f = t.querySelectorAll(".weglot-container:empty"); u < f.length; u += 1) { _e(f[u]) } return l } M.warn(a, { sendToDatadog: !1 }) } } function Io(e) { var t = e.name, n = e.hash, r = e.interactive; if (void 0 === r && (r = !1), fe(document.documentElement, "script#weglot-switcher-" + t)) return !1; var o = !xt.switcher_editor && n ? t + "." + n : t, a = document.getElementsByTagName("head")[0] || document.documentElement, i = document.createElement("script"); return i.type = "text/javascript", i.src = "https://cdn.weglot.com/switchers/" + o + ".min.js", i.id = "weglot-switcher-" + t, r && i.setAttribute("interactive", "true"), a.insertBefore(i, a.firstChild), !0 } function Ro() { So || Pe("switchersReady", ze()), So = !0, clearTimeout(No), Oo && Oo.parentNode.removeChild(Oo) } function Do(e) { if (void 0 === e && (e = document), !(rn().length < 2 || xt.hide_switcher)) { var t = e.isConnected ? e : document; (function (e) { void 0 === e && (e = document.body); var t = xt.linkHooksConfig && xt.linkHooksConfig.additionalCheckSelectors || []; if (0 !== ue(e, ['a[href^="#Weglot-"]', 'a[href*="change-language.weglot.com/"]'].concat(t).join(",")).length) { for (var n = rn(), r = ze(), o = !1, a = [], i = function () { var t = s[c], n = ue(e, vn(t)); if (0 !== n.length) { o = !0; for (var i = function () { var e = u[l]; e.setAttribute($, ""), e.classList.add("weglot-link", "weglot-link-" + t), t === r && (e.classList.add("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.onLinkActive && xt.linkHooksConfig.onLinkActive(e)), tt(t, (function (t) { return e.setAttribute("href", t) })), e.addEventListener("click", (function (e) { e.preventDefault(), e.stopPropagation(), ia(t) })) }, l = 0, u = n; l < u.length; l += 1)i(); a.push({ language: t, links: n }) } }, c = 0, s = n; c < s.length; c += 1)i(); return je("languageChanged", (function (e) { for (var t = 0, n = a; t < n.length; t += 1) { var r = n[t], o = r.language, i = r.links; if (o === e) for (var c = 0, s = i; c < s.length; c += 1) { var l = s[c]; l.classList.add("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.onLinkActive && xt.linkHooksConfig.onLinkActive(l) } else for (var u = 0, f = i; u < f.length; u += 1) { var d = f[u]; d.classList.remove("weglot-link--active"), xt.linkHooksConfig && xt.linkHooksConfig.offLinkActive && xt.linkHooksConfig.offLinkActive(d) } } }), !0), o } })(t) && Ro(); var n = t.querySelectorAll("#weglot_here:not(.weglot-container),.weglot_here:not(.weglot-container)"); if (n.length) { for (var r = 0, o = n; r < o.length; r += 1) { var a = o[r], i = To({ style: xt.button_style }); i.classList.add("weglot_here"), a.parentNode.insertBefore(i, a), _e(a) } Ro() } for (var c = 0, s = xt.switchers; c < s.length; c += 1) { var l = s[c]; if (!l.default) { var u = l.template; if (u) { if (u.name) { if (!Io(u)) { var f = window.Weglot.switchers && window.Weglot.switchers[u.name]; f && f.addSwitchers(t) } Ro() } } else Po(l, t) && Ro() } } if (!So && !Oo) { var d = xt.switchers.find((function (e) { return e.default })) || { style: xt.button_style }; No = setTimeout((function () { Oo = Po(d), Pe("switchersReady", ze()) })) } } } je("onCurrentLocationChanged", (function () { jo.forEach((function (e) { return e.parentNode && e.parentNode.removeChild(e) })), jo.splice(0), function () { for (var e = window.Weglot.switchers || {}, t = 0, n = Object.keys(e); t < n.length; t += 1)e[n[t]].removeSwitchers() }(), So = null, Oo = null, Ao = 0, xt.button_style.ready = !1, xt.switchers.map((function (e) { return e.ready = !1 })), Do() }), !0); var Wo = 0; function Uo() { var e = ["name", "value"]; xt.translate_event.forEach((function (t) { for (var n = ue(document.body, t.selector), r = function () { var n = a[o]; if (n.alreadyListeningEventInput) return !n.alreadyListeningEventInput.isConnected && Wo < 10 && (Wo++, n.parentNode.insertBefore(n.alreadyListeningEventInput, n.nextSibling)), {}; var r = n.cloneNode(!0); if (!r) return {}; r.name = "", n.alreadyListeningEventInput = r, n.parentNode.insertBefore(r, n.nextSibling), n.style.display = "none", new MutationObserver((function (t) { for (var o = 0, a = t; o < a.length; o += 1) { var i = a[o], c = n.getAttribute(i.attributeName); e.includes(i.attributeName) && r.setAttribute(i.attributeName, c) } })).observe(n, { attributes: !0 }); var i = Ee((function (e) { 13 === e.keyCode && e.target.form ? e.target.form.dispatchEvent(new Event("submit")) : gn(e.target.value, (function (e) { Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set.call(n, e); var r = t.eventName || n.getAttribute("data-wg-translate-event"), o = document.createEvent("HTMLEvents"); o.initEvent("focus", !0, !1), n.dispatchEvent(o), o.initEvent(r, !0, !1), n.dispatchEvent(o) })) }), 400); r.addEventListener("keydown", i) }, o = 0, a = n; o < a.length; o += 1) { var i = r(); if (i) return i.v } })) } try { var Ho = Element.prototype.attachShadow; Element.prototype.attachShadow = function (e) { var t = Ho.call(this, e); return Mo([this]), t } } catch (mr) { } function Mo(e) { if (xt.translate_shadow_roots) { e || (e = ue(document, xt.dynamics.map((function (e) { return e.value })).join(","))); for (var t = 0, n = e; t < n.length; t += 1) { var r = n[t]; if (r.shadowRoot && !r.shadowRoot.wgTranslated) { r.shadowRoot.wgTranslated = !0, Ko(r.shadowRoot); var o = Ft(r.shadowRoot); o.length && ($t(o), na(o)) } } } } var qo, zo = null, Fo = [], Bo = [$, "class", "id"], $o = [], Vo = []; function Go(e, t) { qo && clearTimeout(qo); for (var n = 0, r = t; n < r.length; n += 1) { var o = r[n]; 1 === o.nodeType && Fo.push(o) } Fo.length && (qo = setTimeout((function () { Do(e), Uo(), xt.subdomain && function (e) { var t = window.location.hostname; if (-1 !== [xt.host].concat(l).indexOf(t)) return; for (var n = 0, r = e; n < r.length; n += 1)for (var o = r[n], a = 0, i = ue(o, "[href]"); a < i.length; a += 1) { var c = i[a]; if (!v(c)) { var s = c.getAttribute("href"); s && s.includes("//" + xt.host) && c.setAttribute("href", s.replace(xt.host, t)) } } }(Fo), xt.proxify_iframes && xt.proxify_iframes.length && Fo.forEach((function (e) { return pn({ node: e }) })), Mo(Fo), Oe("onDynamicDetected"), Fo = [] }), 100)) } function Jo(e, t) { var n = xt.dynamics, r = Xo; t !== document ? r = function () { return !0 } : n && 0 !== n.length || (r = function () { return !1 }); try { if (nn()) return; if (e = function (e, t) { var n = [], r = e.filter((function (e) { var r = e.addedNodes, o = e.type, a = e.target; "attributes" === o && function (e) { "IMG" === e.nodeName && e.srcset && e.dataset.wgtranslated && (e.setAttribute("wgsrcset", e.srcset), e.srcset = "") }(a); var i = function (e) { do { if (e.weglot && e.weglot.setted) return e; e = e.parentElement || e.parentNode } while (e) }(a); return i ? (n.push(i), !1) : r.length ? (setTimeout((function () { return Go(a, r) })), !zo || !a || !de(a, zo)) : !Bo.includes(e.attributeName) && t(a) && ("characterData" === o || "attributes" === o) })); if (n.length) for (var o = 0, a = n; o < a.length; o += 1) { a[o].weglot.setted = !1 } return r }(e, r), !n || 0 === n.length) return; if (e.length) try { !function (e, t, n) { void 0 === n && (n = !0); for (var r = [], o = function (e) { var n = e.outerHTML || e.textContent; if (e.wgParsed !== n) { e.wgParsed = n; for (var o = Ft(e, (function (e) { var n = e.element; return !function (e) { return e.weglot && e.weglot.dynamic > 20 }(n) && t(n) })), a = 0, i = o; a < i.length; a += 1) { var c = i[a]; xt.ignoreDynamicFragments && !document.body.contains(c) || (c.weglot.dynamic || (c.weglot.dynamic = 0), c.weglot.dynamic++, r.push(c)) } } }, a = [], i = 0, c = e; i < c.length; i += 1) { var s = c[i], l = s.type, u = s.target, f = s.addedNodes; switch (l) { case "attributes": case "characterData": if (a.includes(u)) break; a.push(u), o(u); break; case "childList": var d = f.length > 1 ? u : f[0]; if (a.includes(d)) break; if (o(d), a.push(d), !n) break; for (var g = 0, _ = f; g < _.length; g += 1) { var p = _[g], h = []; "IFRAME" === p.tagName ? h = [p] : p.querySelectorAll && (h = p.querySelectorAll("iframe")); for (var m = 0; m < h.length; m++) { var w = h[m]; t(w) && Ce(w) && !v(w) && (o(w.contentWindow.document), Ko(w.contentWindow.document)) } } } } r.length && ($t(r), na(r)) }(e, r) } catch (e) { M.warn(e) } } catch (e) { M.warn(e, { consoleOverride: "Error in MutationObserver" }) } } var Yo = !1; function Ko(e) { var t = e !== document ? e : e.body || e, n = new MutationObserver((function (t) { var n; if (Yo) Jo(t, e); else { var r = $o.find((function (t) { return t.documentElement === e })); r ? (n = r.mutations).push.apply(n, t) : $o.push({ documentElement: e, mutations: [].concat(t) }) } })); n.observe(t, { childList: !0, subtree: !0, characterData: !0, attributes: !0 }), Vo.push(n) } function Xo(e) { return !(!xt.dynamics || 0 === xt.dynamics.length) && (e && e.closest || (e = e.parentNode), e && e.closest && de(e, xt.dynamics.map((function (e) { return e.value })).join(", "))) } var Zo, Qo, ea, ta = { times: [], timeout: null, nodes: [] }; function na(e) { void 0 === e && (e = []), clearTimeout(ta.timeout); var t = ze(); if (t !== xt.language_from) { if (ta.times = ta.times.filter((function (e) { return e > Date.now() - 1e3 })), ta.times.length && (ta.timeout || ta.times.length >= 10)) return ta.nodes = ta.nodes.concat(e), void (ta.timeout = setTimeout((function () { return na() }), 1e3)); ta.timeout = null, ta.times.push(Date.now()); var n = ta.nodes.concat(e); return ta.nodes = [], dn(Vt(n), t, { title: !1, cdn: !0, nodes: n }).then((function (e) { return Gt(e, t, n) })) } } function ra() { var e = ge("wg_progress").firstElementChild, t = e.getAttribute("aria-valuenow"), n = parseInt(t) + (4 * Math.random() + 2); n <= 100 && (e.setAttribute("aria-valuenow", n.toString()), e.style.width = n + "%") } function oa(e) { clearInterval(e), _e(ge("wg_progress")) } function aa(e, t, n) { if (n || !e || window.top !== window || !sa(e)) { var r = []; try { $t(r = Ft()) } catch (e) { M.warn(e) } var o = nn(); if (e && t && !o && un(e), !xt.is_connect || xt.dynamicPushState || !o && e !== xt.language_from ? function (e) { void 0 === e && (e = !0); var t = xt.excluded_blocks, n = xt.is_connect; if (Yo = e) if (zo = t && t.length && t.map((function (e) { return e.value })).join(","), n && $o.length > 0) for (var r = function () { var e = a[o], t = e.mutations, n = e.documentElement, r = function () { var e = t.splice(0, 100); e.length > 0 && (Jo(e, n), setTimeout(r, 0)) }; r() }, o = 0, a = $o; o < a.length; o += 1)r(); else $o = [] }() : function () { if (0 !== Vo.length) { for (var e = 0, t = Vo; e < t.length; e += 1)t[e].disconnect(); $o = [] } }(), n || o) ca(e); else if (xt.is_connect && !o && Oe("onConnectPageLoad", e), xt.force_translation) { for (var a = [], i = 0, c = r; i < c.length; i += 1) { var s = c[i]; (s.closest && s.closest(xt.force_translation) || !s.closest && s.parentNode && s.parentNode.closest && s.parentNode.closest(xt.force_translation)) && a.push(s) } na(a) } o && !o.language_button_displayed && o.allExcluded || Do(), o || (xt.remove_unused_link_hooks && function () { var e = rn(), t = xt.languages.map((function (e) { return e.custom_code || e.language_to })).filter((function (t) { return !e.includes(t) })); 1 === e.length && t.push(xt.language_from); for (var n = t.map((function (e) { return vn(e) })).join(","), r = 0, o = ue(document, n); r < o.length; r += 1)_e(o[r]) }(), Mo(), Uo(), function () { window.addEventListener("message", mn, !1); var e = xt.translate_iframes; if (e) for (var t = 0, n = ue(document.body, e); t < n.length; t += 1) { var r = n[t]; r.contentWindow && _n.push(r.contentWindow) } pn({}), Se("onPageLanguageSet", hn), "with-window-top" === me() && window.top.postMessage({ message: "Weglot.iframe" }, "*") }(), ["alert"].forEach((function (e) { var t = window[e]; window[e] = function () { var e = arguments; if ("string" == typeof arguments[0]) { var n = ze(); return xt.language_from === n ? t.apply(window, arguments) : dn([{ t: 2, w: arguments[0] }], n, { title: !1, cdn: !0 }).then((function (n) { return e[0] = n.to_words[0], t.apply(window, e) })) } } }))), Pe("initialized", e) } } function ia(e) { var t = ze(); e !== t && (xt.visual_editor ? tt(e, (function (n) { if ("#" === n) return ca(e, t); window.dispatchEvent(new CustomEvent("veLanguageChangeUrl", { detail: { targetUrl: n } })) })) : ca(e, t)) } function ca(e, t) { if (!rn().includes(e)) return fn(), void M.warn(e + " isn't a language you have added", { sendToDatadog: !1 }); xt.auto_switch && sn(e); var n = nn(); if (xt.is_connect || n || un(e), !sa(e)) { if (xt.loading_bar) var r = function () { try { var e = document.createElement("div"); return e.className = "wg-progress", e.id = "wg_progress", e.innerHTML = '<div class="wg-progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0"></div>', document.body.appendChild(e), setInterval(ra, 100) } catch (e) { } }(); if (function (e) { var t = he("lang"); if (t && t !== e) { var n = window.location.search.replace("lang=" + t, "lang=" + e); try { window.history.replaceState(null, "", window.location.pathname + n) } catch (e) { } } De = e }(e), nn()) return fn(), void oa(r); if (e === xt.language_from) return Oe("onPageLanguageSet", e), fn(), Gt(null, e), xt.loading_bar && oa(r), document.documentElement.setAttribute("lang", e), void Pe("languageChanged", e, t || ""); dn(Vt(), e).then((function (n) { fn(), Gt(n, e), document.documentElement.setAttribute("lang", e), Pe("languageChanged", e, t || ""), xt.loading_bar && oa(r) })).catch((function (e) { throw xt.loading_bar && oa(r), fn(), Ve().removeItem(F), e })), Oe("onPageLanguageSet", e) } } function sa(e) { return !(!xt.is_connect || ze() === e) && (!xt.host || xt.previewHash && window.location.hostname.includes(z) || function () { if (xt.subdirectory) return [xt.host].concat(l); return xt.languages.map((function (e) { return e.connect_host_destination && e.connect_host_destination.host })).concat([xt.host].concat(l)) }().includes(window.location.hostname) ? (tt(e, (function (e) { return window.location.replace(e) })), !0) : (me() || M.warn('"' + window.location.hostname + '" is not configured with Weglot. Please contact support@weglot.com', { sendToDatadog: !1 }), !1)) } je("initialized", (function () { xt.translate_search && !xt.switcher_editor && function () { var e = xt.search_forms, t = xt.search_parameter; if (t) { for (var n = 0, r = ue(document, e); n < r.length; n += 1) { var o = r[n]; o.addEventListener("submit", (function (e) { e.preventDefault(); var n = e.target.elements[t].value; gn(n, (function (e) { Le.set("wg-search-form", n), o.elements[t].value = e, o.submit() })) })); var a = void 0; -1 !== window.location.search.indexOf(t + "=") && o.elements && o.elements[t] && (a = Le.get("wg-search-form")) && (o.elements[t].value = a) } Le.erase("wg-search-form") } else M.warn("Search parameter name required for search translation.", { sendToDatadog: !1 }) }() }), !0); var la = !1; function ua() { window.addEventListener("message", ga, !1); var e = document.createElement("meta"); e.name = "google", e.content = "notranslate", document.head && document.head.appendChild(e); document.documentElement && -1 === ["cms.e.jimdo.com", "proxy.weglot.com"].indexOf(window.location.host) && document.documentElement.setAttribute("translate", "no"); var t = document.head.querySelector("link[href*=weglot_shopify]"); t && document.head.removeChild(t) } function fa() { if (xt.api_key) { je("initialized", (function () { xt.page_views_enabled && (xt.is_connect ? tt(xt.language_from, (function (e) { return Zt(e) })) : Zt()) }), !0); try { H(document, xt) } catch (e) { M.error(e) } if (Oe("onWeglotSetup"), !pa.initialized || window.Turbolinks) { Qo = function () { var e = rn(); if (xt.is_connect) { var t = document.documentElement.dataset.wgTranslated || (xt.subdirectory ? qe() : Me()); if (t !== xt.language_from) return t; if (xt.technology_name === J) { if (Le.get("wg_checkout_redirect")) return xt.language_from; var n = Le.get("wg_checkout_language"); if (n && !xt.shopifyCheckout && !me() && e.includes(n)) return Le.erase("wg_checkout_language"), n } var r = cn(); return t === xt.language_from && r && e.includes(r) ? r : xt.language_from } var o = he("lang"); if (o && e.includes(o)) return la = !0, o; var a = ln(); if (a && e.includes(a)) return a; var i = cn(); if (i && e.includes(i)) return la = !0, i; return xt.language_from }(), ze(); var e = nn(); if ((ea = Qo && Qo !== xt.language_from && document.documentElement.dataset.wgTranslated !== Qo && !e && !document.documentElement.dataset.wgExcludedUrl && !xt.switcher_editor) && xt.wait_transition ? ve("@keyframes wg{from{color:transparent;}to{color:transparent;}}body *{color:transparent!important;animation:1s linear infinite wg!important;}", B) : fn(), xt.delayStart) return je("start", (function () { return da() }), !0); ke(da) } } } function da() { if (!document.querySelector("#has-script-tags") || document.querySelector("#has-script-tags") && (document.head.innerHTML.indexOf("weglot_script_tag") > 0 || document.documentElement.innerHTML.indexOf("weglot_script_tag") > 0)) try { aa(Qo, la, ea) } catch (e) { fn(), M.error(e, { consoleOverride: "There has been an error initializing, " + e.stack }) } else fn(); Zo = !1, pa.initialized = !0 } function ga(e) { if (e.data) try { var t = JSON.parse(e.data); switch (t.message) { case "Weglot.detect": e.source.postMessage(JSON.stringify({ message: "Weglot.ready", data: { initialized: pa.initialized, options: xt } }), e.origin); break; case "Weglot.switchTo": ia(t.language) } } catch (e) { } } function _a(e) { try { for (var t = null, n = 0, r = [/cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot\.min\.js\?([^#]+)/, /cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot-switcher-editor\.js\?([^#]+)/, /cdn(?:-staging)?\.weglot\.(?:com|us)\/weglot_squarespace-[0-9]+\.min\.js\?([^#]+)/]; n < r.length; n += 1) { if (t = r[n].exec(e)) break } if (!t) return null; var o = t[1].split("&").map((function (e) { var t = e.split("="), n = t[0], r = t[1]; try { return [n, decodeURIComponent(r)] } catch (e) { return [n, r] } })).reduce((function (e, t) { var n, r = t[0], o = t[1]; return Object.assign({}, e, ((n = {})[r] = "true" === o || "false" !== o && o, n)) }), { api_key: "" }); return o.api_key ? o : null } catch (e) { console.log(e), M.warn(e) } } var pa = window.Weglot || { initialized: !1, options: xt, dynamic: "", switchTo: ia, setup: function (e) { ua(), Zo || (Zo = !0, Ae(Lt(), "polyfillReady", (function () { bt(e).then((function () { return fa() })).catch((function () { M.warn("Your setup is deprecated, please save settings in your dashboard to hide this message.", { sendToDatadog: !1 }); var t = e.api_key; e.translation_engine = t && t.length >= 36 ? 2 : 1, function (e) { try { var t = ["api_key", "originalLanguage", "destinationLanguages"]; if (!e || t.some((function (t) { return !e[t] }))) throw { wgErrMsg: "You have to provide at least: " + t.join(", ") }; Ct(vt(e)) } catch (e) { throw new Error(e && e.wgErrMsg || "Error while reading Weglot options") } }(e), fa() })) }))) }, initialize: function (e) { ua(), Zo || (Zo = !0, Ae(Lt(), "polyfillReady", (function () { bt(e).then((function () { return fa() })) }))) }, on: function (e, t) { return je(e, t, !1) }, off: function (e, t) { var n, r = !1, o = function (t) { return Te[t].name === e && !Te[t].internal }; n = "function" == typeof t ? function (e) { return o(e) && Te[e].callback === t } : function (e) { return o(e) }; for (var a = Te.length - 1; a >= 0; a--)n(a) && (Te.splice(a, 1), r = !0); return r }, getStoredLang: ln, getLanguageName: ao, getCurrentLang: ze, polyReady: Nt, getCache: function () { return jt }, addNodes: function (e) { var t = Ft(e); return $t(t), na(t) }, search: gn, translate: function (e, t) { void 0 === e && (e = {}); var n = e.words, r = e.languageTo; if (void 0 === r && (r = ze()), !Array.isArray(n) || "object" != typeof n[0]) { var o = "Weglot.translate: 1st arg must be an array of objects"; return M.error(o, { sendToDatadog: !1 }), t && t(null, o), Promise.reject() } return r === xt.language_from ? (t && t(n.map((function (e) { return e.w }))), Promise.resolve(n.map((function (e) { return e.w })))) : new Promise((function (e, o) { dn(n, r, { title: !1, cdn: !0 }).then((function (n) { if (!n || !n.to_words) throw n; t && t(n.to_words), e(n.to_words) })).catch((function (e) { o(e), t && t(null, e) })) })) }, getBestAvailableLanguage: an, getAvailableLanguages: rn }; return Ae(Lt(), "polyfillReady", (function () { Ko(document); for (var e = 0, t = [document.currentScript].concat(Array.from(document.scripts)); e < t.length; e += 1) { var n = t[e], r = n && (n.src || n.getAttribute && n.getAttribute("data-src")); if (r) { var o = _a(r); if (o) return void pa.initialize(o) } } })), pa }(); </script> <script> $(document).ready(function () { Weglot.initialize({ api_key: 'wg_fa101db2d708598edbe4bfdc026b0c555', /*api_key: 'wg_ae00a96caabda8b822622dba8af3b7402',*/ switchers: [ { // Your first language switcher design button_style: { full_name: false, with_name: true, is_dropdown: true, with_flags: true, flag_type: "circle", invert_flags: false }, // Your first language switcher position location: { target: ".weglotdiv", sibling: null } }, { // Your second language switcher design button_style: { full_name: true, with_name: true, is_dropdown: true, with_flags: true, flag_type: "circle", invert_flags: false }, // Your second language switcher position location: { target: ".weglotnavdiv", sibling: null } } ] }); $(".weglotdiv").hover( function () { $(".weglotdiv > .weglot-container > .wg-drop > ul").slideDown('fast'); $('.country-selector .closed').toggleClass('wgcurrent'); }, function () { $(".weglotdiv .weglot-container > .wg-drop > ul").slideUp('fast'); } ); $(".weglotnavdiv").hover( function () { $(".weglotnavdiv > .weglot-container > .wg-drop > ul").slideDown('fast'); $(".weglotnavdiv > .weglot-container > .wg-drop > ul").css("display", "block"); }, function () { $(".weglotnavdiv > .weglot-container > .wg-drop > ul").slideUp('fast'); } ); }); </script> <style> .weglotdiv.multilanguage { top: -5px; margin-left: 12px; position: relative; height: 29px; } .multilanguage .wg-drop.country-selector .wgcurrent { /*background-color: #000;*/ border-radius: 0px; /* padding-right: 18px; width: 140px;*/ } .weglotdiv.multilanguage .wgcurrent a { margin-left:0px; } .multilanguage .wg-drop.country-selector .wgcurrent a { padding: 7px 15px 8px 0px; height: inherit; color: #000; font-size: 13px; } .multilanguage .wg-drop.country-selector .wgcurrent { border: 0px; } .country-selector { display: inline-block; font-size: 13px; position: relative; text-align: left; width: auto; margin-right: 15px; } .multilanguage .wg-drop.weg-openleft ul { right: 0; padding-top: 0px; border-radius: 0px; } .wg-flags a img.wg-flag { height: 24px; margin-right: 2px; border: solid 2px #fff; border-radius: 100%; } .wg-drop.country-selector .wgcurrent:after { /* filter: invert(1);*/ right:0px; } .wg-drop.country-selector:hover .wgcurrent.wg-li.wg-flags:after { transform: rotate(-180deg); } .wg-drop.country-selector .wgcurrent.wg-li.wg-flags:after { transform: rotate(0deg); } .wg-drop ul { right: 0; padding-top: 0px; border-radius: 0px; } .multilanguage .weglot-container ul li a:first-child { padding-left: 0px; font-size: 13px; } <!-- for sticky header --> .weglotnavdiv .wg-drop.country-selector .wgcurrent a { padding: 0; } .weglotnavdiv .wg-drop.country-selector .wgcurrent { border: 0; padding: 10px 0; } .weglotnavdiv #weglot-language-en .wg-flag { margin-right: 0; } .weglotnavdiv .wg-flags a img.wg-flag { height: 24px; margin-right: 10px; border: solid 2px #fff; border-radius: 100%; margin-right: 0; } .weglotnavdiv .wg-drop.weg-openleft ul { text-align: center; display: block; flex-direction: column; -webkit-box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); padding: 10px; border-radius: 5px; border: 0; } .weglotnavdiv .wg-drop.country-selector ul { padding: 5px; width: 130px; flex-direction: column; -webkit-box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); box-shadow: 0 2px 2px 0 rgb(0 0 0 / 14%), 0 3px 1px -2px rgb(0 0 0 / 12%), 0 1px 5px 0 rgb(0 0 0 / 20%); border-radius: 5px; border: 0; } .weglotnavdiv .wg-drop.country-selector li { margin: 5px auto; } .weglotnavdiv .wg-flags a {padding:10px; } .weglotnavdiv .wg-drop.country-selector li a { display: flex; flex-wrap: nowrap; flex-direction: row; padding: 5px; /*height: 30px;*/ justify-content:flex-start; } .wg-flag { height: unset !important; } .weglotnavdiv .wg-drop.country-selector .wgcurrent a { padding-right: 10px; } .wg-drop.country-selector :not(.wgcurrent) a { width: unset; padding: 10px; justify-content: flex-start; margin-left: 5px; } .weglotnavdiv .wg-drop.country-selector li a img { margin-right: 10px; } .country-selector .wg-li { font-size: 13px; } @media screen and (min-width: 1200px) and (max-width: 1300px) { .multilanguage { margin-top: 8px !important; } .multilanguage .weglot-container ul li a { padding-top: 0px; padding-bottom: 0px; } } @media (max-width:1024px) { /* .multilanguage { margin-top: 8px !important; position: absolute; right: 34px; }*/ .weglotnavdiv .wg-drop.weg-openleft ul { right: 0; } } @media (max-width: 800px) { /* .multilanguage { margin-top: 14px !important; position: absolute; right: 32px; }*/ } </style> </ul> </div> </div> </div> </div> </div> <style> .advtbannerimg { margin-top: 8px; margin-right: 2%; position: absolute; z-index: 9999; right: 0px; width: 160px; } .advtbanner { max-width: 1280px; margin: 0px auto; right: 0px; position: relative; z-index: 9999; } .loginadvt { margin-right: 1%; } @media only screen and (max-width: 1024px) { .advtbannerimg { margin-right: 3%; } .loginadvt { margin-right: 2%; } } </style> <!-- header start --> <div class="news-header"> <div class="container"> <div class="row" style="display:flex;align-items: center;"> <div class="col-lg-3 col-md-4 col-sm-5"> <div class="navbar-logo"> <a data-f2feventlogoclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Logo","F2FSection":"Header","F2FType":"Static","F2FText":"F2F Icon"}" href="https://www.fibre2fashion.com/"><img class="front-logo" width="300" height="40" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> <a data-f2feventlogoclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Logo","F2FSection":"Header","F2FType":"Static","F2FText":"F2F Icon"}" href="https://www.fibre2fashion.com/"><img class="sticky-logo" width="300" height="40" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> </div> </div> <div class="col-lg-6 col-md-7 col-sm-5"> <div class="navbar-menu"> <div class="Other-Header"> <ul> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/garments">Business</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/market-intelligence">Market Intelligence</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/news/">News</a></li> <li> <a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="javascript:void(0);">Services <i class="fa fa-angle-down" aria-hidden="true"></i></a> <ul class="other-sab-menu services-sub-menu"> <div> <li class="sub-menu-title"><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/b2b-membership/">B2B Membership</a></li> <li class="sub-menu-title">Media</li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/prime-content">Prime News</a></li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/media-booster-press-release-packages">Media Booster</a></li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/magazine/">Magazine Subscription</a></li> <li class="sub-menu-title"><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://emerge.fibre2fashion.com/" target="_blank">Emerge - Fashion Accelerator</a></li> <li class="sub-menu-title border-none"><a style="text-decoration: none; display: flex; align-items: center;" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://streamevent.tech/" target="_blank">Stream Event</a></li> </div> <div> <li class="sub-menu-title">Market Intelligence</li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" target="_blank" href="https://www.fibre2fashion.com/market-intelligence/texpro-textile-and-apparel/">TexPro</a></li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" target="_blank" href="https://www.fibre2fashion.com/market-intelligence/customized-research/">Custom Market Research</a></li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" target="_blank" href="https://alchempro.com/">ALCHEMPro</a></li> <li class="sub-menu-title">Advertisement</li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/digital-advertisement-solutions/">Digital Advertisement</a></li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/magazine#PrintAdvertisement">Print Advertisement</a></li> <li><a class="sublink" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/knowledge/webinar">Webinar</a></li> </div> </ul> </li> <li> <a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="javascript:void(0);">More <i class="fa fa-angle-down" aria-hidden="true"></i></a> <ul class="other-sab-menu"> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/industry-article/">Articles</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/trade-fairs/">Trade Fairs</a> </li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/interviews">Interviews</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/web-stories">Web Stories</a></li> </ul> </li> </ul> </div> </div> <header class="header-re" id="header"> <nav class="navbar-re "> <div class="burger" id="burger"> <span class="burger-line"></span> <span class="burger-line"></span> <span class="burger-line"></span> </div> <span class="overlay"></span> <div class="menu" id="menu"> <div class="close-sidebar-wrapper"> <img src="https://static.fibre2fashion.com/staticresources/images/search-close-icon.png"> </div> <div class="clearfix"></div> <a data-f2feventhamburgerlogoclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Logo","F2FSection":"Hambourger Slider","F2FType":"Static","F2FText":"F2F Icon"}" class="front-logo-wrapper" href="https://www.fibre2fashion.com/"><img class="front-logo" src="https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg" class="img-fluid" alt="logo" title=""></a> <ul class="menu-inner"> <li class="menu-item"><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/garments">Business</a></li> <li class="menu-item"><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/market-intelligence">Market Intelligence</a></li> <li class="menu-item"><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/news/">News</a></li> <li class="menu-item"> <a data-toggle="collapse" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="#sab-menu-1" role="button" aria-expanded="false" aria-controls="sab-menu-1">Services <i class="pull-right fa fa-angle-down" aria-hidden="true"></i></a> <ul id="sab-menu-1" class="sab-menu-item collapse new-submenu"> <li class="submenutitle">Advertisement</li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/digital-advertisement-solutions/">Digital Advertisement</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/magazine#PrintAdvertisement">Print Advertisement</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/knowledge/webinar">Webinar</a></li> <li class="submenutitle">Market Intelligence</li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/market-intelligence/texpro-textile-and-apparel/">TexPro</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/market-intelligence/customized-research/">Custom Market Research</a></li> <li class="submenutitle">Media</li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/prime-content">Prime News</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/media-booster-press-release-packages">Media Booster</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/magazine/">Magazine Subscription</a></li> <li class="submenutitle border-none"><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/business-solutions/b2b-membership/"> B2B Membership</a></li> <li class="submenutitle border-none"><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://emerge.fibre2fashion.com/" target="_blank">Emerge - Fashion Accelerator</a></li> <li class="submenutitle border-none"><a style="text-decoration: none; display: flex; align-items: center;" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://streamevent.tech/" target="_blank">Stream Event <span class="newtag">NEW</span></a></li> </ul> </li> <li class="menu-item"> <a data-toggle="collapse" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="#sab-menu-2" role="button" aria-expanded="false" aria-controls="sab-menu-2">More <i class="pull-right fa fa-angle-down" aria-hidden="true"></i></a> <ul id="sab-menu-2" class="sab-menu-item collapse"> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/industry-article/">Articles</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/interviews">Interviews</a></li> <li><a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header"}" href="https://www.fibre2fashion.com/trade-fairs/">Trade Fairs</a> </li> </ul> </li> </ul> </div> </nav> </header> </div> <div class="col-lg-3 col-md-2 col-sm-3"> <div class="navbar-login icon-angle icon-color"> <ul> <li> <a id="search" style="cursor: pointer; display: flex;" href="/advanced-site-search/" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header","F2FText":"Search Beta"}"> <div class="searchbeta"> <img alt="search" class="front-icon" width="21" height="21" style="margin-left: 28px;" src="https://static.fibre2fashion.com/staticresources/images/search.svg" /> <img alt="search" class="back-icon" width="21" height="21" src="https://static.fibre2fashion.com/staticresources/images/search.svg" /> <span>Beta</span> </div>Search </a> </li> <li class="user-menu"> <a data-f2feventclicktrack="{"F2FEventName":"Header Clicked","F2FEventType":"Header","F2FText":"Sign In"}" href="//members.fibre2fashion.com/login?myurl=https%3a%2f%2fwww.fibre2fashion.com%2findustry-article%2fblog%2f859"> <svg class="front-icon" width="16" height="22" viewBox="0 0 16 22" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M16 21.5002H14V19.5002C14 18.7046 13.6839 17.9415 13.1213 17.3789C12.5587 16.8163 11.7956 16.5002 11 16.5002H5C4.20435 16.5002 3.44129 16.8163 2.87868 17.3789C2.31607 17.9415 2 18.7046 2 19.5002V21.5002H0V19.5002C0 18.1742 0.526784 16.9024 1.46447 15.9647C2.40215 15.027 3.67392 14.5002 5 14.5002H11C12.3261 14.5002 13.5979 15.027 14.5355 15.9647C15.4732 16.9024 16 18.1742 16 19.5002V21.5002ZM8 12.5002C7.21207 12.5002 6.43185 12.345 5.7039 12.0435C4.97595 11.742 4.31451 11.3 3.75736 10.7429C3.20021 10.1857 2.75825 9.5243 2.45672 8.79634C2.15519 8.06839 2 7.28818 2 6.50024C2 5.71231 2.15519 4.9321 2.45672 4.20414C2.75825 3.47619 3.20021 2.81475 3.75736 2.2576C4.31451 1.70045 4.97595 1.2585 5.7039 0.956967C6.43185 0.655439 7.21207 0.500244 8 0.500244C9.5913 0.500244 11.1174 1.13239 12.2426 2.2576C13.3679 3.38282 14 4.90895 14 6.50024C14 8.09154 13.3679 9.61767 12.2426 10.7429C11.1174 11.8681 9.5913 12.5002 8 12.5002V12.5002ZM8 10.5002C9.06087 10.5002 10.0783 10.0788 10.8284 9.32867C11.5786 8.57853 12 7.56111 12 6.50024C12 5.43938 11.5786 4.42196 10.8284 3.67182C10.0783 2.92167 9.06087 2.50024 8 2.50024C6.93913 2.50024 5.92172 2.92167 5.17157 3.67182C4.42143 4.42196 4 5.43938 4 6.50024C4 7.56111 4.42143 8.57853 5.17157 9.32867C5.92172 10.0788 6.93913 10.5002 8 10.5002V10.5002Z" fill="#1A2755" /> </svg> <svg class="back-icon" width="16" height="21" viewBox="0 0 16 21" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M16 21H14V19C14 18.2044 13.6839 17.4413 13.1213 16.8787C12.5587 16.3161 11.7956 16 11 16H5C4.20435 16 3.44129 16.3161 2.87868 16.8787C2.31607 17.4413 2 18.2044 2 19V21H0V19C0 17.6739 0.526784 16.4021 1.46447 15.4645C2.40215 14.5268 3.67392 14 5 14H11C12.3261 14 13.5979 14.5268 14.5355 15.4645C15.4732 16.4021 16 17.6739 16 19V21ZM8 12C7.21207 12 6.43185 11.8448 5.7039 11.5433C4.97595 11.2417 4.31451 10.7998 3.75736 10.2426C3.20021 9.68549 2.75825 9.02405 2.45672 8.2961C2.15519 7.56815 2 6.78793 2 6C2 5.21207 2.15519 4.43185 2.45672 3.7039C2.75825 2.97595 3.20021 2.31451 3.75736 1.75736C4.31451 1.20021 4.97595 0.758251 5.7039 0.456723C6.43185 0.155195 7.21207 -1.17411e-08 8 0C9.5913 2.37122e-08 11.1174 0.632141 12.2426 1.75736C13.3679 2.88258 14 4.4087 14 6C14 7.5913 13.3679 9.11742 12.2426 10.2426C11.1174 11.3679 9.5913 12 8 12ZM8 10C9.06087 10 10.0783 9.57857 10.8284 8.82843C11.5786 8.07828 12 7.06087 12 6C12 4.93913 11.5786 3.92172 10.8284 3.17157C10.0783 2.42143 9.06087 2 8 2C6.93913 2 5.92172 2.42143 5.17157 3.17157C4.42143 3.92172 4 4.93913 4 6C4 7.06087 4.42143 8.07828 5.17157 8.82843C5.92172 9.57857 6.93913 10 8 10Z" fill="#1A2755" /> </svg> Sign In </a> </li> <li style="display:none" class="weglotnavdiv" id="navbarweglot"></li> </ul> </div> </div> <div class="hidden-menu searchblockhideshow" style="display:none;"> <a onclick="HideShow('closeicon');"> <div class="search-close-icon" id="searchclose"> <img src="https://static.fibre2fashion.com/staticresources/images/search-close-icon.png"> </div> </a> <div class="container searchbox"> <div class="col-md-8 m-auto"> <div class="input-group stylish-input-group search-box new-search" id="essearchbox"> <select id="esCategory" name="esCategory" class="esCategory" style="display: none;"> <option class="icon-all" selected="selected" value="" data-url="" data-text="Answer to all your Textile needs">All Categories</option> <option class="icon-articles" value="articles" data-url="//www.fibre2fashion.com/industry-article/search" data-text="Search for well researched articles by industry experts">Articles</option> <option class="icon-news" value="news" data-url="//www.fibre2fashion.com/news/allnews.aspx" data-text="Search For Top News Stories">News</option> <option class="icon-buyer" value="buyer" data-url="https://www.fibre2fashion.com/garments/SearchResult.aspx" data-text="Looking to buy - sell or connect?">Buyers</option> <option class="icon-supplier" value="seller" data-url="https://www.fibre2fashion.com/garments/SearchResult.aspx" data-text="Looking to buy - sell or connect?">Suppliers</option> <option class="icon-trade-fairs" value="tradefairs" data-url="https://www.fibre2fashion.com/trade-fairs/CommonSearchResult.aspx" data-text="Search For Upcoming Tradefairs and Events">Trade Fairs</option> <option class="icon-interview" value="interview" data-url="//www.fibre2fashion.com/interviews/search" data-text="Search For Interview">Interview</option> <option class="icon-mi" value="mi" data-url="//www.fibre2fashion.com/market-intelligence/SearchResult.aspx?page=1" data-text="Search for price trends, trade data and more">Market Intelligence</option> </select> <!-- Uncomment following line if you want to enable auto complete functionality --> <div id="new-ui-container"> <input onkeypress="handle(event);" id="esQuery" name="esQuery" type="text" style="width:150px; visibility:hidden;" class="headersearch f2fsearchtext" placeholder="Answer to all your Textile needs"> <input type="hidden" id="hdnQueryCode" /> <span class="input-group-addon input-group-addon icon-search bordernone"> <a id="esSearch" href="javascript:void(0);"> <button type="submit" class="searchicon"> <span class="f2f-icons icon-search"></span> </button> </a> </span> <div id="f2fAutoSearching"></div><ul id="localStorageData" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content esAutoSuggest" style="display:none;"></ul> </div> </div> <input type="hidden" value="no" id="hdnIsMobileSite" /> <input type="hidden" id="hdnUrl" value='https://search.fibre2fashion.com/handler/ESResult.ashx' /> <input type="hidden" id="hdnTrackerUrl" value='https://search.fibre2fashion.com/handler/ESSearchTracker.ashx' /> <link rel='preload' media='all' as="style" onload="this.rel='stylesheet'" type="text/css" href="https://static.fibre2fashion.com/StaticResources/cssv1/search-new-ui.min.css?var=2.4"> <style> @font-face{font-family:icomoon;src:url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.eot?auryy8');src:url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.eot?auryy8#iefix') format('embedded-opentype'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.ttf?auryy8') format('truetype'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.woff?auryy8') format('woff'),url('https://static.fibre2fashion.com/fonts/category-fonts/fonts/icomoon.svg?auryy8#icomoon') format('svg');font-weight:400;font-style:normal;font-display:block}[class*=" f2f-icons"],[class^=f2f-icons]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.f2f-icons.icon-search:before{content:"\e909"}.f2f-icons.icon-recruitment:before{content:"\e900"}.f2f-icons.icon-all:before{content:"\e901"}.f2f-icons.icon-trade-fairs:before{content:"\e902"}.f2f-icons.icon-news:before{content:"\e903"}.f2f-icons.icon-articles:before{content:"\e904"}.f2f-icons.icon-interview:before{content:"\e905"}.f2f-icons.icon-buyer:before{content:"\e906"}.f2f-icons.icon-supplier:before{content:"\e907"}.f2f-icons.icon-mi:before{content:"\e908"} </style> <script> !function (e) { "use strict"; var t = "selectric", s = "Input Items Open Disabled TempShow HideSelect Wrapper Hover Responsive Above Scroll Group GroupLabel", o = ".sl", i = { onChange: function (t) { e(t).change() }, maxHeight: 345, keySearchTimeout: 500, arrowButtonMarkup: '<b class="button">▾</b>', disableOnMobile: !0, openOnHover: !1, hoverIntentTimeout: 500, expandToItemText: !1, responsive: !1, preventWindowScroll: !0, inheritOriginalWidth: !1, allowWrap: !0, customClass: { prefix: t, camelCase: !1, overwrite: !0 }, optionsItemBuilder: "{text}", labelBuilder: "{text}" }, n = { add: function (e, t, s) { this[e] || (this[e] = {}), this[e][t] = s }, remove: function (e, t) { delete this[e][t] } }, l = { replaceDiacritics: function (e) { for (var t = "40-46 50-53 54-57 62-70 71-74 61 47 77".replace(/\d+/g, "\\3$&").split(" "), s = t.length; s--;)e = e.toLowerCase().replace(RegExp("[" + t[s] + "]", "g"), "aeiouncy".charAt(s)); return e }, format: function (e) { var t = arguments; return ("" + e).replace(/{(\d+|(\w+))}/g, function (e, s, o) { return o && t[1] ? t[1][o] : t[s] }) }, nextEnabledItem: function (e, t) { for (; e[t = (t + 1) % e.length].disabled;); return t }, previousEnabledItem: function (e, t) { for (; e[t = (t > 0 ? t : e.length) - 1].disabled;); return t }, toDash: function (e) { return e.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase() }, triggerCallback: function (s, o) { var i = o.element, a = o.options["on" + s]; e.isFunction(a) && a.call(i, i, o), n[s] && e.each(n[s], function () { this.call(i, i, o) }), e(i).trigger(t + "-" + l.toDash(s), o) } }, a = e(document), r = e(window), c = function (n, c) { function d(t) { if (j.options = e.extend(!0, {}, i, j.options, t), j.classes = {}, j.element = n, l.triggerCallback("BeforeInit", j), j.options.disableOnMobile && Y) return void (j.disableOnMobile = !0); C(!0); var o = j.options.customClass, a = s.split(" "), r = F.width(); e.each(a, function (e, t) { var s = o.prefix + t; j.classes[t.toLowerCase()] = o.camelCase ? s : l.toDash(s) }), x = e("<input/>", { "class": j.classes.input, readonly: Y }), k = e("<div/>", { "class": j.classes.items, tabindex: -1 }), T = e("<div/>", { "class": j.classes.scroll }), D = e("<div/>", { "class": o.prefix, html: j.options.arrowButtonMarkup }), I = e('<p class="label"/>'), y = F.wrap("<div>").parent().append(D.prepend(I), k, x), A = { open: m, close: g, destroy: C, refresh: u, init: d }, F.on(A).wrap('<div class="' + j.classes.hideselect + '">'), e.extend(j, A), $ = j.options.labelBuilder, j.options.inheritOriginalWidth && r > 0 && y.width(r), p() } function p() { j.items = []; var t = F.children(), s = "<ul>", i = F.find("option"), n = i.index(i.filter(":selected")), a = 0; B = S = ~n ? n : 0, (E = t.length) && (t.each(function () { function t() { var t = e(this), o = t.html(), i = t.prop("disabled"), n = j.options.optionsItemBuilder; j.items[a] = { element: t, value: t.val(), text: o, slug: l.replaceDiacritics(o), disabled: i }, s += l.format('<li data-index="{1}" class="{2}">{3}</li>', a, e.trim([a == B ? "selected" : "", a == E - 1 ? "last" : "", i ? "disabled" : ""].join(" ")), e.isFunction(n) ? n(j.items[a], t, a) : l.format(n, j.items[a])), a++ } var o = e(this); if (o.is("optgroup")) { var i = o.prop("disabled"), n = o.children(); s += l.format('<ul class="{1}"><li class="{2}">{3}</li>', e.trim([j.classes.group, i ? "disabled" : "", o.prop("class")].join(" ")), j.classes.grouplabel, o.prop("label")), i && n.prop("disabled", !0), n.each(t), s += "</ul>" } else t.call(o) }), k.append(T.html(s + "</ul>")), I.html(e.isFunction($) ? $(j.items[B]) : l.format($, j.items[B]))), D.add(F).add(y).add(x).off(o), y.prop("class", [j.classes.wrapper, j.options.customClass.overwrite ? F.prop("class").replace(/\S+/g, j.options.customClass.prefix + "-$&") : F.prop("class"), j.options.responsive ? j.classes.responsive : ""].join(" ")), F.prop("disabled") ? (y.addClass(j.classes.disabled), x.prop("disabled", !0)) : (R = !0, y.removeClass(j.classes.disabled).on("mouseenter" + o + " mouseleave" + o, function (t) { e(this).toggleClass(j.classes.hover), j.options.openOnHover && (clearTimeout(j.closeTimer), "mouseleave" == t.type ? j.closeTimer = setTimeout(g, j.options.hoverIntentTimeout) : m()) }), D.on("click" + o, function (e) { L ? g() : m(e) }), x.prop({ tabindex: P, disabled: !1 }).on("keypress" + o, h).on("keydown" + o, function (e) { h(e), clearTimeout(j.resetStr), j.resetStr = setTimeout(function () { x.val("") }, j.options.keySearchTimeout); var t = e.keyCode || e.which; if (t > 36 && 41 > t) { if (!j.options.allowWrap && (39 > t && 0 == S || t > 38 && S + 1 == j.items.length)) return; b(l[(39 > t ? "previous" : "next") + "EnabledItem"](j.items, S)) } }).on("focusin" + o, function (e) { x.one("blur", function () { x.blur() }), L || m(e) }).on("oninput" in x[0] ? "input" : "keyup", function () { x.val().length && e.each(j.items, function (e, t) { return RegExp("^" + x.val(), "i").test(t.slug) && !t.disabled ? (b(e), !1) : void 0 }) }), F.prop("tabindex", !1), O = e("li", k.removeAttr("style")).on({ mousedown: function (e) { e.preventDefault(), e.stopPropagation() }, click: function () { return b(e(this).data("index"), !0), !1 } }).filter("[data-index]")), l.triggerCallback("Init", j) } function u() { l.triggerCallback("Refresh", j), p() } function h(e) { var t = e.keyCode || e.which; 13 == t && e.preventDefault(), /^(9|13|27)$/.test(t) && (e.stopPropagation(), b(S, !0)) } function f() { var e = k.closest(":visible").children(":hidden").addClass(j.classes.tempshow), t = j.options.maxHeight, s = k.outerWidth(), o = D.outerWidth() - (s - k.width()); !j.options.expandToItemText || o > s ? M = o : (k.css("overflow", "scroll"), y.width(9e4), M = k.width(), k.css("overflow", ""), y.width("")), k.width(M).height() > t && k.height(t), e.removeClass(j.classes.tempshow) } function m(s) { l.triggerCallback("BeforeOpen", j), s && (s.preventDefault(), s.stopPropagation()), R && (f(), e("." + j.classes.hideselect, "." + j.classes.open).children()[t]("close"), L = !0, H = k.outerHeight(), W = k.height(), y.addClass(j.classes.open), x.val("").is(":focus") || x.focus(), a.on("click" + o, g).on("scroll" + o, v), v(), j.options.preventWindowScroll && a.on("mousewheel" + o + " DOMMouseScroll" + o, "." + j.classes.scroll, function (t) { var s = t.originalEvent, o = e(this).scrollTop(), i = 0; "detail" in s && (i = -1 * s.detail), "wheelDelta" in s && (i = s.wheelDelta), "wheelDeltaY" in s && (i = s.wheelDeltaY), "deltaY" in s && (i = -1 * s.deltaY), (o == this.scrollHeight - W && 0 > i || 0 == o && i > 0) && t.preventDefault() }), w(S), l.triggerCallback("Open", j)) } function v() { y.toggleClass(j.classes.above, y.offset().top + y.outerHeight() + H > r.scrollTop() + r.height()) } function g() { if (l.triggerCallback("BeforeClose", j), B != S) { l.triggerCallback("BeforeChange", j); var t = j.items[S].text; F.prop("selectedIndex", B = S).data("value", t), I.html(e.isFunction($) ? $(j.items[S]) : l.format($, j.items[S])), l.triggerCallback("Change", j) } a.off(o), y.removeClass(j.classes.open), L = !1, l.triggerCallback("Close", j) } function b(e, t) { void 0 != e && (j.items[e].disabled || (O.removeClass("selected").eq(S = e).addClass("selected"), w(e), t && g())) } function w(e) { var t = O.eq(e).outerHeight(), s = O[e].offsetTop, o = T.scrollTop(), i = s + 2 * t; T.scrollTop(i > o + H ? i - H : o > s - t ? s - t : o) } function C(e) { R && (k.add(D).add(x).remove(), !e && F.removeData(t).removeData("value"), F.prop("tabindex", P).off(o).off(A).unwrap().unwrap(), R = !1) } var x, k, T, D, I, y, O, S, B, H, W, M, E, A, $, j = this, F = e(n), L = !1, R = !1, Y = /android|ip(hone|od|ad)/i.test(navigator.userAgent), P = F.prop("tabindex"); d(c) }; e.fn[t] = function (s) { return this.each(function () { var o = e.data(this, t); o && !o.disableOnMobile ? "" + s === s && o[s] ? o[s]() : o.init(s) : e.data(this, t, new c(this, s)) }) }, e.fn[t].hooks = n }(jQuery); </script> <script defer type="text/javascript" src="https://static.fibre2fashion.com/StaticResources/js/jquery/plugins/jquery.highlight.min.js"></script> <script defer type="text/javascript" src="https://static.fibre2fashion.com/js/jquery/plugins/underscore.min.js"></script> <script type="text/javascript" src="https://static.fibre2fashion.com/staticresources/js/f2f/autosuggestionv5.min.js?v=4.8"></script> <script> $("#esQuery").click(function () { $(".hidden-menu").addClass("hidden-menuheight"); }); $(".searchblockhideshow").click(function (e) { $(".hidden-menu").removeClass("hidden-menuheight"); $("#localStorageData").empty(); $(".esAutoSuggest").empty(); $(".esAutoSuggest").css("display", "none"); }); </script> </div> <div class="clearfix"></div> </div> </div> </div> </div> </div> <script> $(window).scroll(function () { if ($(this).scrollTop() > 50) { $('.header').addClass('sticky'); } else { $('.header').removeClass('sticky'); } }); $(".togal-menu").click(function () { $('.navbar-menu ul').slideToggle(); }); </script> <script> var Searchboxopen = false; function HideShow(val) { if (val == "searchicon") { $("#essearchbox").show() $("#search").hide(); $("#searchclose").show(); $('.hidden-menu').slideToggle("slow"); $("#divAdvanceSearch").hide(); $("#inline_content").hide(); $("#advsearchhide").hide(); $("#advanceSearch").show(); Searchboxopen = true; $("#B2BAdvaceSearch").show(); $("#advsearchhide1").hide(); $("#esQuery").addClass("searchtxt"); $(".hidden-menu").removeClass("hidden-menuheight"); $(".hidden-menu").removeClass("space-none"); $("#bgheadersearch").addClass("show"); $(".wrapper").addClass("search-active"); var FinalObject = {}; FinalObject.F2FEventName = JSConstants.SearchClicked; MixpanelWrapper.EventTracking(FinalObject); } if (val == "closeicon") { if (Searchboxopen) { var FinalObject = {}; FinalObject.F2FEventName = JSConstants.SearchDismissed; MixpanelWrapper.EventTracking(FinalObject); } $('.hidden-menu').slideUp("slow"); $("#searchclose").hide(); $("#search").show(); Searchboxopen = false; $("#esQuery").removeClass("searchtxt"); $("#bgheadersearch").removeClass("show"); $(".hidden-menu").removeClass("space-none"); $(".wrapper").removeClass("search-active"); $(".hidden-menu").removeClass("hidden-menuheight"); $("#advsearchhideB2B").css("display", "none"); } } //$(document).on("click", ".section", function () { // HideShow('closeicon'); //}); $(document).on("click", "#bgheadersearch", function () { HideShow('closeicon'); $(".hidden-menu").removeClass("hidden-menuheight"); }); $(".searchbox").click(function (e) { $("#localStorageData").css("display", "none"); $("#esCategory").css("display", "none"); }); $(".searchblockhideshow").click(function (event) { event.stopPropagation(); }); $('.user-icon').hover(function () { $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500); }, function () { $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500); }); $(".close-sidebar-wrapper").click(function () { navbarMenu.classList.remove("is-active"); bgOverlay.classList.remove("is-active"); var myObject = { F2FEventType: JSConstants.EventType.Icon, F2FEventName: JSConstants.EventName.HamburgerCollapsed }; MixpanelWrapper.EventTracking(myObject); }); </script> <script> $(window).scroll(function () { if ($(this).scrollTop() > 50) { $('.header').addClass('sticky'); $('#navbarweglot').show(); } else { $('.header').removeClass('sticky'); $('#navbarweglot').hide(); } }); $(".togal-menu").click(function () { $('.Other-Header-navbar-menu ul').slideToggle(); }); </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "Fibre2Fashion", "legalName" : "Fibre2Fashion Private Limited", "url": "https://www.fibre2fashion.com", "logo": "https://static.fibre2fashion.com/f2flogo/f2flogo-black.svg", "foundingDate": "2000", "founders": [ { "@type": "Person", "name": "Mr. Sanjiv Shah" } ], "address": { "@type": "PostalAddress", "streetAddress": "B-3, Abhishree Corporate Park", "addressLocality": "Iskcon-Ambli Road, Bopal, Ahmedabad", "addressRegion": "Gujarat", "postalCode": "380058", "addressCountry": "India" }, "contactPoint": { "@type": "ContactPoint", "contactType": "Customer Support", "telephone": "[+91-79-71888555]", "email": "inquiry@fibre2fashion.com" }, "sameAs": [ "https://www.linkedin.com/company/fibre2fashion", "https://www.facebook.com/fibre2fashion", "https://twitter.com/fibre2fashion", "https://www.youtube.com/c/Fibre2FashionPvtLtd", "https://www.instagram.com/fibre2fashion" ]} </script> <script> // Show Navbar Menu on Burger Click // Hide Navbar Menu on Overlay Click const navbarMenu = document.getElementById("menu"); const burgerMenu = document.getElementById("burger"); const bgOverlay = document.querySelector(".overlay"); if (burgerMenu && bgOverlay) { burgerMenu.addEventListener("click", () => { navbarMenu.classList.add("is-active"); HideShow('closeicon'); bgOverlay.classList.toggle("is-active"); var myObject = { F2FEventType: JSConstants.EventType.Icon, F2FEventName: JSConstants.EventName.HamburgerClicked }; MixpanelWrapper.EventTracking(myObject); }); bgOverlay.addEventListener("click", () => { navbarMenu.classList.remove("is-active"); bgOverlay.classList.toggle("is-active"); }); } // Hide Navbar Menu on Links Click document.querySelectorAll(".menu-link").forEach((link) => { link.addEventListener("click", () => { navbarMenu.classList.remove("is-active"); bgOverlay.classList.remove("is-active"); }); }); // Open and Hide Search Bar on Toggle Click const searchBlock = document.querySelector(".search-block"); const searchToggle = document.querySelector(".search-toggle"); const searchCancel = document.querySelector(".search-cancel"); if (searchToggle && searchCancel) { searchToggle.addEventListener("click", () => { searchBlock.classList.add("is-active"); }); searchCancel.addEventListener("click", () => { searchBlock.classList.remove("is-active"); }); } $('[data-f2feventlogoclicktrack]').click(function (event) { var myObject = JSON.parse("{}"); if ($(this).attr('data-f2feventlogoclicktrack') != "") { myObject = JSON.parse($(this).attr('data-f2feventlogoclicktrack')); } MixpanelWrapper.EventTracking(myObject); }); $('[data-f2feventhamburgerlogoclicktrack]').click(function (event) { var myObject = JSON.parse("{}"); if ($(this).attr('data-f2feventhamburgerlogoclicktrack') != "") { myObject = JSON.parse($(this).attr('data-f2feventhamburgerlogoclicktrack')); } MixpanelWrapper.EventTracking(myObject); }); </script> <div class="section"> <!-- top banner start --> <div class="new-top-banner"> <div class="container"> <div class="horizontalbanners twobanners"> <ul> <li title="Texworld Paris"> <a target="_blank" class="gaclicktracking " title="Texworld Paris" href=" https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB05uRU5AsVSezjFGqtnIhOukTYitR7xKul9JX4/XrV8Z2Qdnf50Rwr9AxD8/7/au13Kawoh8x4OHymN5WkBt20GnRCYDyWLoq/XJROr5My7UwyoxPXPccmJ7CbUPwPcedj6H1uGgUwWg8J1m4hLJwoxm2FzlaWoxDpgNV0pNfmdt9ByKCPU6/Dwoa9GYfl/xt48leQD84lLSSukrEwKE3ogv6zGR0ba4HaHgF7nUuF18cMo1xozRN5jz5dXTYf4FJLZ1LyeNMB/su1ex/NkMyXUGSswS6uQAjd0O5/huUsvgO3NiRJNUv6bXy4QQESpg9OEZgAimfjaCNR14o3IopweJbzt7Osxx3hR2V5qaRO0Zj2H/ObhWf+SpkdW2tEgx9wSIipkTIdw5xdE7FLY4/idttCXZqflcXm5ueTvj1mOLdm9DuwMN1FPUs0jZgEyH8osGoNKJZd7EQjg2TN4EOKz5BOAwxeO2NwiZnvPk/HWpg==" placementid="14549" adsid="2596" displayorder="1" pcstartdate="01/12/2024" pcenddate="01/12/2024" platform="Desktop" channel="Article" region="All" zone="H1" campaigncode="Messe Frankfurt France - 24-25" companyname="Messe Frankfurt France" uid="884755" country="France" zonedesc="Header Block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB05uRU5AsVSezjFGqtnIhOukTYitR7xKul9JX4/XrV8Z2Qdnf50Rwr9AxD8/7/au13Kawoh8x4OHymN5WkBt20GnRCYDyWLoq/XJROr5My7UwyoxPXPccmJ7CbUPwPcedj6H1uGgUwWg8J1m4hLJwoxm2FzlaWoxDpgNV0pNfmdt9ByKCPU6/Dwoa9GYfl/xt48leQD84lLSSukrEwKE3ogv6zGR0ba4HaHgF7nUuF18cMo1xozRN5jz5dXTYf4FJLZ1LyeNMB/su1ex/NkMyXUGSswS6uQAjd0O5/huUsvgO3NiRJNUv6bXy4QQESpg9OEZgAimfjaCNR14o3IopweJbzt7Osxx3hR2V5qaRO0Zj2H/ObhWf+SpkdW2tEgx9wSIipkTIdw5xdE7FLY4/idttCXZqflcXm5ueTvj1mOLdm9DuwMN1FPUs0jZgEyH8osGoNKJZd7EQjg2TN4EOKz5BOAwxeO2NwiZnvPk/HWpg==" class="gaTracking" pcstartdate="01/12/2024" pcenddate="01/12/2024" platform="Desktop" channel="Article" region="All" zone="H1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2596/TW56 770x185px Fibre2Fashion Banner ENG20241127143658.jpg" alt="Texworld Paris" class="img-responsive " /> </a> </li> <li title="TEXWORLD NYC"> <a target="_blank" class="gaclicktracking " title="TEXWORLD NYC" href=" https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB3Err8hD/Aq2IUjtRS/VdQ88YMX0f2gs4TRXJjwdHsK2iXzYY8lK+FT3/35DncwL0Ta9CMX8Jnd6vQDKIGcsWXT8JxG/Ctxzkq0QHmOFMnImdoAV6zEzRKnKNvmfVJ7NpiL4K+Uw7e93VAyimM4NMhiU+Vv4kLZoeMjBY+fWBsIAPkqRfZOUnTJqQPef1eOIwd84uc6VB/4lLavlfsBcczPdaCmhBCBLYvp+Qbb56d6q1ktmKrKAneOyBUeq8oXIN+iwXvUHomjiHNQ918BGdIa9a+q9934D3OZZo0WoFjoyBbinnAAaja7GGHf4DUBuWoxHR6zDFWbbOzx6fLlLNVe5Fp3Khna/FezsxhZZbGrZDdYQT3gCB+ESq4BWLnWKH6tHb9blWwevyQJd5/uKBFYrkjemkecaZpWQD1/ooaKYH+qKUlYj+kalSs5oexrrfSmuBAP8+526F+8vdI+9tLOYlG5C0423MFaFq4flYcMEg==" placementid="14550" adsid="2600" displayorder="2" pcstartdate="01/12/2024" pcenddate="01/12/2024" platform="Desktop" channel="Article" region="All" zone="H1" campaigncode="Messe Frankfurt Texworld NYC - 24" companyname="Messe Frankfurt Inc" uid="873012" country="United States Of America" zonedesc="Header Block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB3Err8hD/Aq2IUjtRS/VdQ88YMX0f2gs4TRXJjwdHsK2iXzYY8lK+FT3/35DncwL0Ta9CMX8Jnd6vQDKIGcsWXT8JxG/Ctxzkq0QHmOFMnImdoAV6zEzRKnKNvmfVJ7NpiL4K+Uw7e93VAyimM4NMhiU+Vv4kLZoeMjBY+fWBsIAPkqRfZOUnTJqQPef1eOIwd84uc6VB/4lLavlfsBcczPdaCmhBCBLYvp+Qbb56d6q1ktmKrKAneOyBUeq8oXIN+iwXvUHomjiHNQ918BGdIa9a+q9934D3OZZo0WoFjoyBbinnAAaja7GGHf4DUBuWoxHR6zDFWbbOzx6fLlLNVe5Fp3Khna/FezsxhZZbGrZDdYQT3gCB+ESq4BWLnWKH6tHb9blWwevyQJd5/uKBFYrkjemkecaZpWQD1/ooaKYH+qKUlYj+kalSs5oexrrfSmuBAP8+526F+8vdI+9tLOYlG5C0423MFaFq4flYcMEg==" class="gaTracking" pcstartdate="01/12/2024" pcenddate="01/12/2024" platform="Desktop" channel="Article" region="All" zone="H1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2600/F2F-texworld2025-banner-ad_770x18520241127143801.png" alt="TEXWORLD NYC" class="img-responsive " /> </a> </li> </ul> </div> </div> </div> <!-- top banner end --> <div class="breadcrumb-main"> <img style="display:none; visibility:hidden;" src="https://track.fibre2fashion.com/advt_banner/track.f2f?title=859&category=articlestag&userid=&referer=" /> <div class="container"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"><a href="https://www.fibre2fashion.com" title="Home">Home</a> / <a href="https://www.fibre2fashion.com/industry-article/" title="Articles">Articles</a> / <li class="breadcrumb-item active">Blogs</li></ol> </nav> </div> </div> <!-- product-menu start --> <div class="product-menu"> <div class="container"> <ul class="menu"> <li><a style="color: #9C27B0;" href="https://www.fibre2fashion.com/prime-news-and-articles" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">F2F Prime</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/for-you" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">For You</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/textile-industry-articles/1" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Textile</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/apparel/35" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Apparel</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/free-fashion-industry-article/7" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Fashion</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/free-retail-industry-article/8" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Retail</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/e-commerce/73" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Ecommerce</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/technology-industry-article/2" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Technology</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/sustainability/157" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Sustainability</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/technical-textiles/9" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Technical Textiles</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/analyst-corner/17" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Analyst Corner</a></li> <li class=""><a href="https://www.fibre2fashion.com/industry-article/magazine-articles/16" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}">Editor's Pick</a></li> </ul> </div> <input id="hdnMenu" type="hidden" /> </div> <!-- product-menu end --> <div class="container"> <div class="row"> <div class="col-md-12 "> <div class="latest-title"> <h1 class="section-title"> Blogs Articles </h1> </div> </div> </div> <div class="row"> <div class="col-lg-8 col-md-12 col-sm-12 sect"> <div class="white-box" id="related-articles-list"> <div id="articleList"> <script type="text/javascript"> $(document).ready(function () { var totalCount = '51'; //$('#EsTotalCount1').html(" (" + totalCount + ") "); }); </script> <style> .related-articles-img { position: relative; } .play-overlay { top: 0; bottom: 0; left: 0; right: 0; font-size: 75px; text-align: center; opacity: 1; position: absolute; text-align: center; pointer-events: none; } .play-overlay i { transform: translateY(-50%); top: 50%; color: #ff0000; display: block; position: relative; font-size: 50px; } </style> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/9344/the-future-of-apparel-towards-compliant-fashion-factories" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/94/9344/MicrosoftTeams-image (3)_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="MicrosoftTeams-image (3)" title="MicrosoftTeams-image (3)" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/9344/the-future-of-apparel-towards-compliant-fashion-factories" class="blocktitle" target="_blank">The Future of Apparel: Towards Compliant Fashion Factories</a> </div> </div> </div> <hr /> <div class="related-articles-box "> <div class="related-articles-img"> <a href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB05uRU5AsVSezjFGqtnIhOukTYitR7xKul9JX4/XrV8Z2Qdnf50Rwr9AxD8/7/au13Kawoh8x4OHymN5WkBt20GnRCYDyWLoq/XJROr5My7UwyoxPXPccmJ7CbUPwPcedgLGxevZ+C9wGzrE1QCHxvIo7MqYe3vHRz7IeOUbWGSw7tXmqef9iJ//A3/XC9q2OXiSGP3P/C+Xhb/PtO8reKKhs2vG+ZKN8U+r0h3XTrjcRS4pqMSv5EpDITBfL0S1wd8nuBL3/JCPvJ4lkGNOjJ4EIkLxy/pf3iBB2y20Jx9fOIipZgN75cq0FFoGGECsP0I8+8vRoy01eQgBvS0H0h49UjUssQ66HhXKdejQlsy486hJIaKNOi8NIUMkQvo+YR/jDi6qCcX7bgFHWwOGv8bmzYphvH2yRZToTLQ1eT3Do5bbWV6MfB7bhTuKzeJ2xK1uRdbSJCkc9812N8BiflavI0x2NApf6khNS56YFc1ZQ==" target="_blank" class="gaclicktracking " title="Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge" placementid="14444" adsid="2596" displayorder="1" pcstartdate="14/11/2024" pcenddate="14/11/2024" platform="Desktop" channel="Article" region="All" zone="NativeAd" campaigncode="Messe Frankfurt France - 24-25" companyname="Messe Frankfurt France" uid="884755" country="France" zonedesc="Native Ads" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}"> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2596/TW56 640x400px Fibre2Fashion ENG20241114123234.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" alt="Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge" title="Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge" class="img-responsive " /> <img style="height:1px !important; width:1px !important; position:absolute;" src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB05uRU5AsVSezjFGqtnIhOukTYitR7xKul9JX4/XrV8Z2Qdnf50Rwr9AxD8/7/au13Kawoh8x4OHymN5WkBt20GnRCYDyWLoq/XJROr5My7UwyoxPXPccmJ7CbUPwPcedgLGxevZ+C9wGzrE1QCHxvIo7MqYe3vHRz7IeOUbWGSw7tXmqef9iJ//A3/XC9q2OXiSGP3P/C+Xhb/PtO8reKKhs2vG+ZKN8U+r0h3XTrjcRS4pqMSv5EpDITBfL0S1wd8nuBL3/JCPvJ4lkGNOjJ4EIkLxy/pf3iBB2y20Jx9fOIipZgN75cq0FFoGGECsP0I8+8vRoy01eQgBvS0H0h49UjUssQ66HhXKdejQlsy486hJIaKNOi8NIUMkQvo+YR/jDi6qCcX7bgFHWwOGv8bmzYphvH2yRZToTLQ1eT3Do5bbWV6MfB7bhTuKzeJ2xK1uRdbSJCkc9812N8BiflavI0x2NApf6khNS56YFc1ZQ==" data-src="" class="onscrollloading gaTracking"> </a> </div> <div class="related-articles-content"> <p> <span class="categoryname">Sponsored</span> </p> <a href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqdvA3kOGpXB05uRU5AsVSezjFGqtnIhOukTYitR7xKul9JX4/XrV8Z2Qdnf50Rwr9AxD8/7/au13Kawoh8x4OHymN5WkBt20GnRCYDyWLoq/XJROr5My7UwyoxPXPccmJ7CbUPwPcedgLGxevZ+C9wGzrE1QCHxvIo7MqYe3vHRz7IeOUbWGSw7tXmqef9iJ//A3/XC9q2OXiSGP3P/C+Xhb/PtO8reKKhs2vG+ZKN8U+r0h3XTrjcRS4pqMSv5EpDITBfL0S1wd8nuBL3/JCPvJ4lkGNOjJ4EIkLxy/pf3iBB2y20Jx9fOIipZgN75cq0FFoGGECsP0I8+8vRoy01eQgBvS0H0h49UjUssQ66HhXKdejQlsy486hJIaKNOi8NIUMkQvo+YR/jDi6qCcX7bgFHWwOGv8bmzYphvH2yRZToTLQ1eT3Do5bbWV6MfB7bhTuKzeJ2xK1uRdbSJCkc9812N8BiflavI0x2NApf6khNS56YFc1ZQ==" class="blue-heading gaclicktracking " target="_blank" title="Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge" placementid="14444" adsid="2596" displayorder="1" pcstartdate="14/11/2024" pcenddate="14/11/2024" platform="Desktop" channel="Article" region="All" zone="NativeAd" campaigncode="Messe Frankfurt France - 24-25" companyname="Messe Frankfurt France" uid="884755" country="France" zonedesc="Native Ads" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}"> Texworld Apparel Sourcing Paris Weaving the Future | Get Your Free Badge </a> <a target="_blank" href="https://www.fibre2fashion.com/business-solutions/brandbuilding-solutions/" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}" class=""> <span style="color: #c2c2c2; font-size: 12px;"> | <span style="color: var(--secondarycolor); font-size: var(--smallfontsize);">Ad</span> </span> </a> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/9037/role-of-marketplace-in-exports" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/91/9037/marketplace-small_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="marketplace-small" title="marketplace-small" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/9037/role-of-marketplace-in-exports" class="blocktitle" target="_blank">Role of Marketplace in Exports</a> </div> </div> </div> <hr /> <div class="related-articles-box "> <div class="related-articles-img"> <a href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTeVhOocKBic23uKdQd6WIar2vuftX9BkVLvCw7aL4yHeD55WSVjMvxZv7T0gOlBWQw16N7PUqtbJu90o/vfZmRsj2tn3sAZtCdeuafdfz69jGK9+HWAlJ9WnpXwto2iERjr8WlX0NpeThrAyCsIf/fk5cmEw6zrvWsG8hH9Hv3a77/rIRs5pFuapNXY65A9fmR2c8oDOh0+k3+3e9/d4ZbpvME0vM37io+1+zWrKtzPASTqMWiBE/0YOwroR4jK0M+IJoxFlFkwiwo/1rf+dvayyDGIn0pby1AcvnaDAeI/pYSPTh+kTThJfV3P0T7rfd5zAp9b1Tps+qKVwu43w8JC0DLCNL/5pytXe6R8H9HjEw+cihAbufiU12hWJ6LaWAZjVN1lVhmhMJb0J7uWE3h1cQonE5eCPu7tAtXENI9XFw+63uo0ymfbCx1GH/thxw2nCtqqJ+ORDu/kKiXbdJREVDlgPAEJITA8W0WxrZVpRdBXsRbWvdc4rW1mY+HYxeiXxSbYzQfBMNywewmloW8ZHrGKZfvV4OOMohwiD7ZsnvSoYFvIpYfeK/ZM6dYgWQ+ak25jkTZQ+QdpunSoHcA==" target="_blank" class="gaclicktracking " title="Discover the Oeko-Tex Labeling Guide for Your Products – Learn More" placementid="14465" adsid="2587" displayorder="2" pcstartdate="19/11/2024" pcenddate="19/11/2024" platform="Desktop" channel="Article" region="All" zone="NativeAd" campaigncode="OEKO-TEX Service GmbH - 24" companyname="OEKO-TEX Service GmbH" uid="908805" country="Switzerland" zonedesc="Native Ads" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}"> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2587/OEKO-TEX_AZ_Fibre2fashion_NL_EN_640x40020241119162353.png?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" alt="Discover the Oeko-Tex Labeling Guide for Your Products – Learn More" title="Discover the Oeko-Tex Labeling Guide for Your Products – Learn More" class="img-responsive " /> <img style="height:1px !important; width:1px !important; position:absolute;" src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTeVhOocKBic23uKdQd6WIar2vuftX9BkVLvCw7aL4yHeD55WSVjMvxZv7T0gOlBWQw16N7PUqtbJu90o/vfZmRsj2tn3sAZtCdeuafdfz69jGK9+HWAlJ9WnpXwto2iERjr8WlX0NpeThrAyCsIf/fk5cmEw6zrvWsG8hH9Hv3a77/rIRs5pFuapNXY65A9fmR2c8oDOh0+k3+3e9/d4ZbpvME0vM37io+1+zWrKtzPASTqMWiBE/0YOwroR4jK0M+IJoxFlFkwiwo/1rf+dvayyDGIn0pby1AcvnaDAeI/pYSPTh+kTThJfV3P0T7rfd5zAp9b1Tps+qKVwu43w8JC0DLCNL/5pytXe6R8H9HjEw+cihAbufiU12hWJ6LaWAZjVN1lVhmhMJb0J7uWE3h1cQonE5eCPu7tAtXENI9XFw+63uo0ymfbCx1GH/thxw2nCtqqJ+ORDu/kKiXbdJREVDlgPAEJITA8W0WxrZVpRdBXsRbWvdc4rW1mY+HYxeiXxSbYzQfBMNywewmloW8ZHrGKZfvV4OOMohwiD7ZsnvSoYFvIpYfeK/ZM6dYgWQ+ak25jkTZQ+QdpunSoHcA==" data-src="" class="onscrollloading gaTracking"> </a> </div> <div class="related-articles-content"> <p> <span class="categoryname">Sponsored</span> </p> <a href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTeVhOocKBic23uKdQd6WIar2vuftX9BkVLvCw7aL4yHeD55WSVjMvxZv7T0gOlBWQw16N7PUqtbJu90o/vfZmRsj2tn3sAZtCdeuafdfz69jGK9+HWAlJ9WnpXwto2iERjr8WlX0NpeThrAyCsIf/fk5cmEw6zrvWsG8hH9Hv3a77/rIRs5pFuapNXY65A9fmR2c8oDOh0+k3+3e9/d4ZbpvME0vM37io+1+zWrKtzPASTqMWiBE/0YOwroR4jK0M+IJoxFlFkwiwo/1rf+dvayyDGIn0pby1AcvnaDAeI/pYSPTh+kTThJfV3P0T7rfd5zAp9b1Tps+qKVwu43w8JC0DLCNL/5pytXe6R8H9HjEw+cihAbufiU12hWJ6LaWAZjVN1lVhmhMJb0J7uWE3h1cQonE5eCPu7tAtXENI9XFw+63uo0ymfbCx1GH/thxw2nCtqqJ+ORDu/kKiXbdJREVDlgPAEJITA8W0WxrZVpRdBXsRbWvdc4rW1mY+HYxeiXxSbYzQfBMNywewmloW8ZHrGKZfvV4OOMohwiD7ZsnvSoYFvIpYfeK/ZM6dYgWQ+ak25jkTZQ+QdpunSoHcA==" class="blue-heading gaclicktracking " target="_blank" title="Discover the Oeko-Tex Labeling Guide for Your Products – Learn More" placementid="14465" adsid="2587" displayorder="2" pcstartdate="19/11/2024" pcenddate="19/11/2024" platform="Desktop" channel="Article" region="All" zone="NativeAd" campaigncode="OEKO-TEX Service GmbH - 24" companyname="OEKO-TEX Service GmbH" uid="908805" country="Switzerland" zonedesc="Native Ads" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}"> Discover the Oeko-Tex Labeling Guide for Your Products – Learn More </a> <a target="_blank" href="https://www.fibre2fashion.com/business-solutions/brandbuilding-solutions/" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FSection":"Middle","F2FType":"Static"}" class=""> <span style="color: #c2c2c2; font-size: 12px;"> | <span style="color: var(--secondarycolor); font-size: var(--smallfontsize);">Ad</span> </span> </a> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/9033/government-export-promotion-push-from-india-necessary-but-is-it-sufficient-to-lift-the-market" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/91/9033/machine-small_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="machine-small" title="machine-small" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/9033/government-export-promotion-push-from-india-necessary-but-is-it-sufficient-to-lift-the-market" class="blocktitle" target="_blank">Government Export Promotion Push from India – Necessary but is it sufficient to lift the market?</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8740/an-update-on-cotton-price" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/88/8740/b1_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="b1" title="b1" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8740/an-update-on-cotton-price" class="blocktitle" target="_blank">An Update on Cotton Price</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8727/7-best-virtual-trade-show-platform-leading-the-events-and-exhibitions" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/88/8727/b1_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="b1" title="b1" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8727/7-best-virtual-trade-show-platform-leading-the-events-and-exhibitions" class="blocktitle" target="_blank">7 Best Virtual Trade Show Platform Leading the Events and Exhibitions</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8724/top-7-uk-home-textile-brands-everyone-should-know-about" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/88/8724/C1_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="C1" title="C1" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8724/top-7-uk-home-textile-brands-everyone-should-know-about" class="blocktitle" target="_blank">Top 7 UK Home-Textile Brands Everyone Should Know About</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8710/antimicrobial-fabrics-the-future-of-textiles" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/88/8710/C1_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="C1" title="C1" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8710/antimicrobial-fabrics-the-future-of-textiles" class="blocktitle" target="_blank">Antimicrobial Fabrics: The Future of Textiles</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8709/united-kingdom-is-ruling-the-apparel-and-fashion-world-here-s-how" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/88/8709/A1_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="A1" title="A1" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8709/united-kingdom-is-ruling-the-apparel-and-fashion-world-here-s-how" class="blocktitle" target="_blank">United Kingdom Is Ruling The Apparel And Fashion World. Here’s How</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8708/top-3-textile-trends-transforming-the-uk-fashion-world" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/88/8708/B1_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="B1" title="B1" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8708/top-3-textile-trends-transforming-the-uk-fashion-world" class="blocktitle" target="_blank">Top 3 Textile Trends Transforming the UK Fashion World</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8700/global-fibre-market-outlook-an-overview" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/87/8700/s (2)_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="s (2)" title="s (2)" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8700/global-fibre-market-outlook-an-overview" class="blocktitle" target="_blank">Global Fibre Market Outlook - An Overview</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8698/global-apparel-market-outlook-an-overview" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/87/8698/s_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="s" title="s" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8698/global-apparel-market-outlook-an-overview" class="blocktitle" target="_blank">Global Apparel Market Outlook - An Overview</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8680/let-s-talk-sustainable-fashion" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/87/8680/blog-small_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="blog-small" title="blog-small" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8680/let-s-talk-sustainable-fashion" class="blocktitle" target="_blank">Let's talk sustainable fashion</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8672/top-5-luxurious-brands-shaping-the-denim-industry" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/87/8672/s (6)_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="s (6)" title="s (6)" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8672/top-5-luxurious-brands-shaping-the-denim-industry" class="blocktitle" target="_blank">Top 5 Luxurious Brands Shaping the Denim Industry</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8660/4-ways-trade-data-can-boost-your-textile-business" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/87/8660/s (5)_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="s (5)" title="s (5)" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8660/4-ways-trade-data-can-boost-your-textile-business" class="blocktitle" target="_blank">4 Ways Trade Data Can Boost Your Textile Business</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8654/top-3-challenges-of-fashion-industry-brands-might-encounter-while-embracing-circularity" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/87/8654/s (5)_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="s (5)" title="s (5)" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8654/top-3-challenges-of-fashion-industry-brands-might-encounter-while-embracing-circularity" class="blocktitle" target="_blank">Top 3 Challenges of Fashion Industry Brands Might Encounter While Embracing Circularity</a> </div> </div> </div> <hr /> <div class="related-articles-box"> <div class="related-articles-img"> <a href="https://www.fibre2fashion.com/industry-article/8645/after-covid-19-outbreak-will-china-apparel-industry-be-able-to-fuel-the-next-wave-of-business" target="_blank"> <img width="250" height="154" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news-mobile.png" data-src="https://static.fibre2fashion.com//articleresources/images/87/8645/s (5)_Small.jpg?tr=w-250,h-154,c-at_max,cm-pad_resize,bg-ffffff" class="img-responsive onscrollloading" alt="s (5)" title="s (5)" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-content"> <div class=""> <a href="https://www.fibre2fashion.com/industry-article/blog/859" class="categoryname" target="_blank">Blogs</a> </div> <div class="editor-pera"> <a href="https://www.fibre2fashion.com/industry-article/8645/after-covid-19-outbreak-will-china-apparel-industry-be-able-to-fuel-the-next-wave-of-business" class="blocktitle" target="_blank">After COVID-19 Outbreak, Will China Apparel Industry Be Able to Fuel the Next Wave of Business?</a> </div> </div> </div> <hr /> <div class="row"> <div class="col-md-12 text-right"><ul class="pagination pagination-sm"><li class="active"><a>1</a></li><li><a href="https://www.fibre2fashion.com/industry-article/blog/859?page=2">2</a></li><li><a href="https://www.fibre2fashion.com/industry-article/blog/859?page=3">3</a></li><li><a href="https://www.fibre2fashion.com/industry-article/blog/859?page=4">4</a></li><input id="pagerTotalPages" type="hidden" value="4"></input></ul></div> </div> </div> </div> </div> <div class="col-lg-4 col-md-12 col-sm-12"> <div class="verticalbanners"> <ul> <li title="OEKO-TEX"> <a target="_blank" class="gaclicktracking " title="OEKO-TEX" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTeVhOocKBic23uKdQd6WIar2vuftX9BkVLvCw7aL4yHeD55WSVjMvxZv7T0gOlBWQw16N7PUqtbJu90o/vfZmRsj2tn3sAZtCdeuafdfz69jGK9+HWAlJ9WnpXwto2iERjr8WlX0NpeThrAyCsIf/fk5cmEw6zrvWsG8hH9Hv3a77/rIRs5pFuapNXY65A9fmR2c8oDOh0+k3+3e9/d4ZbpvME0vM37io+1+zWrKtzPASTqMWiBE/0YOwroR4jK0He+8U5+P/kUhkbpdk+EO3v44wygOCCSYT849Y3b748fAoEP+70UVKJpu3XWofYbIbK+4kQCp9oWD1N23Xh4XH07gIfvG1lnFIm/gR9Dh0Fbw5prHUrxozby9FhEsQKoq2nepNDuYi8BvbrUqzHa314Pwua2QCA3kbmRgNJSvEBn1Q4kJRU22AHjST/atMopuwauw3ox1qRggmwi1YlZJ2snxwlNSAkptX9/GgzxZ8KQ3pfHkUe1p0C1U1lvuo2f5CjGOnDJmct5YmCptMy0U5PDWPfrCoiho+TBMUfykMuO0qD/4apZfA0nSly/8b5YVRgGe/dbCbBiRO0Nsc0KyRFCv8BqX8/OdNX8WFea+mOw=" placementid="14534" adsid="2587" displayorder="1" pcstartdate="26/11/2024" pcenddate="26/11/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" campaigncode="OEKO-TEX Service GmbH - 24" companyname="OEKO-TEX Service GmbH" uid="908805" country="Switzerland" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTeVhOocKBic23uKdQd6WIar2vuftX9BkVLvCw7aL4yHeD55WSVjMvxZv7T0gOlBWQw16N7PUqtbJu90o/vfZmRsj2tn3sAZtCdeuafdfz69jGK9+HWAlJ9WnpXwto2iERjr8WlX0NpeThrAyCsIf/fk5cmEw6zrvWsG8hH9Hv3a77/rIRs5pFuapNXY65A9fmR2c8oDOh0+k3+3e9/d4ZbpvME0vM37io+1+zWrKtzPASTqMWiBE/0YOwroR4jK0He+8U5+P/kUhkbpdk+EO3v44wygOCCSYT849Y3b748fAoEP+70UVKJpu3XWofYbIbK+4kQCp9oWD1N23Xh4XH07gIfvG1lnFIm/gR9Dh0Fbw5prHUrxozby9FhEsQKoq2nepNDuYi8BvbrUqzHa314Pwua2QCA3kbmRgNJSvEBn1Q4kJRU22AHjST/atMopuwauw3ox1qRggmwi1YlZJ2snxwlNSAkptX9/GgzxZ8KQ3pfHkUe1p0C1U1lvuo2f5CjGOnDJmct5YmCptMy0U5PDWPfrCoiho+TBMUfykMuO0qD/4apZfA0nSly/8b5YVRgGe/dbCbBiRO0Nsc0KyRFCv8BqX8/OdNX8WFea+mOw=" class="gaTracking" pcstartdate="26/11/2024" pcenddate="26/11/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2587/OEKO-TEX_AZ_Fibre2fashion_NL_EN_640x40020241126141941.png" alt="OEKO-TEX" class="img-responsive " /> </a> </li> <li title="Kern-Liebers"> <a target="_blank" class="gaclicktracking " title="Kern-Liebers" href=" https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTsBf0UvYNjb8KKFwrr7UGpZfSuTRjD9kEXeSuYfC1M2KLm5KGQFea2/N3cBg/Bz40714jaMEP9ELKgJ4HxN/qOfL7vT/cELuWhzdSPtgcN9JO9ijb07GLCVUWUiN7quqXnT0u6ENMWxiXi1joZCi8kvXYF25n04EVXv0sxO74O6qDz5nXZPBJnTU43z5XkyhlQze9nUEdPSZ0h7Z4WldwByC4plOuPJRSAb2EUabwCvxQhwHCdUEBp8KkD8gHCF8yxrI04APJw1EHunKkY4NKP2sQ8fBWRjjJcmam3KcTe7VjaX2Wff0BqvhUFLLLNx4bC+F+xXgNL4ABZbeawchCoHTdjU52AaesSJvZJUIIEGhny4nydTnj+7sQIofmmru/VgiSJrT/+GtckwRImvFZvVzueZsXTGvDCA9f7H+lh9wjuxlN8KCetdq2GdM0qtcObGIbWjwxlaU1g2y9TzruLG8N4i+18tftba1a7DxPk3Stwb37vwFEXBcPItkaibv" placementid="14551" adsid="2507" displayorder="2" pcstartdate="01/12/2024" pcenddate="01/12/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" campaigncode="KERN-LIEBERS KNITTING PARTS GMBH - 2024" companyname="KERN-LIEBERS KNITTING PARTS GMBH" uid="795030" country="Germany" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqTsBf0UvYNjb8KKFwrr7UGpZfSuTRjD9kEXeSuYfC1M2KLm5KGQFea2/N3cBg/Bz40714jaMEP9ELKgJ4HxN/qOfL7vT/cELuWhzdSPtgcN9JO9ijb07GLCVUWUiN7quqXnT0u6ENMWxiXi1joZCi8kvXYF25n04EVXv0sxO74O6qDz5nXZPBJnTU43z5XkyhlQze9nUEdPSZ0h7Z4WldwByC4plOuPJRSAb2EUabwCvxQhwHCdUEBp8KkD8gHCF8yxrI04APJw1EHunKkY4NKP2sQ8fBWRjjJcmam3KcTe7VjaX2Wff0BqvhUFLLLNx4bC+F+xXgNL4ABZbeawchCoHTdjU52AaesSJvZJUIIEGhny4nydTnj+7sQIofmmru/VgiSJrT/+GtckwRImvFZvVzueZsXTGvDCA9f7H+lh9wjuxlN8KCetdq2GdM0qtcObGIbWjwxlaU1g2y9TzruLG8N4i+18tftba1a7DxPk3Stwb37vwFEXBcPItkaibv" class="gaTracking" pcstartdate="01/12/2024" pcenddate="01/12/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2507/640x400px20241127143959.jpg" alt="Kern-Liebers" class="img-responsive " /> </a> </li> <li title="TESTEX"> <a target="_blank" class="gaclicktracking " title="TESTEX" href=" https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mqlw8ipGGIbh7S4/J+X7DaTMbFQE93Yfr88HN8IqXhOTGK79GiRL8t8OzL2FFKlegGyyXKG1rhh5+q/hpjcBmo3zuR4SieR7A4oXbzoR3hNRl6549U6UvsDa5cXLQ7uS64ujj/5HTzHzstatVsPh1vJBRhrXV6GGFs/Xh12cckulA0yoGzz6pFlRTkoACj7jNxuZlJ+f8q5xK+8NPyxATeuxPTyZE3FziTUWnrCQQpTPsWKqBIcaErhN0sRYhkEO12XYbcrL3gZqPcW5eYA4KqDtlxfr/xgtoyvWMfW26mLeOA4bwYLyAUsnoyk0o2FErvjJkC6JdzbjMQgvuC11qdlpLUdd+4ogwNSHP2Y7H+IM6XyFQENMzF9IHDRoPB7nUWJHHGns3yuzPPXcPufsiZQKiAxuQNRnurMLP5G8RFNk55XS98nQWwafQ8VcKvs0cJgnHbXTKs+eHEZDtg09QGISDDZLiFmd9+TUiOvDGZ4Q8WsY0cQHMO5A==" placementid="14552" adsid="2575" displayorder="3" pcstartdate="01/12/2024" pcenddate="01/12/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" campaigncode="TESTEX AG_ Swiss Textile Testing Institute - 2024" companyname="TESTEX AG, Swiss Textile Testing Institute" uid="800632" country="Switzerland" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mqlw8ipGGIbh7S4/J+X7DaTMbFQE93Yfr88HN8IqXhOTGK79GiRL8t8OzL2FFKlegGyyXKG1rhh5+q/hpjcBmo3zuR4SieR7A4oXbzoR3hNRl6549U6UvsDa5cXLQ7uS64ujj/5HTzHzstatVsPh1vJBRhrXV6GGFs/Xh12cckulA0yoGzz6pFlRTkoACj7jNxuZlJ+f8q5xK+8NPyxATeuxPTyZE3FziTUWnrCQQpTPsWKqBIcaErhN0sRYhkEO12XYbcrL3gZqPcW5eYA4KqDtlxfr/xgtoyvWMfW26mLeOA4bwYLyAUsnoyk0o2FErvjJkC6JdzbjMQgvuC11qdlpLUdd+4ogwNSHP2Y7H+IM6XyFQENMzF9IHDRoPB7nUWJHHGns3yuzPPXcPufsiZQKiAxuQNRnurMLP5G8RFNk55XS98nQWwafQ8VcKvs0cJgnHbXTKs+eHEZDtg09QGISDDZLiFmd9+TUiOvDGZ4Q8WsY0cQHMO5A==" class="gaTracking" pcstartdate="01/12/2024" pcenddate="01/12/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2575/TESTEX_AD_Online_couple_640x400_EN20241127144127.gif" alt="TESTEX" class="img-responsive " /> </a> </li> <li title="FESPA MIDDLE EAST"> <a target="_blank" class="gaclicktracking " title="FESPA MIDDLE EAST" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqtaI5tLvOqAEPlPoinRtRIFDspo51KWXiDjW+8RCaXSwYNZ3Nn3jXHaMp+1rWMma+LFrqMteepF+CtEOjm8eFQt09XvRq7qUwNR8Xoeqw/3UCWwyeBr9drrZV4u53PBuQr2Vq1z5X5DI/MkFixY8BwGDQXX7zOfw33w/zCHqcmrQD+fKgfBvYRUhlruwAghIz0Z/ccLSRpFGvzeIgVG6VPJpDHZZW/s8h9AyqS03G7YboALskPbB+yAh3WImaIFxYXwLRxhS8TfQr17543GfYh0UfOqc0oRiRlVtY8tw9aMY38bPe2eiOIuTm+ROAfQHdsoBHR49+B0Ms6t7WehsboVVZk4vWqDgLQu7t3CaeaV8jvUcEUCLmKL7ALZuhC4mTzTdLntmaAOCflWu7FmUkzhruHHM/5GXjvCXUZxF7r23SKYNgFZIHTJZdy8YnHcIEzdEu1sGr9TpcCpqcbdvHNWmrScywGrPIQd/arfbqisSZOxGfN+pMjdzlykwrwxKTrivRkGyFpwk6724tHoBmY8iDnrPCi/bWbxhbTfgk/Hnq/SSy7rMXkjFyeo0rp5dytmgxTJnRYKvaD5E/jqIB9P7TP5Ocg9jQBSjvVj9QWmu/z2ld7RXggUcU1uZrXMXo4V7LkZqvQ6o=" placementid="14409" adsid="2607" displayorder="4" pcstartdate="05/11/2024" pcenddate="05/11/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" campaigncode="AD Communications Ltd - 2024" companyname="AD Communications Ltd" uid="214633" country="United Kingdom" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8MqtaI5tLvOqAEPlPoinRtRIFDspo51KWXiDjW+8RCaXSwYNZ3Nn3jXHaMp+1rWMma+LFrqMteepF+CtEOjm8eFQt09XvRq7qUwNR8Xoeqw/3UCWwyeBr9drrZV4u53PBuQr2Vq1z5X5DI/MkFixY8BwGDQXX7zOfw33w/zCHqcmrQD+fKgfBvYRUhlruwAghIz0Z/ccLSRpFGvzeIgVG6VPJpDHZZW/s8h9AyqS03G7YboALskPbB+yAh3WImaIFxYXwLRxhS8TfQr17543GfYh0UfOqc0oRiRlVtY8tw9aMY38bPe2eiOIuTm+ROAfQHdsoBHR49+B0Ms6t7WehsboVVZk4vWqDgLQu7t3CaeaV8jvUcEUCLmKL7ALZuhC4mTzTdLntmaAOCflWu7FmUkzhruHHM/5GXjvCXUZxF7r23SKYNgFZIHTJZdy8YnHcIEzdEu1sGr9TpcCpqcbdvHNWmrScywGrPIQd/arfbqisSZOxGfN+pMjdzlykwrwxKTrivRkGyFpwk6724tHoBmY8iDnrPCi/bWbxhbTfgk/Hnq/SSy7rMXkjFyeo0rp5dytmgxTJnRYKvaD5E/jqIB9P7TP5Ocg9jQBSjvVj9QWmu/z2ld7RXggUcU1uZrXMXo4V7LkZqvQ6o=" class="gaTracking" pcstartdate="05/11/2024" pcenddate="05/11/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2607/FME25_Fibre2Fashion_Banner_FMEH505_640x40020241105143835.png" alt="FESPA MIDDLE EAST" class="img-responsive " /> </a> </li> <li title="Reliance Industries"> <a target="_blank" class="gaclicktracking " title="Reliance Industries" href="https://adsclick.fibre2fashion.com/app/clk/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mq/4nlXvxvvdZUjQieaSf7SuRgOMHZcnVLpxl4JQ7jO1uQ+YXXScuzPCaNaXJa7ZHlkt2UY5hkWHBZi2m5oNZXADjfqnIBiC8EQCN6ud/Mw3QQ7LXXw+6jVIfPQCNqJJBVsebsMi+DXhgKcd+3txHuEpZyu8v3+FdBCeyC9JV9a0eLm0HcBxBRancVepLhfI76hN1PfOqm/Ygov3iN8VscZH1fBoUAyWBMQfusE0/dw6+k7oVtEweS4Bemw5cHFneydNb+UV+xjstAxBY7cKiC+kc31rAnHg6VxjcZJ8NbXkCyfliVjVpAbifM0xwjN7OutfiAQK5zc9qC/6Hir5hEK/zJvQidFhUJv+0PapUCzC5MlNZBJyorZTdIfRnSZfRo1UogTNrb5uDZz2qHMbnOPSnvMRH/8JlnemSDuUN9MMPAMC8CCKLKcg3/gdFe577fwe/BX4XJTEM=" placementid="12618" adsid="2481" displayorder="5" pcstartdate="27/02/2024" pcenddate="27/02/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" campaigncode="Reliance Industries Limited - 2024" companyname="Reliance Industries Limited" uid="592344" country="India" zonedesc="Right side block 1"> <img height="1" width="1" style='display: block; height:1px !important; width:1px !important;' src="https://adsclick.fibre2fashion.com/app/imp/?q=07lrR3Iex48lWl+gszBH7x8K0JeON8Mq/4nlXvxvvdZUjQieaSf7SuRgOMHZcnVLpxl4JQ7jO1uQ+YXXScuzPCaNaXJa7ZHlkt2UY5hkWHBZi2m5oNZXADjfqnIBiC8EQCN6ud/Mw3QQ7LXXw+6jVIfPQCNqJJBVsebsMi+DXhgKcd+3txHuEpZyu8v3+FdBCeyC9JV9a0eLm0HcBxBRancVepLhfI76hN1PfOqm/Ygov3iN8VscZH1fBoUAyWBMQfusE0/dw6+k7oVtEweS4Bemw5cHFneydNb+UV+xjstAxBY7cKiC+kc31rAnHg6VxjcZJ8NbXkCyfliVjVpAbifM0xwjN7OutfiAQK5zc9qC/6Hir5hEK/zJvQidFhUJv+0PapUCzC5MlNZBJyorZTdIfRnSZfRo1UogTNrb5uDZz2qHMbnOPSnvMRH/8JlnemSDuUN9MMPAMC8CCKLKcg3/gdFe577fwe/BX4XJTEM=" class="gaTracking" pcstartdate="27/02/2024" pcenddate="27/02/2024" platform="Desktop" channel="Article" region="Article And Author List" zone="R1" alt="Spacer Tracking" /> <img src="https://static.fibre2fashion.com/staticresources/advertisementresources/ads/2481/640x40020240227104758.jpg" alt="Reliance Industries" class="img-responsive " /> </a> </li> </ul> </div> <div> <div class="editor-details"> <div class="whiteboxtitle"> <h4 class="section-title"> Popular Articles </h4> </div> <div class="white-box recommended"> <div class="related-articles-list-box"> <div class="related-articles-list-img"> <a href="https://www.fibre2fashion.com/industry-article/10221/navigating-rough-waters-the-chemicals-industry-s-struggle-with-rising-sea-freight-costs"> <img width="219" height="146" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news.png" data-src="https://static.fibre2fashion.com//articleresources/images/103/10221/AdobeStock_987169149-s_Small.jpg?tr=w-377,h-252,c-at_max" alt="The Chemical Industry’s Struggle with Rising Sea Freight Costs" title="The Chemical Industry’s Struggle with Rising Sea Freight Costs" class="img-fluid onscrollloading" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-list-content"> <a class="categoryname list-category-content" href="https://www.fibre2fashion.com/industry-article//textile-industry-articles/1">Textile</a> <div class="editor-pera"> <a class="blocktitle" href="https://www.fibre2fashion.com/industry-article/10221/navigating-rough-waters-the-chemicals-industry-s-struggle-with-rising-sea-freight-costs">Navigating Rough Waters: The Chemicals Industry’s Struggle with...</a> </div> </div> </div> <div class="related-articles-list-box"> <div class="related-articles-list-img"> <a href="https://www.fibre2fashion.com/industry-article/10206/apparel-machinery-getting-to-the-final-stitch"> <img width="219" height="146" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news.png" data-src="https://static.fibre2fashion.com//articleresources/images/103/10206/ss4946e8_Small.jpg?tr=w-377,h-252,c-at_max" alt="Apparel Machinery" title="Apparel Machinery" class="img-fluid onscrollloading" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-list-content"> <a class="categoryname list-category-content" href="https://www.fibre2fashion.com/industry-article//industrial-apparel-textile-machines/13">Machinery</a> <div class="editor-pera"> <a class="blocktitle" href="https://www.fibre2fashion.com/industry-article/10206/apparel-machinery-getting-to-the-final-stitch">Apparel Machinery: Getting to the Final Stitch</a> </div> </div> </div> <div class="related-articles-list-box"> <div class="related-articles-list-img"> <a href="https://www.fibre2fashion.com/industry-article/10203/top-autumn-winter-2025-trends-and-style-tips-to-check-out"> <img width="219" height="146" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news.png" data-src="https://static.fibre2fashion.com//articleresources/images/103/10203/fashion-small_Small.jpg?tr=w-377,h-252,c-at_max" alt="fashion-small" title="fashion-small" class="img-fluid onscrollloading" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-list-content"> <a class="categoryname list-category-content" href="https://www.fibre2fashion.com/industry-article//free-fashion-industry-article/7">Fashion</a> <div class="editor-pera"> <a class="blocktitle" href="https://www.fibre2fashion.com/industry-article/10203/top-autumn-winter-2025-trends-and-style-tips-to-check-out">Top Autumn/Winter 2025 Trends and Style Tips to Check Out</a> </div> </div> </div> <div class="related-articles-list-box"> <div class="related-articles-list-img"> <a href="https://www.fibre2fashion.com/industry-article/10210/5-ways-going-plastic-free-will-future-proof-your-bottom-line"> <img width="219" height="146" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news.png" data-src="https://static.fibre2fashion.com//articleresources/images/103/10210/5 Ways Going Plastic-Free 1_Small.jpg?tr=w-377,h-252,c-at_max" alt="5 Ways Going Plastic-Free 1" title="5 Ways Going Plastic-Free 1" class="img-fluid onscrollloading" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-list-content"> <a class="categoryname list-category-content" href="https://www.fibre2fashion.com/industry-article//sustainability/157">Sustainability</a> <div class="editor-pera"> <a class="blocktitle" href="https://www.fibre2fashion.com/industry-article/10210/5-ways-going-plastic-free-will-future-proof-your-bottom-line">5 Ways Going Plastic-Free will Future-Proof your Bottom Line</a> </div> </div> </div> <div class="related-articles-list-box"> <div class="related-articles-list-img"> <a href="https://www.fibre2fashion.com/industry-article/10220/lessons-for-india-from-the-philippines-abaca-fibre-industry"> <img width="219" height="146" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news.png" data-src="https://static.fibre2fashion.com//articleresources/images/103/10220/AdobeStock_280770828s_Small.jpg?tr=w-377,h-252,c-at_max" alt="Philippines’s Abaca Fibre Industry" title="Philippines’s Abaca Fibre Industry" class="img-fluid onscrollloading" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-list-content"> <a class="categoryname list-category-content" href="https://www.fibre2fashion.com/industry-article//textile-industry-articles/1">Textile</a> <div class="editor-pera"> <a class="blocktitle" href="https://www.fibre2fashion.com/industry-article/10220/lessons-for-india-from-the-philippines-abaca-fibre-industry">Lessons for India from the Philippines’ Abaca Fibre Industry</a> </div> </div> </div> <div class="related-articles-list-box"> <div class="related-articles-list-img"> <a href="https://www.fibre2fashion.com/industry-article/10211/blake-lively-s-top-fashion-moments"> <img width="219" height="146" src="https://static.fibre2fashion.com//staticresources/images/loader-home-news.png" data-src="https://static.fibre2fashion.com//articleresources/images/103/10211/Blake Lively’s Top Fashion Moment 1_Small.jpg?tr=w-377,h-252,c-at_max" alt="Blake Lively’s Top Fashion Moment 1" title="Blake Lively’s Top Fashion Moment 1" class="img-fluid onscrollloading" onerror='NoImageForSmall(this,"/industry-article/");' /> </a> </div> <div class="related-articles-list-content"> <a class="categoryname list-category-content" href="https://www.fibre2fashion.com/industry-article//free-fashion-industry-article/7">Fashion</a> <div class="editor-pera"> <a class="blocktitle" href="https://www.fibre2fashion.com/industry-article/10211/blake-lively-s-top-fashion-moments">Blake Lively’s Top Fashion Moments</a> </div> </div> </div> </div> </div> </div> <div class="clear"></div> <div class="trending-tag margintop20"> <div class="whiteboxtitle"> <h4 class="section-title"> Trending Tags </h4> <div class="latest-view-btn"> <a href=https://www.fibre2fashion.com/industry-article/category data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">View All</a> </div> </div> <div class="margintop20"> <ul> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/covid-19/935" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Covid-19</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/handloom/41" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Handloom</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/textile-industry-articles/1" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Textile</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/athleisure/380" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Athleisure</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/supply-chain/52" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Supply Chain</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/sustainability/157" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Sustainability</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/market-research-industry-reports/3" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Industry</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/free-retail-industry-article/8" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Retail</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/fashion-design/933" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Fashion Design</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/hr/257" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">HR</a></li> <li><a target="_blank" href="https://www.fibre2fashion.com/industry-article/luxury/169" data-f2feventclicktrack="{"F2FEventName":"Textlink Clicked","F2FEventType":"Text Link","F2FBlockName":"Trending Tags","F2FSection":"Middle","F2FType":"Static"}">Luxury</a></li> </ul> </div> </div> </div> <br> <br> <div class="clear"></div> </div> </div> <div class="clear"></div> </div> <script> $(document).ready(function () { MixpanelF2FEventAttributes.F2FPageName = "Articles"; MixpanelF2FEventAttributes.F2FIsDomainOnly = "False"; MixpanelF2FEventAttributes.F2FIsSubdomainOnly = "False"; MixpanelF2FEventAttributes.F2FIsTopPage = "False"; MixpanelF2FEventAttributes.F2FIsHome = "False"; MixpanelF2FEventAttributes.F2FIsList = "True"; MixpanelF2FEventAttributes.F2FIsArticle = "True"; MixpanelF2FEventAttributes.F2FIsDetail = "False"; MixpanelF2FEventAttributes.F2FIsCategory = "True"; MixpanelF2FEventAttributes.F2FCategory = "Blogs"; MixpanelF2FEventAttributes.F2FIsSubcategory = "False"; }); function getUrlParameter(name) { name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); }; </script> <style> #wechat { position: fixed; display: inline-block; top: 337px; left: 0; opacity: 1; transition: 0.3s; border-radius: 50%; overflow: hidden; } #wechatQR { position: fixed; display: inline-block; top: 290px; padding: 10px 0; left: -165px; transition: .5s; z-index: 99999; } </style> <div id="dwcchiana" style="display: none;"> <div id="wechat"> <a href="Javascript:void(0);" onclick="WCclick()"> <img src="//www.fibre2fashion.com/_footer2015/wechat/images/wechat-icon.png" width="68" height="68" alt="" /></a> </div> <div id="wechatQR"> <a href="Javascript:void(0);" onclick="WCQR()"> <img src="//www.fibre2fashion.com/_footer2015/wechat/images/wechat-QR1.png" alt="" /> </a> </div> </div> <script> wecname = ReadCookie("Country") if(wecname == "China") { $("#dwcchiana").css("display","block"); //$("#dwcchiana").show(); }else { $("#dwcchiana").css("display","none"); //$("#dwcchiana").hide(); } function WCclick() { $("#wechatQR").css("left","0px"); $("#wechat").css("display","none"); } function WCQR() { $("#wechatQR").css("left","-165px"); $("#wechat").css("display","block"); } </script> </div> <div class="footer"> <div class="container"> <script type="text/javascript"> function validateChecks() { var chks = document.getElementsByName('NLType'); var checkCount = 0; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { checkCount++; } } if (checkCount < 1) { return false; } return true; } var emailValidationMessage = 'Please enter valid email address.'; function doalert(checkboxElem) { if (checkboxElem.checked) { var chks = document.getElementsByName('NLType'); var checkCount = 0; var checkval = ""; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { if (checkval == "") { checkval = chks[i].value; } else { checkval = checkval + "~" + chks[i].value; } } } $("#SelNLType").val(checkval); } else { var chks = document.getElementsByName('NLType'); var checkCount = 0; var checkval = ""; for (var i = 0; i < chks.length; i++) { if (chks[i].checked) { if (checkval == "") { checkval = chks[i].value; } else { checkval = checkval + "~" + chks[i].value; } } } $("#SelNLType").val(checkval); } } function NewsSubscription() { debugger; document.getElementById("f2fnewssuball").setAttribute("disabled", true); var email = jQuery.trim(jQuery("#EmailNewsSubscription").val()); var F2FLeadFormEventData = jQuery.trim(jQuery("#frmNewsSubscription #F2FLeadFormEventData").val()); if (ValidEmail(email)) { document.getElementById("f2fnewssuball").removeAttribute("disabled", false); document.getElementById("f2fnewssuball").setAttribute("disabled", true); var formData = "SelNLType=F2F~Tradefair~DailyNews~TTeNews&EmailNewsSubscription=" + email + "&F2FLeadFormEventData=" + F2FLeadFormEventData; // alert(formData); AjaxCall(BASEPATHURL + "/EmbeddedViews/InsertNewsLetterSubscription", formData, "POST", "JSON", 'NewsSubscriptionSuccess'); } else { alert(emailValidationMessage); jQuery("#EmailNewsSubscription").focus(); document.getElementById("f2fnewssuball").removeAttribute("disabled", false); } } function NewsSubscriptionSuccess(data) { if (data != "") { if (data.Status == "OK") { CreateLocalSrorage(data.LocalStorageData, data.Email, data.F2FLeadFormUserEventData, data.F2FLeadFormEventData); } alert(data.Message); var expara = '';//[{key:'Company',value: "F2F Pvt. ltd" }, {key:'Name' , value: 'Jaimin'}] DataLayerTracking('NewsletterSubscribe', 'Homepage', 'NewsletterSubscribe', expara) } document.getElementById("f2fnewssuball").removeAttribute("disabled", false); } </script> <div class="row"> <div class="col-md-12"> <div class="signup-newsletter "> <div class="signup-newsletter-text"> <div class="signup-newsletter-title"> Sign Up for F2F Newsletters </div> <div class="signup-newsletter-pera"> Subscribe and stay updated. </div> </div> <div class="signup-newsletter-form "> <form id="frmNewsSubscription"> <input id="F2FLeadFormEventData" name="F2FLeadFormEventData" type="hidden" value="{"F2FFormType":"F2F Newsletters","F2FFormTitle":"Signup for F2F Newsletters","F2FSubscriptionDate":"12/1/2024 2:58:14 AM","F2FIsSubscribed":true,"F2FSubscriptionType":"[\r\n \"F2F\",\r\n \"Tradefair\",\r\n \"DailyNews\",\r\n \"TTeNews\"\r\n]","F2FEventName":"Newsletter Subscribed","F2FEventType":"Newsletter Subscribed","F2FBlockName":null,"F2FSection":"Footer","F2FType":"Static","F2FText":null,"F2FProductName":null}"> <input id="EmailNewsSubscription" type="search" name="search" placeholder="Email" /> <input type="button" id="f2fnewssuball" value="Subscribe " onclick="NewsSubscription();"/> </form> <div class="signup-newsletter-form-text"> By submitting, you agree to our <a href="https://www.fibre2fashion.com/terms" target="_blank" style="text-decoration: underline !important; color: #7B86A6 !important;"> Terms of Use</a> and <a href="https://www.fibre2fashion.com/policy" target="_blank" style="text-decoration: underline !important; color: #7B86A6 !important;"> Privacy Policy. </a> </div> </div> </div> </div> </div> </div> <input type="hidden" value="" id="hdncountrycodef2f" /> <div class="footer-detais padding80"> <div class="container"> <div class="footer-wrapper-new"> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/">News</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/textile-news/">Textile News</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/apparel-news/">Apparel News</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/fashion-news/">Fashion News</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/retail-industry/">Retail News</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/textiles-technology-news/">Technology News</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/e-commerce-industry/">E-Commerce News</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/sustainability-news/">Sustainability</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/chemicals-news">Chemicals</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/technical-textiles">Technical Textiles</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/news/from-the-web">Partner News</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="mailto:editorial@fibre2fashion.com">Submit your press release</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://goo.gl/jm3XjC">Download News App <img src="https://static.fibre2fashion.com/staticresources/images/mobileapp.svg" style="height:15px;" alt="Mobile App Icon" title="Mobile App Icon" /></a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/industry-article/">Articles</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/industry-article/analyst-corner/17">Analyst Corner</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/industry-article/magazine-articles/16">Editor's Pick</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/industry-article/advertorial/470">Advertorials</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/industry-article/authors/">Contributors' Profiles</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/industry-article/submit-free-articles/">Become a Contributor - Submit Your Article</a></li> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/interviews/">Interviews </a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/interviews/face2face/">Face2Face</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/interviews/industry-speak/">Industry Speak</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://fashiongear.fibre2fashion.com/fashion-talks/view_all.aspx">Fashion Talk</a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading first-titles" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/market-intelligence/">Market Intelligence</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/market-intelligence/texpro-textile-and-apparel/">TexPro - Take a free demo</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/market-intelligence/textile-market-watch/textile-price-trends/" title="Download Sample Report">Market Watch Report</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/market-intelligence/cotton-price-update/" title=" download sample report">Cotton Report - Download Sample Report</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/market-intelligence/customized-research/">Customised Report</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://onelink.to/bxnkqu">Download Texpro App <img src="https://static.fibre2fashion.com/staticresources/images/mobileapp.svg" style="height:15px;" alt="Mobile App Icon" title="Mobile App Icon" /></a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <div class="clear"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/videos/">Videos</a></li> <div class="clear"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/knowledge/webinar">Webinars</a></li> <div class="clear"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/web-stories">Web Stories</a></li> <div class="clear"></div> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/resources">Resources</a></li> </ul> </div> </div> <div class="footercolumn"> <div class="footer-menu"> <ul> <li><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/business-solutions/magazine/">Fibre2Fashion Magazine</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/business-solutions/magazine/?q=menu#plans">Subscribe</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/business-solutions/magazine/?q=menu">Advertise in Magazine</a></li> <li><a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/business-solutions/magazine/#archive">Browse Archives</a></li> <li class="publication"><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://emagazine.fibre2fashion.com/wokmg/ohmw">Sustainability Compendium</a></li> <li class="publication"><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://emagazine.fibre2fashion.com/wokmg/wmkt">Machinery Compendium</a></li> <li class="publication"><a class="linksheading" target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://emagazine.fibre2fashion.com/wokmg/nrrs">Nonwoven Compendium</a></li> </ul> </div> </div> </div> </div> </div> <div class="footer-bottom"> <div class="footer-bottom-left"> <div class="footer-bottom-left-group"> <a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/aboutus/">About</a> <a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/policy/">Privacy</a> <a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/terms/">Terms of Use</a> <a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/cookie/">Cookie Policy</a> <a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/aboutus/contact">Contact</a> <a target="_blank" data-f2feventclicktrack="{"F2FEventName":"Footer Clicked","F2FEventType":"Footer"}" href="https://www.fibre2fashion.com/apps/">F2F Apps</a> | © 2024, Fibre2Fashion. All rights reserved. </div> </div> <div class="footer-social"> <a target=" _blank" itemprop="sameAs" href="https://www.facebook.com/fibre2fashion/" data-f2feventclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Icon","F2FSection":"Footer","F2FType":"Static","F2FText":"Facebook"}"> <svg class="fb" width=" 26" height="26" viewBox="0 0 26 26" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M13 0.972168C6.09625 0.972168 0.5 6.56842 0.5 13.4722C0.5 19.7109 5.07125 24.8822 11.0475 25.8209V17.0847H7.8725V13.4722H11.0475V10.7184C11.0475 7.58592 12.9125 5.85592 15.7688 5.85592C17.1362 5.85592 18.5662 6.09967 18.5662 6.09967V9.17467H16.9912C15.4375 9.17467 14.9537 10.1384 14.9537 11.1272V13.4722H18.42L17.8662 17.0847H14.9537V25.8209C20.9287 24.8834 25.5 19.7097 25.5 13.4722C25.5 6.56842 19.9037 0.972168 13 0.972168Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.youtube.com/c/Fibre2FashionPvtLtd" data-f2feventclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Icon","F2FSection":"Footer","F2FType":"Static","F2FText":"YouTube"}"> <svg class="yt" width="26" height="21" viewBox="0 0 26 21" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M24.9287 3.39333C25.5 5.69508 25.5 10.5001 25.5 10.5001C25.5 10.5001 25.5 15.3051 24.9287 17.6068C24.6112 18.8791 23.6825 19.8802 22.5062 20.2186C20.37 20.8334 13 20.8334 13 20.8334C13 20.8334 5.63375 20.8334 3.49375 20.2186C2.3125 19.875 1.385 18.8752 1.07125 17.6068C0.5 15.3051 0.5 10.5001 0.5 10.5001C0.5 10.5001 0.5 5.69508 1.07125 3.39333C1.38875 2.12104 2.3175 1.12 3.49375 0.781581C5.63375 0.166748 13 0.166748 13 0.166748C13 0.166748 20.37 0.166748 22.5062 0.781581C23.6875 1.12516 24.615 2.12491 24.9287 3.39333ZM10.5 15.0209L18 10.5001L10.5 5.97925V15.0209Z" fill="#51628D" /> </svg> <a target="_blank" itemprop="sameAs" href="https://twitter.com/fibre2fashion" data-f2feventclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Icon","F2FSection":"Footer","F2FType":"Static","F2FText":"Twitter"}"> <svg width="25" height="30" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> <g clip-path="url(#clip0_7117_39)"> <rect width="30" height="30" transform="matrix(-1 0 0 1 20 -10)"></rect> <path d="M7.5 11L1.8196 18H5L9 13L12.4767 18H18.3333L12.4767 9.66078L17.3333 3H14.5L10.8121 7.78125L7.80039 3H2.33333L7.5 11ZM10.8121 10.4183L15.5326 17.0239H14.4999L10.6886 11.6911L10.0969 10.86L5.14358 3.9283H6.17635L10.8121 10.4183Z" fill="#51628D"></path> </g> <defs> <clipPath id="clip0_7117_39"> <rect width="20" height="20" fill="white" transform="matrix(-1 0 0 -1 20 20)"></rect> </clipPath> </defs> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.linkedin.com/company/fibre2fashion" data-f2feventclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Icon","F2FSection":"Footer","F2FType":"Static","F2FText":"LinkedIn"}"> <svg class="linkdin" width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M19.9187 20.6879H16.5875V15.2926C16.5875 14.0061 16.5625 12.3502 14.85 12.3502C13.1137 12.3502 12.8488 13.7503 12.8488 15.1983V20.6879H9.51625V9.59375H12.7162V11.105H12.76C13.2075 10.2344 14.295 9.31346 15.92 9.31346C19.295 9.31346 19.92 11.61 19.92 14.5977V20.6879H19.9187ZM5.75375 8.07604C5.49944 8.07638 5.24757 8.02485 5.01258 7.92441C4.77758 7.82396 4.56408 7.67658 4.38432 7.4907C4.20456 7.30483 4.06207 7.08412 3.96501 6.84122C3.86796 6.59833 3.81826 6.33803 3.81875 6.07525C3.819 5.67979 3.93272 5.29328 4.14555 4.96461C4.35838 4.63593 4.66074 4.37985 5.01441 4.22875C5.36808 4.07765 5.75717 4.03831 6.13248 4.11571C6.50778 4.19312 6.85244 4.38378 7.12288 4.6636C7.39332 4.94341 7.57739 5.29981 7.65181 5.68773C7.72623 6.07564 7.68766 6.47765 7.54098 6.84291C7.39429 7.20817 7.14608 7.52029 6.82774 7.73978C6.50939 7.95928 6.13521 8.0763 5.7525 8.07604H5.75375ZM7.42375 20.6879H4.0825V9.59375H7.425V20.6879H7.42375ZM21.5875 0.875H2.41125C1.49125 0.875 0.75 1.62417 0.75 2.55029V22.4497C0.75 23.3758 1.4925 24.125 2.41 24.125H21.5825C22.5 24.125 23.25 23.3758 23.25 22.4497V2.55029C23.25 1.62417 22.5 0.875 21.5825 0.875H21.5863H21.5875Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.instagram.com/fibre2fashion/" data-f2feventclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Icon","F2FSection":"Footer","F2FType":"Static","F2FText":"Instagram"}"> <svg class="insta" width="26" height="27" viewBox="0 0 26 27" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M13 0.583252C16.3962 0.583252 16.82 0.596169 18.1525 0.660752C19.4837 0.725335 20.39 0.941044 21.1875 1.26138C22.0125 1.58946 22.7075 2.03379 23.4025 2.75067C24.0381 3.39637 24.5299 4.17743 24.8438 5.0395C25.1525 5.86229 25.3625 6.80004 25.425 8.17567C25.4838 9.55259 25.5 9.99046 25.5 13.4999C25.5 17.0094 25.4875 17.4473 25.425 18.8242C25.3625 20.1998 25.1525 21.1363 24.8438 21.9603C24.5308 22.8229 24.0389 23.6041 23.4025 24.2492C22.7775 24.9058 22.0216 25.4139 21.1875 25.7385C20.3912 26.0575 19.4837 26.2745 18.1525 26.3391C16.82 26.3998 16.3962 26.4166 13 26.4166C9.60375 26.4166 9.18 26.4037 7.8475 26.3391C6.51625 26.2745 5.61 26.0575 4.8125 25.7385C3.97791 25.4149 3.22191 24.9066 2.5975 24.2492C1.96176 23.6036 1.46991 22.8225 1.15625 21.9603C0.84625 21.1375 0.6375 20.1998 0.575 18.8242C0.51625 17.4473 0.5 17.0094 0.5 13.4999C0.5 9.99046 0.5125 9.55259 0.575 8.17567C0.6375 6.79875 0.84625 5.86359 1.15625 5.0395C1.46905 4.1769 1.961 3.39563 2.5975 2.75067C3.22209 2.09351 3.97804 1.58524 4.8125 1.26138C5.61 0.941044 6.515 0.725335 7.8475 0.660752C9.18 0.600044 9.60375 0.583252 13 0.583252ZM13 7.04159C11.3424 7.04159 9.75268 7.72202 8.58058 8.93319C7.40848 10.1444 6.75 11.7871 6.75 13.4999C6.75 15.2128 7.40848 16.8555 8.58058 18.0667C9.75268 19.2778 11.3424 19.9583 13 19.9583C14.6576 19.9583 16.2473 19.2778 17.4194 18.0667C18.5915 16.8555 19.25 15.2128 19.25 13.4999C19.25 11.7871 18.5915 10.1444 17.4194 8.93319C16.2473 7.72202 14.6576 7.04159 13 7.04159ZM21.125 6.71867C21.125 6.29045 20.9604 5.87978 20.6674 5.57699C20.3743 5.27419 19.9769 5.10409 19.5625 5.10409C19.1481 5.10409 18.7507 5.27419 18.4576 5.57699C18.1646 5.87978 18 6.29045 18 6.71867C18 7.14688 18.1646 7.55756 18.4576 7.86035C18.7507 8.16315 19.1481 8.33325 19.5625 8.33325C19.9769 8.33325 20.3743 8.16315 20.6674 7.86035C20.9604 7.55756 21.125 7.14688 21.125 6.71867ZM13 9.62492C13.9946 9.62492 14.9484 10.0332 15.6517 10.7599C16.3549 11.4866 16.75 12.4722 16.75 13.4999C16.75 14.5276 16.3549 15.5133 15.6517 16.24C14.9484 16.9667 13.9946 17.3749 13 17.3749C12.0054 17.3749 11.0516 16.9667 10.3483 16.24C9.64509 15.5133 9.25 14.5276 9.25 13.4999C9.25 12.4722 9.64509 11.4866 10.3483 10.7599C11.0516 10.0332 12.0054 9.62492 13 9.62492Z" fill="#51628D" /> </svg> </a> <a target="_blank" itemprop="sameAs" href="https://www.pinterest.com/fibre2fashion/" data-f2feventclicktrack="{"F2FEventName":"Icon Clicked","F2FEventType":"Icon","F2FSection":"Footer","F2FType":"Static","F2FText":"Pinterest"}"> <svg class="insta pinit" width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="https://www.w3.org/2000/svg"> <path d="M2.00305 14.8024C2.00305 14.796 2.00305 14.7895 2.00305 14.7831C2.00915 14.732 2.01558 14.6813 2.02168 14.6302C2.02439 14.5605 2.02676 14.4911 2.02947 14.4215C2.0332 14.3954 2.03726 14.3694 2.04099 14.3433C2.04099 14.324 2.04099 14.3051 2.04099 14.2858C2.05996 14.1264 2.07893 13.9671 2.0979 13.8078C2.10434 13.7824 2.11111 13.7567 2.11755 13.7313C2.11755 13.712 2.11755 13.6931 2.11721 13.6738C2.12602 13.6105 2.13482 13.5473 2.14363 13.4843C2.17209 13.3389 2.19749 13.1924 2.229 13.0476C2.28625 12.7844 2.34722 12.5218 2.4065 12.259C2.41226 12.2336 2.41802 12.2079 2.42378 12.1825C2.43733 12.1314 2.45054 12.0807 2.46409 12.0296C2.47019 12.0113 2.47595 11.993 2.48205 11.9744C2.51118 11.8865 2.53963 11.7982 2.56944 11.7106C2.64973 11.4741 2.73069 11.2376 2.81098 11.0014C2.8313 10.9497 2.85129 10.8979 2.87161 10.8462C2.87737 10.8364 2.88449 10.8272 2.88923 10.8167C3.04709 10.4828 3.19682 10.1445 3.36416 9.81566C3.98645 8.59435 4.79133 7.50667 5.77304 6.54924C6.46883 5.87059 7.23103 5.27651 8.06775 4.78088C8.39566 4.58669 8.73509 4.4128 9.06944 4.22943C9.40007 4.08937 9.7273 3.94085 10.062 3.81094C10.8791 3.49326 11.7232 3.27268 12.5901 3.14277C12.894 3.0971 13.2012 3.07341 13.5071 3.04466C13.7049 3.02605 13.9038 3.01624 14.102 3.00237C14.1098 3.00237 14.1175 3.00203 14.125 3.00169C14.1491 3.00101 14.1728 3.00068 14.1968 3C14.4092 3 14.6216 3 14.834 3C14.8581 3.00068 14.8818 3.00101 14.9058 3.00169C14.9136 3.00169 14.9211 3.00203 14.9289 3.00237C15.1504 3.01556 15.374 3.01624 15.5935 3.04466C16.064 3.10555 16.5346 3.1722 17.002 3.25204C17.8167 3.39143 18.5979 3.64787 19.3587 3.96656C20.5461 4.46354 21.6291 5.13137 22.6091 5.96532C23.6914 6.8862 24.5915 7.95967 25.3093 9.18572C25.893 10.1827 26.333 11.2396 26.6118 12.3594C26.7266 12.8209 26.8052 13.2918 26.8869 13.7607C26.9245 13.9766 26.9329 14.1975 26.9492 14.4164C26.9661 14.6461 26.9759 14.8761 26.9892 15.1062C26.9925 15.1133 26.9959 15.1204 26.9993 15.1275C26.9993 15.3691 26.9997 15.6106 27 15.8522C26.9966 15.8593 26.9929 15.8664 26.9895 15.8738C26.9702 16.2078 26.9556 16.5423 26.9299 16.8756C26.916 17.0579 26.8835 17.2393 26.8591 17.4209C26.8489 17.4903 26.8391 17.5597 26.8289 17.629C26.8259 17.6425 26.8225 17.6561 26.8194 17.6696C26.7937 17.8097 26.7676 17.9501 26.7419 18.0901C26.7358 18.1155 26.7297 18.1412 26.7232 18.1666C26.6914 18.2941 26.6599 18.4217 26.628 18.5489L26.6226 18.6054L26.5894 18.7207C26.5823 18.7525 26.5755 18.7843 26.5684 18.8165C26.5115 18.9985 26.4549 19.1802 26.398 19.3622C26.3885 19.3964 26.3791 19.4302 26.3696 19.4644C26.3154 19.6115 26.2612 19.759 26.2066 19.9062C26.2002 19.9255 26.1938 19.9444 26.1873 19.9637C26.0149 20.3524 25.8428 20.7411 25.6704 21.1299C25.666 21.1373 25.6616 21.1448 25.6572 21.1522C25.4038 21.6512 25.1189 22.1316 24.8005 22.5917C24.4631 23.0789 24.0986 23.5444 23.6897 23.9741C23.4902 24.1838 23.2869 24.3895 23.0857 24.5972C23.0799 24.603 23.0738 24.6084 23.0681 24.6142C22.7713 24.8659 22.4817 25.1267 22.1755 25.3666C21.8669 25.6085 21.5498 25.8412 21.2215 26.0557C20.9543 26.2303 20.6701 26.3815 20.3845 26.526C19.9824 26.7296 19.5786 26.933 19.1633 27.1072C18.8286 27.2476 18.4759 27.3447 18.1314 27.4621C18.0647 27.4847 17.9997 27.5118 17.9336 27.5368C17.9207 27.5368 17.9082 27.5375 17.8953 27.5379C17.7229 27.5825 17.5508 27.6272 17.3784 27.6715C17.3147 27.6908 17.2507 27.7101 17.187 27.729C17.127 27.7409 17.0678 27.7537 17.0075 27.7639C16.9007 27.7818 16.7937 27.798 16.6867 27.8149C16.6555 27.8244 16.6247 27.8342 16.5935 27.8437C16.562 27.8427 16.5301 27.8369 16.4993 27.8413C16.3262 27.866 16.1535 27.8931 15.9807 27.9191C15.9553 27.9191 15.9295 27.9198 15.9041 27.9202C15.8787 27.9259 15.853 27.9317 15.8276 27.9377C15.8022 27.9445 15.7764 27.9516 15.751 27.9584C15.7256 27.9584 15.6999 27.9584 15.6745 27.9584C15.6491 27.9584 15.6233 27.9577 15.5979 27.9574C15.5467 27.9641 15.4959 27.9706 15.4448 27.9773H15.2917C15.228 27.9838 15.164 27.9902 15.1003 27.9966C15.043 27.9963 14.9861 27.9956 14.9289 27.9953C14.9214 27.9959 14.914 27.997 14.9068 27.9976C14.8764 27.9976 14.8459 27.998 14.8154 27.9983C14.6159 27.999 14.4163 27.9993 14.2171 28C14.1802 27.9993 14.1436 27.9986 14.1067 27.9976C14.0867 27.997 14.0667 27.9959 14.0464 27.9953C14.002 27.9956 13.9577 27.9959 13.9133 27.9963C13.8496 27.9963 13.7856 27.9966 13.7219 27.997C13.6582 27.997 13.5942 27.997 13.5305 27.997C13.5112 27.9905 13.4922 27.9841 13.4729 27.9777L13.3388 27.977C13.2842 27.9689 13.2293 27.9604 13.1748 27.9533C12.9424 27.9229 12.7097 27.8928 12.4773 27.8626C12.4268 27.8538 12.3764 27.8451 12.3259 27.8363C12.2171 27.8132 12.1084 27.7896 11.9997 27.7669C11.872 27.7405 11.7439 27.7148 11.6159 27.6891C11.5904 27.6827 11.5647 27.6766 11.5393 27.6701C11.4062 27.6373 11.273 27.6045 11.1399 27.5717C11.1138 27.5646 11.0881 27.5571 11.062 27.55C10.9654 27.5182 10.8686 27.4864 10.77 27.4536C10.8872 27.253 11 27.0676 11.105 26.8778C11.2964 26.5317 11.4956 26.189 11.6684 25.8334C11.8381 25.4836 11.9787 25.1199 12.1321 24.7623C12.1399 24.7373 12.148 24.7123 12.1558 24.6872C12.1816 24.6108 12.2073 24.5347 12.2331 24.4582C12.2392 24.4389 12.2456 24.42 12.2517 24.4007C12.2896 24.2667 12.3276 24.1327 12.3652 23.9988L12.3784 23.9402C12.3841 23.9331 12.3933 23.9267 12.3957 23.9182C12.4675 23.6388 12.5383 23.3594 12.6094 23.0799C12.6155 23.0481 12.6216 23.0163 12.6277 22.9842C12.6338 22.9774 12.6436 22.9713 12.6457 22.9635C12.706 22.7345 12.7656 22.5055 12.8242 22.2761C12.832 22.2453 12.8337 22.2128 12.8384 22.1813C12.8452 22.1621 12.8516 22.1431 12.8584 22.1238C12.893 22.0071 12.9302 21.8911 12.9614 21.7737C12.9824 21.6942 12.9942 21.6123 13.0105 21.5314C13.0122 21.5213 13.0142 21.5111 13.0159 21.501L13.0498 21.3785C13.0566 21.3592 13.0633 21.3403 13.0701 21.321C13.0843 21.2838 13.0986 21.2469 13.1192 21.1931C13.1535 21.2496 13.1758 21.2899 13.2012 21.3278C13.4285 21.6678 13.7317 21.9236 14.0854 22.1242C14.4045 22.3052 14.7398 22.4439 15.0996 22.5214C15.1121 22.5237 15.1243 22.5261 15.1369 22.5285C15.3621 22.5877 15.5908 22.6249 15.8242 22.6259C15.9472 22.6259 16.0705 22.6259 16.1934 22.6262C16.1995 22.6262 16.2049 22.6242 16.2097 22.6201C16.2415 22.6195 16.2734 22.6188 16.3056 22.6178C16.3926 22.6127 16.48 22.612 16.5661 22.6012C16.6839 22.5863 16.8012 22.564 16.9187 22.5447C16.9251 22.5454 16.9312 22.544 16.9373 22.5413C17.1673 22.4923 17.3974 22.4432 17.6274 22.3941C17.6335 22.3925 17.6396 22.3908 17.6457 22.3891C17.6799 22.3779 17.7138 22.3671 17.748 22.3559C17.7656 22.3505 17.7832 22.3451 17.8008 22.3397C18.1294 22.2433 18.4407 22.1062 18.7388 21.9384C18.7514 21.9313 18.7639 21.9242 18.7764 21.9171C19.1836 21.706 19.5539 21.4425 19.8906 21.1319C19.9031 21.1207 19.916 21.1099 19.9285 21.0987C20.0047 21.0267 20.081 20.9543 20.1572 20.8822L20.1623 20.8792C20.3184 20.7077 20.4746 20.5361 20.6304 20.3649L20.6311 20.3639C20.6419 20.3528 20.6541 20.3426 20.664 20.3304C21.0932 19.801 21.4383 19.2204 21.7124 18.5969C21.9414 18.0759 22.1179 17.538 22.2354 16.9811C22.2375 16.9696 22.2395 16.9581 22.2412 16.9466C22.2524 16.8945 22.2636 16.8421 22.2747 16.79C22.2764 16.7785 22.2778 16.767 22.2795 16.7555C22.292 16.678 22.3045 16.6002 22.3171 16.5227C22.3215 16.5166 22.3259 16.5102 22.3303 16.5038C22.333 16.4814 22.3357 16.4588 22.3388 16.4365C22.3415 16.4273 22.3442 16.4182 22.3472 16.409C22.3489 16.3894 22.3506 16.3701 22.3523 16.3505V16.293C22.3533 16.2808 22.3547 16.2686 22.3557 16.2561C22.3615 16.2494 22.372 16.2433 22.3726 16.2358C22.398 15.9807 22.4224 15.7257 22.4472 15.4706C22.4472 15.4323 22.4472 15.3941 22.4472 15.3559L22.4522 15.2622C22.4563 15.2547 22.46 15.2473 22.4641 15.2398C22.4641 15.2151 22.4641 15.1908 22.4644 15.1661C22.4651 15.1458 22.4658 15.1258 22.4665 15.1059C22.4658 15.068 22.4654 15.0301 22.4648 14.9925C22.4648 14.8528 22.4648 14.7134 22.4648 14.5737C22.461 14.5273 22.4573 14.4813 22.4533 14.435C22.4468 14.3413 22.4444 14.2469 22.4329 14.1535C22.4106 13.9725 22.3828 13.7919 22.357 13.6112C22.354 13.5872 22.3509 13.5635 22.3482 13.5395C22.2937 13.3152 22.2395 13.0909 22.185 12.8666C22.1799 12.848 22.1745 12.8294 22.1694 12.8111C22.0708 12.5364 21.9905 12.2539 21.8706 11.9886C21.1057 10.295 19.8449 9.09911 18.1555 8.34636C17.8554 8.21273 17.5373 8.11733 17.2239 8.01549C17.0169 7.94817 16.8035 7.90081 16.5928 7.84431C16.5823 7.84262 16.5718 7.84092 16.5617 7.83923C16.5146 7.82875 16.4675 7.81826 16.4207 7.80777C16.4082 7.80642 16.396 7.80473 16.3835 7.80337C16.3777 7.80134 16.372 7.79965 16.3662 7.79762C16.3462 7.79458 16.3259 7.79119 16.3059 7.78815C16.2866 7.78815 16.2676 7.78815 16.2483 7.78815C16.2425 7.78544 16.2365 7.78409 16.23 7.78443L15.8845 7.73063C15.872 7.72962 15.8594 7.72827 15.8469 7.72725C15.7764 7.71609 15.706 7.70458 15.6355 7.69342L15.5972 7.69207C15.5271 7.68598 15.457 7.67989 15.3865 7.6738C15.3675 7.67312 15.3482 7.67244 15.3289 7.67211C15.3035 7.67244 15.2778 7.67312 15.2524 7.67346C14.9143 7.66703 14.5759 7.6606 14.2378 7.65418L14.1037 7.67244C14.0654 7.67346 14.0271 7.67481 13.9888 7.67583C13.6436 7.71676 13.2984 7.75804 12.9533 7.79897C12.9282 7.80236 12.9035 7.8054 12.8784 7.80878C12.6545 7.85784 12.4306 7.9069 12.2066 7.95629C12.1873 7.96136 12.168 7.9661 12.1491 7.97117C11.8621 8.06184 11.5755 8.15251 11.2886 8.24318C11.0346 8.35178 10.7761 8.4509 10.5278 8.57067C10.0938 8.78008 9.68462 9.03111 9.3086 9.33356C9.30318 9.33424 9.29946 9.33661 9.29709 9.34134C9.28388 9.35014 9.27033 9.35792 9.25779 9.36739C8.73171 9.77743 8.27304 10.2524 7.88381 10.7934C7.58028 11.2153 7.31944 11.6618 7.12127 12.1436C7.11924 12.15 7.11721 12.1561 7.11518 12.1625C7.01999 12.4237 6.9248 12.6852 6.82961 12.9464C6.82385 12.9501 6.82283 12.9549 6.82622 12.9606C6.7771 13.147 6.72798 13.3334 6.67886 13.5199C6.67717 13.5314 6.67514 13.5425 6.67344 13.554C6.67073 13.5611 6.66802 13.5686 6.66531 13.5757C6.66192 13.5889 6.6582 13.6021 6.65481 13.6153C6.64973 13.6186 6.64126 13.6213 6.64058 13.6257C6.61348 13.7817 6.58299 13.937 6.56233 14.094C6.54539 14.2205 6.54031 14.3487 6.53015 14.4763C6.52608 14.5202 6.52202 14.5646 6.51762 14.6085L6.5061 14.6864C6.5061 14.7628 6.5061 14.8393 6.5061 14.9157C6.50542 14.935 6.50474 14.954 6.50406 14.9732C6.50135 15.0111 6.49865 15.0487 6.49593 15.0866C6.49627 15.158 6.49661 15.229 6.49729 15.3004L6.50339 15.2984C6.50474 15.3495 6.50576 15.4005 6.50711 15.4516C6.50711 15.5152 6.50644 15.5792 6.5061 15.6428C6.51016 15.6624 6.51423 15.682 6.51829 15.7016L6.52507 15.7767C6.53726 15.8843 6.5437 15.9926 6.56267 16.0992C6.58808 16.2416 6.62297 16.382 6.65346 16.5234C6.65583 16.5359 6.65854 16.5484 6.66091 16.5606C6.67717 16.6249 6.69309 16.6888 6.70935 16.7531L6.71714 16.79C6.8794 17.4287 7.13516 18.0275 7.48848 18.5841C7.7002 18.9176 7.9397 19.2299 8.24018 19.4907L8.24424 19.4863L8.23984 19.4904C8.31335 19.5554 8.38347 19.6247 8.46138 19.6839C8.67412 19.8456 8.89329 19.9982 9.15108 20.0811C9.29133 20.1264 9.37839 20.0825 9.43123 19.9475C9.44817 19.9038 9.45461 19.8565 9.46612 19.8108C9.46748 19.7922 9.46917 19.7732 9.47053 19.7546C9.52608 19.5439 9.58164 19.3331 9.63753 19.1227C9.63957 19.1108 9.6416 19.099 9.64363 19.0871C9.70054 18.8628 9.7605 18.6395 9.81267 18.4142C9.83841 18.3022 9.7981 18.2035 9.73035 18.1114C9.63618 17.9832 9.53286 17.8587 9.46172 17.718C9.31436 17.427 9.17446 17.131 9.05386 16.8286C8.98035 16.6438 8.94851 16.4425 8.8977 16.2487C8.896 16.2379 8.89397 16.2274 8.89228 16.2165L8.85772 16.0816C8.85806 16.0751 8.85671 16.0694 8.854 16.0636C8.84892 16.0315 8.84383 15.999 8.83841 15.9669L8.8357 15.93C8.83062 15.9043 8.8252 15.8786 8.82012 15.8532C8.81877 15.8468 8.81741 15.8407 8.81572 15.8343C8.81572 15.796 8.81538 15.7578 8.81504 15.7199C8.81402 15.707 8.81301 15.6939 8.81199 15.681C8.80793 15.6746 8.80352 15.6681 8.79946 15.6617C8.79844 15.6428 8.79709 15.6242 8.79607 15.6052C8.79539 15.548 8.79472 15.4909 8.79404 15.4337C8.79404 15.4273 8.79404 15.4205 8.7937 15.4141C8.7937 15.344 8.79336 15.2743 8.79302 15.2043C8.79302 15.1975 8.79336 15.1908 8.7937 15.184C8.7937 15.1651 8.7937 15.1461 8.7937 15.1272C8.79472 15.0636 8.79539 14.9996 8.79641 14.936V14.8596C8.79743 14.8345 8.79844 14.8095 8.7998 14.7845C8.8042 14.7777 8.8086 14.7713 8.81301 14.7645C8.81369 14.7517 8.81436 14.7388 8.81504 14.7256V14.6681C8.81673 14.6495 8.81775 14.6305 8.81911 14.6119C8.82351 14.6055 8.82791 14.5987 8.83232 14.5923C8.83435 14.548 8.83638 14.5037 8.83841 14.4593C8.84316 14.4526 8.84824 14.4458 8.85298 14.439C8.85434 14.4262 8.85569 14.4133 8.85671 14.4005C8.91565 14.1467 8.97459 13.8927 9.03354 13.6389L9.03286 13.6403C9.03591 13.6328 9.0393 13.6251 9.04234 13.6176C9.04539 13.6051 9.04844 13.5923 9.05149 13.5797C9.08367 13.4938 9.11484 13.4075 9.1477 13.3219C9.5166 12.3594 10.1057 11.562 10.9306 10.9395C11.2622 10.6892 11.6236 10.4909 11.9986 10.3147C12.0115 10.3086 12.0244 10.3025 12.0373 10.2964C12.4133 10.1807 12.7896 10.0653 13.1656 9.94963C13.1782 9.9476 13.1904 9.94557 13.2029 9.94354C13.2425 9.93813 13.2818 9.93373 13.3211 9.9273C13.4732 9.90227 13.6253 9.87689 13.7774 9.85152C13.8093 9.85051 13.8411 9.84915 13.873 9.84814C13.9488 9.84848 14.0251 9.84915 14.1009 9.84949C14.1467 9.84543 14.1924 9.84171 14.2381 9.83765C14.2503 9.8346 14.2625 9.8319 14.2747 9.82885C14.4021 9.83156 14.5295 9.83393 14.6568 9.83663C14.6765 9.83731 14.6965 9.83765 14.7161 9.83833C14.728 9.83866 14.7402 9.83934 14.752 9.83968C14.7595 9.84306 14.7666 9.84645 14.7741 9.84983C14.7801 9.85152 14.7859 9.85084 14.7917 9.8478C14.8428 9.8478 14.8936 9.84746 14.9448 9.84712C14.9766 9.85355 15.0085 9.86032 15.0407 9.86674C15.3198 9.90971 15.6009 9.94219 15.8774 9.99869C16.0867 10.0413 16.2896 10.1144 16.4956 10.1739C16.4993 10.1797 16.5041 10.181 16.5102 10.1777C16.518 10.1814 16.5254 10.1851 16.5332 10.1888C16.5457 10.1929 16.5579 10.1966 16.5705 10.2007C16.6192 10.223 16.6673 10.2463 16.7168 10.2673C17.6125 10.6425 18.3432 11.222 18.8665 12.0418C19.0532 12.3337 19.1887 12.6585 19.3476 12.9681L19.3689 13.0252L19.4963 13.4285C19.5007 13.4475 19.5047 13.4664 19.5091 13.4853C19.5122 13.4938 19.5149 13.5023 19.518 13.5107C19.5203 13.5209 19.5227 13.5314 19.5247 13.5415C19.5488 13.687 19.5732 13.8328 19.5972 13.9783C19.6155 14.0879 19.6338 14.1975 19.6521 14.3071C19.6541 14.3196 19.6565 14.3321 19.6585 14.3447C19.6646 14.4211 19.6707 14.4976 19.6768 14.574C19.6768 14.5926 19.6762 14.6113 19.6758 14.6299C19.6762 14.6437 19.6768 14.6576 19.6772 14.6715C19.6772 14.6891 19.6778 14.7067 19.6778 14.7239C19.6778 14.8724 19.6775 15.0206 19.6772 15.1691C19.6772 15.1867 19.6772 15.204 19.6772 15.2216C19.6772 15.2358 19.6768 15.2496 19.6765 15.2639C19.6765 15.2825 19.6765 15.3011 19.6768 15.3197C19.6768 15.3325 19.6768 15.3451 19.6768 15.3579C19.6629 15.478 19.6467 15.5981 19.6365 15.7185C19.6284 15.8143 19.6274 15.9107 19.6233 16.0068C19.6223 16.02 19.6213 16.0328 19.6203 16.046C19.6148 16.0843 19.6094 16.1225 19.6037 16.1607C19.5959 16.1861 19.5884 16.2118 19.5806 16.2372C19.5766 16.2744 19.5735 16.3116 19.5677 16.3482C19.5457 16.4896 19.523 16.631 19.5003 16.7724L19.4953 16.7768L19.4983 16.7829C19.4871 16.8302 19.4763 16.8779 19.4651 16.9253C19.4624 16.9375 19.46 16.9497 19.4573 16.9619C19.4526 16.9734 19.4461 16.9842 19.4434 16.996C19.3042 17.5563 19.1081 18.0945 18.8252 18.5993C18.5007 19.1778 18.0921 19.6856 17.5383 20.0608C17.3476 20.19 17.1365 20.2898 16.935 20.4032C16.9217 20.4072 16.9085 20.4116 16.8953 20.4157C16.8899 20.4184 16.8841 20.4211 16.8787 20.4238C16.8723 20.4255 16.8655 20.4275 16.8591 20.4292L16.706 20.485C16.687 20.4915 16.6677 20.4979 16.6487 20.5043C16.5271 20.5331 16.4062 20.5629 16.2842 20.5896C16.2276 20.6021 16.1697 20.6085 16.1128 20.6173C16.0874 20.6177 16.0617 20.6183 16.0362 20.6187C15.998 20.6251 15.9597 20.6315 15.9214 20.6376C15.8194 20.6376 15.7171 20.6376 15.6152 20.6376C15.5623 20.6298 15.5095 20.6217 15.4566 20.6139C14.9136 20.5331 14.4682 20.2865 14.146 19.8365C14.0664 19.7252 14.0044 19.601 13.9343 19.483L13.9353 19.4836C13.9224 19.4457 13.9096 19.4079 13.8963 19.3703C13.8875 19.3388 13.8791 19.3077 13.8703 19.2763C13.8574 19.1616 13.8445 19.0469 13.8316 18.9322C13.8316 18.8557 13.8316 18.7793 13.8316 18.7028C13.8316 18.671 13.8316 18.6392 13.8316 18.6071C13.8381 18.5881 13.8445 18.5688 13.8509 18.5496C13.872 18.4477 13.893 18.3456 13.914 18.2437C13.9146 18.2251 13.915 18.2065 13.9157 18.1882C13.94 18.1148 13.9685 18.0424 13.9885 17.968C14.0281 17.8185 14.0633 17.6676 14.1006 17.5174C14.1043 17.513 14.1057 17.5079 14.1043 17.5021C14.1436 17.3827 14.185 17.2636 14.2222 17.1435C14.268 16.995 14.3106 16.8455 14.3547 16.6963C14.3594 16.6767 14.3638 16.6574 14.3686 16.6377C14.3865 16.5934 14.4085 16.5505 14.4217 16.5048C14.4512 16.4033 14.4763 16.3004 14.503 16.1983C14.5071 16.1932 14.5095 16.1875 14.5098 16.181C14.5545 16.0281 14.5989 15.8752 14.6436 15.7219C14.6491 15.6976 14.6548 15.6736 14.6602 15.6492C14.6684 15.638 14.6812 15.6279 14.6843 15.6154C14.7334 15.4147 14.7812 15.2134 14.8293 15.0125C14.8289 14.9871 14.8283 14.9614 14.8279 14.936C14.8533 14.7831 14.8784 14.6302 14.9038 14.4773C14.9058 14.4522 14.9079 14.4269 14.9099 14.4018C14.9143 14.3697 14.9187 14.3376 14.9231 14.3054C14.9231 14.2418 14.9231 14.1779 14.9231 14.1143C14.9109 14.0314 14.8984 13.9485 14.8862 13.8656L14.8852 13.8274C14.8577 13.5432 14.7561 13.2851 14.5901 13.0557C14.2625 12.6034 13.8025 12.443 13.2608 12.4728C13.248 12.4728 13.2354 12.4728 13.2226 12.4728C13.165 12.4728 13.1077 12.4728 13.0501 12.4731C13.0373 12.4792 13.0247 12.485 13.0119 12.491C12.8343 12.5496 12.6426 12.582 12.482 12.6714C11.8415 13.0276 11.4739 13.599 11.2629 14.2841C11.2595 14.2976 11.2561 14.3112 11.2524 14.325C11.2398 14.3697 11.2273 14.4144 11.2148 14.459C11.2121 14.4712 11.2093 14.483 11.2063 14.4952C11.1775 14.6424 11.1484 14.7895 11.1196 14.937C11.1196 14.9563 11.1196 14.9753 11.1192 14.9946L11.1006 15.0903C11.1006 15.1221 11.0999 15.1539 11.0996 15.186C11.0935 15.2307 11.0874 15.2754 11.0813 15.32C11.085 15.4418 11.0891 15.5633 11.0928 15.6851C11.0949 15.7101 11.0972 15.7348 11.0993 15.7598C11.106 15.8617 11.1125 15.9638 11.1192 16.0657C11.1253 16.0975 11.1314 16.1293 11.1375 16.1614C11.143 16.1932 11.1487 16.225 11.1541 16.2571C11.1772 16.3789 11.2002 16.5011 11.2236 16.6229C11.227 16.6347 11.23 16.6465 11.2334 16.6587C11.2402 16.6905 11.247 16.7223 11.2534 16.7545C11.2598 16.7798 11.2663 16.8056 11.2727 16.8309C11.3215 16.969 11.3672 17.108 11.4211 17.2443C11.4472 17.3107 11.4472 17.3712 11.4309 17.4389C11.3753 17.6689 11.3245 17.9003 11.272 18.1311C11.2595 18.1757 11.247 18.2204 11.2344 18.265C11.2341 18.2779 11.2334 18.2904 11.2331 18.3033C11.227 18.3286 11.2205 18.3543 11.2144 18.3797C11.1389 18.6906 11.0623 19.0015 10.9885 19.3128C10.878 19.779 10.7696 20.2459 10.6602 20.7121C10.6538 20.7439 10.647 20.7757 10.6406 20.8078C10.6226 20.8765 10.603 20.9445 10.5871 21.0138C10.5403 21.2192 10.4953 21.4245 10.4495 21.6299C10.4431 21.6492 10.4367 21.6681 10.4302 21.6874C10.3984 21.8214 10.3665 21.955 10.3347 22.089C10.334 22.1018 10.333 22.1144 10.3323 22.1272C10.2883 22.3119 10.2442 22.497 10.1999 22.6817C10.1938 22.6946 10.1877 22.7071 10.1816 22.7199C10.1426 22.9047 10.1033 23.0897 10.0644 23.2744C10.0583 23.2998 10.0522 23.3255 10.0461 23.3509C9.9956 23.6185 9.94512 23.8861 9.89465 24.1541C9.89465 24.1794 9.89397 24.2051 9.89397 24.2305C9.88787 24.2623 9.88177 24.2941 9.87568 24.3263C9.87466 24.3645 9.87398 24.4027 9.87297 24.4409L9.85569 24.6703C9.85434 24.7464 9.85298 24.8226 9.85163 24.8983C9.84587 24.9186 9.83469 24.9393 9.83469 24.9596C9.83435 25.1693 9.8357 25.3794 9.83672 25.5892C9.83672 25.6078 9.83672 25.6264 9.83706 25.645C9.8435 25.6704 9.84993 25.6961 9.85637 25.7215V25.9126C9.85603 25.9255 9.85637 25.938 9.85637 25.9508V26.0083C9.86247 26.072 9.86856 26.1359 9.87466 26.1995C9.875 26.2377 9.87534 26.276 9.87568 26.3142C9.88211 26.3396 9.88855 26.3653 9.89499 26.3906C9.89499 26.4417 9.89499 26.4925 9.89499 26.5436C9.90752 26.6647 9.92039 26.7858 9.93293 26.9069C9.93869 26.9516 9.94478 26.9962 9.95054 27.0409C9.94851 27.0683 9.94614 27.0957 9.94309 27.1339C9.87635 27.1146 9.81707 27.0974 9.75779 27.0801C9.7439 27.0734 9.73001 27.0669 9.71612 27.0602C9.62161 27.0192 9.52744 26.9786 9.43293 26.9377L9.40041 26.9262C9.27066 26.8612 9.13957 26.7983 9.01118 26.7306C8.75373 26.5943 8.49695 26.457 8.24187 26.3162C8.0752 26.2242 7.91226 26.1251 7.74797 26.0293C7.73543 26.0212 7.72324 26.0134 7.7107 26.0053C7.4292 25.806 7.1477 25.6068 6.86653 25.4075C6.86518 25.4021 6.86145 25.3994 6.85603 25.3984C6.48882 25.0729 6.12195 24.7478 5.75474 24.4223C5.74864 24.4162 5.74255 24.4102 5.73645 24.4044L5.73543 24.4034C5.72934 24.3973 5.72324 24.3915 5.71714 24.3855L5.71612 24.3844C5.71003 24.3784 5.70427 24.3723 5.69817 24.3662C5.56369 24.2312 5.42412 24.1009 5.29607 23.9602C5.09519 23.7386 4.90244 23.5099 4.7063 23.2842C4.70528 23.2775 4.70122 23.2734 4.69478 23.2721C4.6897 23.2606 4.68631 23.2477 4.67886 23.2376C4.4336 22.8952 4.17649 22.5603 3.9458 22.2084C3.76253 21.929 3.60535 21.6319 3.44783 21.3366C3.30183 21.0625 3.1626 20.7841 3.03523 20.5009C2.91701 20.2381 2.81809 19.9664 2.7107 19.6988C2.70427 19.6859 2.69783 19.6734 2.6914 19.6606C2.66768 19.5899 2.64397 19.5195 2.62026 19.4488C2.61416 19.4295 2.60772 19.4106 2.60163 19.3913C2.58232 19.3196 2.56504 19.2472 2.54302 19.1761C2.5044 19.0503 2.46274 18.9254 2.42243 18.7999C2.41768 18.7681 2.41294 18.7363 2.4082 18.7042C2.38347 18.5973 2.36111 18.4897 2.33367 18.3834C2.3164 18.3171 2.29167 18.2532 2.26999 18.1879C2.27066 18.1815 2.271 18.175 2.27168 18.1686C2.2666 18.149 2.26186 18.1294 2.25678 18.1097L2.23137 17.9964C2.23442 17.9842 2.24221 17.971 2.23984 17.9599C2.21274 17.8252 2.18428 17.6909 2.15617 17.5566C2.14329 17.4737 2.13042 17.3908 2.11789 17.3079C2.11382 17.2944 2.10976 17.2809 2.10535 17.2673C2.1023 17.2427 2.09959 17.218 2.09654 17.1933C2.07114 16.9575 2.04573 16.7216 2.02033 16.4858C2.01423 16.4094 2.00813 16.3329 2.00169 16.2565C2.00102 16.1672 2.00034 16.0782 2 15.9889C2.00068 15.6702 2.00136 15.3515 2.00237 15.0328C2.00203 14.9563 2.00136 14.8799 2.00102 14.8034L2.00305 14.8024Z" fill="#51628D" /> </svg> </a> </div> </div> <style> .newsapp-nav .btn,a.acceptbtn{text-transform:uppercase;font-size:11px}body,body.full{margin-top:0}.f2ftopmenu .navbar,body.full .f2ftopmenu .navbar{top:0}body.body50{margin-top:50px}.f2ftopmenu .navbar.navbar50{top:50px}.newsapp-content{display:flex;flex-wrap:wrap}.newsapp-content>div{display:table-cell;vertical-align:middle;font-size:var(--smallfontsize);line-height:1.2;color:#fff}#WidgetFloaterPanels,.goog-tooltip,.goog-tooltip:hover,.skiptranslate,a.goog-logo-link{display:none!important}.phone-icon{color:#fff;font-size:35px!important}.newsapp-nav .close-newsapp-nav{position:absolute;right:4px;top:0;cursor:pointer;color:#b9b9b9;opacity:.5;box-shadow:none;font-size:27px;border:0;background-color:transparent}.newsapp-nav .close-newsapp-nav span{margin:0;font-size:25px}.newsapp-nav .form-group{float:left}.newsapp-nav .form-control{height:25px;border-top-right-radius:0;border-bottom-right-radius:0;border-color:#fff;line-height:25px;font-size:11px;width:177px}.newsapp-nav .btn{padding-top:0;padding-bottom:0;background-color:#fff;color:#333;border-color:transparent;margin-left:7px}a.acceptbtn{background-color:var(--white)!important;border:solid 2px var(--primerycolor);cursor:pointer;border-color:#262626;color:var(--primerycolor);padding:5px 14px!important;margin-top:6px;border-radius:5px}a:hover.acceptbtn{background-color:transparent!important;color:var(--white);border-color:var(--white)}.newsapp-nav{background:#2a2a2a;border:none;bottom:10px;right:78px;width:160px;position:fixed!important;padding:16px!important;border-radius:0!important;margin-bottom:0;z-index:9999} </style> <input type="hidden" name="HidHelloBarCName" id="HidHelloBarCName" /> <nav class="navbar navbar-default newsapp-nav alert" role="alert" id="HelloBarNewsBlock" style="display: none;"> <div class="newsapp-content"> <div class="cookiebar"> This website uses cookies to ensure you get the best experience on our website. </div> <a onclick="return CloseCookieBar();" class="acceptbtn">Accept</a> <button type="button" id="BtnHelloBarClose" onclick="return CloseHelloBar();" class=" close close-newsapp-nav" data-dismiss="alert" aria-label="Close"> <span class="" data-dismiss="alert" aria-label="Close">×</span> </button> </div> </nav> <script language="javascript"> function CloseHelloBar() { var gethellobarcookiecap = getCookie("HelloBarNewsAppsCookie"); if (gethellobarcookiecap == "") { setCookie('HelloBarNewsAppsCookie', '1', 1); } else if (gethellobarcookiecap == "1") { DeleteCookie('HelloBarNewsAppsCookie'); setCookie('HelloBarNewsAppsCookie', '2', 1); } else { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } $('#HelloBarNewsBlock').css({ 'display': 'none' }); } /* Cookie function code start */ function CloseCookieBar() { var getCookiebarcookiecap = getCookie("Cookiebar"); if (getCookiebarcookiecap == "") { setCookie('Cookiebar', '1', 365); } else { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } $('#HelloBarNewsBlock').css({ 'display': 'none' }); } /* Cookie function code end */ var IndianIp; $(document).ready(function () { cookiecap = getCookie("HelloBarNewsAppsCookie") if (cookiecap == "yes") { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else if (cookiecap == "2") { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else { $('#HelloBarNewsBlock').css({ 'display': 'block' }); } var countryname = document.getElementById($('*[id*=HidHelloBarCName]').attr('id')).value; countryname = IndianIp; //countryname.toLowerCase(); /* Cookie code start */ var getCookiebarcookiecap = getCookie("Cookiebar"); if (getCookiebarcookiecap == "1" || (getCookiebarcookiecap == "" && cookiecap == "2")) { $('#HelloBarNewsBlock').css({ 'display': 'none' }); } else { $('#HelloBarNewsBlock').css({ 'display': 'block' }); } }); function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";domain=fibre2fashion.com;path=/"; } function DeleteCookie(name) { var today = new Date(); var expire = new Date(); var path = "/"; var domain = ".fibre2fashion.com"; expire.setTime(today.getTime() + 3600000 * 24 * (-60)); if (ReadCookie(name) != '') { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=" + expire.toGMTString(); } } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1); if (c.indexOf(name) == 0) return c.substring(name.length, c.length); } return ""; } </script> <!-- Include the Mixpanel library --> <!-- Paste this right before your closing </head> tag --> <script type="text/javascript"> (function (f, b) { if (!b.__SV) { var e, g, i, h; window.mixpanel = b; b._i = []; b.init = function (e, f, c) { function g(a, d) { var b = d.split("."); 2 == b.length && ((a = a[b[0]]), (d = b[1])); a[d] = function () { a.push([d].concat(Array.prototype.slice.call(arguments, 0))); }; } var a = b; "undefined" !== typeof c ? (a = b[c] = []) : (c = "mixpanel"); a.people = a.people || []; a.toString = function (a) { var d = "mixpanel"; "mixpanel" !== c && (d += "." + c); a || (d += " (stub)"); return d; }; a.people.toString = function () { return a.toString(1) + ".people (stub)"; }; i = "disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "); for (h = 0; h < i.length; h++) g(a, i[h]); var j = "set set_once union unset remove delete".split(" "); a.get_group = function () { function b(c) { d[c] = function () { call2_args = arguments; call2 = [c].concat(Array.prototype.slice.call(call2_args, 0)); a.push([e, call2]); }; } for (var d = {}, e = ["get_group"].concat(Array.prototype.slice.call(arguments, 0)), c = 0; c < j.length; c++) b(j[c]); return d; }; b._i.push([e, f, c]); }; b.__SV = 1.2; e = f.createElement("script"); e.type = "text/javascript"; e.async = !0; e.src = "undefined" !== typeof MIXPANEL_CUSTOM_LIB_URL ? MIXPANEL_CUSTOM_LIB_URL : "file:" === f.location.protocol && "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//) ? "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js" : "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"; g = f.getElementsByTagName("script")[0]; g.parentNode.insertBefore(e, g); } })(document, window.mixpanel || []); </script> <!-- Include the MixpanelWrapper script --> <script type="text/javascript" src="https://static.fibre2fashion.com/staticresources/js/f2f/F2FTrackEvents.min.js?var=3.2"></script> <script> jQuery(document).ready(function () { // Initialize Mixpanel using your project token //Neet to replace this tocken in config of project var mixpanelToken = "2742f3e9fea554656eb263e67f60fa0f"; MixpanelWrapper.init(mixpanelToken); //calling F2FPageview for the Track PageView. MixpanelWrapper.F2FPageview(); MixpanelWrapper.ClickEventTracking(); /*Advertisement Mixpanel impression Tracking Start*/ //MixpanelWrapper.TrackBannerImpression(); /*Advertisement Mixpanel impression Tracking End*/ /*Advertisement Mixpanel Click Tracking Start*/ MixpanelWrapper.TrackBannerClick(); /*Advertisement Mixpanel Click Tracking End*/ /*Initialize the scroll tracking*/ //MixpanelWrapper.trackScrollScreen(); }); </script> </div> <script src="https://static.fibre2fashion.com/staticresources/js/f2f/esteemedclients.min.js"></script> <script> $('.top').on('click', function () { $parent_box = $(this).closest('.box-icon'); $parent_box.siblings().find('.bottom').slideUp(); $parent_box.find('.bottom').slideToggle(400, 'swing'); }); </script> <script> $(document).click(function (event) { if (!$(event.target).hasClass('scclick')) { $(".csltog").hide(); } }); $(".scclick").click(function () { $(".csltog").hide(); if (window.addthis) { window.addthis = null; window._adr = null; window._atc = null; window._atd = null; window._ate = null; window._atr = null; window._atw = null; } var showid = $(this).attr('id'); var calssname = ".socicon-" + showid; $.getScript("https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5796f063534adfd7") .done(function (script) { addthis.init(); config = $.extend(true, {}, window.addthis_config), share = $.extend(true, {}, window.addthis_share); addthis.toolbox(".page_sharing_toolbox", config, share); addthis.toolbox(".page_sharing_facebook", config, share); }); $(calssname).toggle(); }); function htmlDecode(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; } </script> </body> </html>