Warning: preg_match(): Compilation failed: invalid range in character class at offset 12 in /home/.sites/693/site4321159/web/wordpress/wp-content/plugins/js_composer/include/classes/shortcodes/vc-basic-grid.php on line 172

[o.strictMode ? \“strict\“ : \“loose\“]

.exec(str),\r\n\t\turi = {},\r\n\t\ti = 14;\r\n\r\n\twhile (i–) uri

[o.key[i]]

= m[i] || \“\“;\r\n\r\n\turi

[o.q.name]

= {};\r\n\turi

[o.key[12]]

.replace(o.q.parser, function ($0, $1, $2) {\r\n\t\tif ($1) uri

[o.q.name]

[$1] = $2;\r\n\t});\r\n\turi.queryString = uri.query;\r\n\turi.query = OV.tools.parseUrlQuery(str);\r\n\treturn OV.wrap(uri);\r\n},\nparseUrlQuery: function (url){\r\n\tif(url.indexOf(\“?\“) == -1) {\r\n\t\treturn OV.wrap({});\r\n\t}\r\n var query_string = {};\r\n var query = url.substr(url.indexOf(\“?\“)+1);\r\n var vars = query.split(\“&\“);\r\n for (var i=0;i<vars.length;i++) {\r\n var pair = vars[i].split(\“=\“);\r\n // If first entry with this name\r\n if (typeof query_string[pair[0]] === \“undefined\“) {\r\n query_string[pair[0]] = decodeURIComponent(pair[1]);\r\n // If second entry with this name\r\n } else if (typeof query_string[pair[0]] === \“string\“) {\r\n var arr = [ query_string[pair[0]],decodeURIComponent(pair[1]) ];\r\n query_string[pair[0]] = arr;\r\n // If third or later entry with this name\r\n } else {\r\n query_string[pair[0]].push(decodeURIComponent(pair[1]));\r\n }\r\n } \r\n return OV.wrap(query_string);\r\n},\ngetUrlFileName: function (url) {\r\n\tvar fileNameHeader = OV.tools.ajax({url: url, async: false, type: \“HEAD\“}).getResponseHeader(\“content-disposition\“);\r\n\tvar search = ‚filename=\“‚;\r\n\tif(fileNameHeader && fileNameHeader.indexOf(search) != -1) {\r\n\t\tvar fileName = fileNameHeader.substr(fileNameHeader.indexOf(search)+search.length);\r\n\t\treturn fileName.substr(0,fileName.indexOf(‚\“‚));\r\n\t}\r\n\telse {\r\n\t\treturn decodeURIComponent(url.substring(url.lastIndexOf(‚/‘)+1));\r\n\t}\r\n},\nforEach: function(elem, callback){\r\n\tfor(var i=0;i<elem.length;i++){\r\n\t\tvar callVal = callback.call(elem, elem[i],i,elem);\r\n\t\tif(callVal) {\r\n\t\t\treturn callVal;\r\n\t\t}\r\n\t}\r\n\treturn null;\r\n},\najax: function(urlOrHash) {\r\n\ttry {\r\n\t\tvar serialize = function(obj) {\r\n\t\t\tobj = OV.unwrap(obj);\r\n\t\t\tvar str = [];\r\n\t\t\tfor (var p in obj) {\r\n\t\t\t if (obj.hasOwnProperty(p) && obj[p] != undefined) {\r\n\t\t\t \tstr.push(encodeURIComponent(p) + \“=\“ + encodeURIComponent(obj[p]));\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\tif(str.length == 0) {\r\n\t\t\t\treturn \“\“;\r\n\t\t\t}\r\n\t\t\treturn \“?\“+str.join(\“&\“);\r\n\t\t}\r\n\t\tvar hash = OV.wrap({});\r\n\t\tif(typeof urlOrHash === \“object\“) {\r\n\t\t\thash = OV.wrap(urlOrHash);\r\n\t\t}\r\n\t\telse {\r\n\t\t\thash.url = urlOrHash;\r\n\t\t}\r\n\t\thash.protocol = hash.protocol ? hash.protocol : \“https\“;\r\n\t\tvar parsedUrl = OV.tools.parseUrl(hash.url);\r\n\t\tif(parsedUrl.protocol != hash.protocol) {\r\n\t\t\thash.url = hash.url.replace(OV.tools.parseUrl(hash.url).protocol+\“://\“, hash.protocol+\“://\“);\r\n\t\t}\r\n\t\tif(!hash.data) {\r\n\t\t\thash.data = {};\r\n\t\t}\r\n\t\thash.data.push(OV.tools.parseUrlQuery(hash.url));\r\n\t\thash.data.ignoreRequestCheck = true;\r\n\t\tif(hash.url.indexOf(\“?\“) != -1) {\r\n\t\t\thash.url = hash.url.substr(0, hash.url.indexOf(\“?\“));\r\n\t\t}\r\n\t\tconsole.log(\“ajax\“, urlOrHash, hash.url + serialize(hash.data));\r\n\t\tvar request = new XMLHttpRequest();\r\n\t\trequest.open(hash.type == null ? \“GET\“ : hash.type, hash.url + serialize(hash.data), hash.async == null ? true : hash.async); \r\n\t\trequest.onreadystatechange = function() {\r\n\t\t if (this.readyState == 4 && this.status == 200) {\r\n\t\t \tif(hash.success) {\r\n\t\t \t\thash.success(this);\r\n\t\t \t}\r\n\t\t }\r\n\t\t};\r\n\t\trequest.send(null);\r\n\t\treturn request;\r\n\t}\r\n\tcatch(e) {\r\n\t\tconsole.error(e.stack);\r\n\t\treturn { status: \“error\“ };\r\n\t}\r\n},\nparseRelaxed: function(hash) {\r\n\tfunction isQuoted(hash, index) {\r\n\t\tvar quoteOpened = null;\r\n\t\tfor(var i=0;i<hash.length;i++) {\r\n\t\t\tif((hash[i] == ‚\“‚ || hash[i] == \“‚\“) && hash[i-1] != ‚\\\\‘) {\r\n\t\t\t\tif(quoteOpened == null) {\r\n\t\t\t\t\tquoteOpened = hash[i];\r\n\t\t\t\t}\r\n\t\t\t\telse if(hash[i] == quoteOpened) {\r\n\t\t\t\t\tquoteOpened = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(i == index) {\r\n\t\t\t\treturn quoteOpened != null;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\tvar parsedHash = {};\r\n\tfor(var i=0;i<hash.length;i++) {\r\n\t\tif(hash[i] == \“:\“ && !isQuoted(hash, i)) {\r\n\t\t\t\r\n\t\t\tvar tagStr = hash.substr(0, i);\r\n\t\t\tvar bracketIndex = tagStr.lastIndexOf(\“{\“);\r\n\t\t\tvar commaIndex = tagStr.lastIndexOf(\“,\“);\r\n\t\t\tif(bracketIndex > commaIndex) {\r\n\t\t\t\ttagStr = tagStr.substr(bracketIndex+1).trim();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttagStr = tagStr.substr(commaIndex+1).trim();\r\n\t\t\t}\r\n\t\t\tconsole.log(tagStr);\r\n\t\t\tif(tagStr.indexOf(‚\“‚) == -1) {\r\n\t\t\t\thash = hash.replace(tagStr, ‚\“‚+tagStr+’\“‚);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tconsole.log(hash);\r\n\treturn hash;\r\n},\nparse: function(hash) {\r\n\treturn OV.wrap(dJSON.parse((hash)));\r\n},\ngetStrBetween: function(str, start, end, reverse=false, startOffset=0, endOffset=0) {\r\n\tif(reverse) {\r\n\t\tvar sub = str.substr(0, str.indexOf(end) + endOffset);\r\n\t\treturn sub.substr(sub.lastIndexOf(start) + start.length + startOffset);\r\n\t}\r\n\telse {\r\n\t\tvar sub = str.substr(str.indexOf(start) + start.length + startOffset);\r\n\t\treturn sub.substr(0, sub.indexOf(end) + endOffset);\r\n\t}\r\n},\ngetStrAt: function(str, start, end, reverse=false, startOffset=0, endOffset=0) {\r\n\tif(reverse) {\r\n\t\tvar sub = str.substr(0, str.indexOf(end) + end.length + endOffset);\r\n\t\treturn sub.substr(sub.lastIndexOf(start) + startOffset);\r\n\t}\r\n\telse {\r\n\t\tvar sub = str.substr(str.indexOf(start) + startOffset);\r\n\t\treturn sub.substr(0, sub.indexOf(end) + end.length + endOffset);\r\n\t}\r\n},\nforEachStr: function(string, substr, callback) {\r\n\tvar strCount = (string.match(new RegExp(substr,\“g\“)) || []).length;\r\n\tvar lastIndex = 0;\r\n\tfor(var i=0;i<strCount;i++) {\r\n\t\tvar currIndex = string.indexOf(substr, lastIndex);\r\n\t\tcallback(currIndex, string.substr(currIndex), substr, string);\r\n\t\tlastIndex = currIndex+1;\r\n\t}\r\n}\n},\nhtml: {\ngetAttributes: function (HTMLElement) {\r\n\tvar Hash = {};\r\n\tOV.tools.forEach(HTMLElement.attributes, function(attribute){\r\n\t\tHash[attribute.name] = attribute.value;\r\n\t});\r\n\treturn OV.wrap(Hash);\r\n},\naddAttributeListener: function(elem, attribute,callback) {\r\n\tvar lastValue = elem[attribute];\r\n window.setInterval( function() { \r\n var value = elem[attribute];\r\n \r\n if (value != lastValue) {\r\n callback.call(elem, attribute, value, lastValue, elem); \r\n lastValue = value;\r\n }\r\n },10);\r\n}\n},\npage: {\ninjectOV: function() {\r\n\tOV.page.injectJS(‚function(OVstr){‚+\r\n\r\n\t\t’function parseOV(str) { return eval(\“(\“+str+\“)\“); };’+\r\n\t\t’if(window[\“OV\“] == undefined) {‚+\r\n\t\t’\twindow[\“OV\“] = parseOV(OVstr);’+\r\n\t\t‘}’+\r\n\t\t’OV.log(\“Successfully injected OV!\“);’+\r\n\t‘}‘, OV.wrap(OV).toString());\r\n},\ninjectJS: function (source) {\r\n\tvar injectStr = source;\r\n\t//if(typeof source === \“function\“) {\r\n\t\tvar args = JSON.stringify((Array.prototype.slice.call(arguments,1))).slice(1, -1);\r\n\t\tinjectStr = \“(\“+source+\“)(\“+args+\“);\“;\r\n\t//}\r\n\tvar script = document.createElement(’script‘);\r\n\tscript.appendChild(document.createTextNode(injectStr));\r\n\t(document.body || document.head || document.documentElement).appendChild(script);\r\n},\nexecute: function (valueFunc, valueEvent, valueFuncData) {\r\n\tOV.page.injectOV();\r\n\twindow.addEventListener(\“message\“, function MessageListener(event) {\r\n\t\r\n\t\tif (event.data.type && (event.data.type == \“GET_PAGE_DATA\“)) {\r\n\t\t\twindow.removeEventListener(\“message\“,MessageListener);\r\n\t\t\tOV.log(event.data.value);\r\n\t\t\tif(valueEvent) {\r\n\t\t\t\tvalueEvent(OV.wrap(event.data.value)); \r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tOV.page.injectJS(‚function(valueFunc){‚+\r\n\t\t’var value = OV.unwrap(eval(valueFunc));’+\r\n\t\t’OV.log(value);‘ +\r\n\t\t’window.postMessage({ type: \“GET_PAGE_DATA\“, value: value }, \“*\“);’+\r\n\t‘}‘,\“(\“+valueFunc+\“)(\“+OV.wrap(valueFuncData)+\“)\“);\r\n},\ngetUrlObj: function () {\r\n\treturn OV.tools.hashToObj(document.location.href);\r\n},\ngetObjUrl: function (VidHash) {\r\n\treturn location.href.substr(location.href.indexOf(\“?hash=\“))+OV.tools.objToHash(VidHash);\r\n},\nredirect: function(url){\r\n\tif(!chrome.tabs) {\r\n\t\tlocation.replace(url);\r\n\t}\r\n\telse {\r\n\t\tchrome.tabs.getCurrent(function (tab) {\r\n\t\t\tchrome.tabs.update(tab.id, {url: url});\r\n\t\t});\r\n\t}\r\n},\nloadScript: function(url) {\r\n\tvar script = document.createElement(\“script\“);\r\n\tscript.innerText = OV.tools.ajax({url: url, async: false}).responseText;\r\n\tdocument.documentElement.appendChild(script);\r\n},\ngetStorageData: function(type, name, callback) {\r\n\twindow.addEventListener(\“message\“, function MessageListener(event) {\r\n\t\r\n\t\tif (event.data.type && (event.data.type == \“STORAGE_DATA_REC\“) && event.data.request.type == type && event.data.request.var == name) {\r\n\t\t\twindow.removeEventListener(\“message\“,MessageListener);\r\n\t\t\tcallback(OV.wrap(event.data.value));\r\n\t\t}\r\n\t});\r\n\twindow.postMessage({ type: \“STORAGE_DATA_REQ\“, request: { type: type, var: name} }, \“*\“);\r\n},\nsetStorageData: function(type, name, value) {\r\n\twindow.postMessage({ type: \“STORAGE_DATA_SET\“, request: OV.unwrap({ type: type, var: name, value: value }) }, \“*\“);\r\n},\nstorage: {\nlocal: {\nget: function(name, callback) {\r\n\t\t\tOV.page.getStorageData(\“local\“, name, callback);\r\n\t\t},\nset: function(name, value) {\r\n\t\t\tOV.page.setStorageData(\“local\“, name, value);\r\n\t\t}\n},\nsync: {\nget: function(name, callback) {\r\n\t\t\tOV.page.getStorageData(\“sync\“, name, callback);\r\n\t\t},\nset: function(name, value) {\r\n\t\t\tOV.page.setStorageData(\“sync\“, name, value);\r\n\t\t}\n}\n}\n},\nwindow: {\nexecute: function (targetWindow, operation, valueEvent, data) {\r\n\tOV.window.addMessageListener(window, function callback(event) {\r\n\t\tif (event.data.type && (event.data.type == \“GET_WIND_DATA_RESP\“)) {\r\n\t\t\twindow.removeEventListener(\“message\“,callback);\r\n\t\t\tvalueEvent(event.data.value); \r\n\t\t}\r\n\t});\t\r\n\tOV.window.postMessage(targetWindow, { type: \“GET_WIND_DATA\“, operation: operation, data: OV.unwrap(data) });\r\n},\nsetupExecutor: function (functions) {\r\n\twindow.addEventListener(\“message\“, function(event) {\r\n\t\tif (event.data.type && (event.data.type == \“GET_WIND_DATA\“)) {\r\n\t\t\tOV.window.postMessage(event.source, {type: \“GET_WIND_DATA_RESP\“, value: functions[event.data.operation](event.data.data) });\r\n\t\t}\r\n\t});\t\r\n},\npostMessage: function(window, msg) {\r\n\twindow.postMessage(OV.unwrap(msg),\“*\“);\r\n},\naddMessageListener: function(window, callback) {\r\n\tvar func = function(event){\r\n\t\tevent.data = OV.wrap(event.data);\r\n\t\tcallback(event);\r\n\t}\r\n\twindow.addEventListener(\“message\“, func);\r\n\treturn func;\r\n},\nisFrame: function () {\r\n try {\r\n return window.self !== window.top;\r\n } catch (e) {\r\n return true;\r\n }\r\n}\n},\ntab: {\nsetIconPopup: function(url) {\r\n\tOV.background.execute(\“setIconPopup\“, null, {url: url});\r\n},\nsetIconText: function(text) {\r\n\tOV.background.execute(\“setIconText\“,null, {text: text});\r\n},\ncreate: function(url) {\r\n\tchrome.tabs.create({\r\n\t\turl : url\r\n\t});\r\n}\n},\nbackground: {\nexecute: function (operation, valueEvent, data) {\r\n\tchrome.runtime.sendMessage({task: \“BG_EXECUTE\“, operation: operation, data: OV.unwrap(data)}, function(response){\r\n\t\tif(valueEvent) {\r\n\t\t\tvalueEvent(OV.wrap(response.value));\r\n\t\t}\r\n\t});\r\n},\nsetupExecutor: function (functions) {\r\n\tchrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {\r\n\t\tif (msg.task == \“BG_EXECUTE\“) {\r\n\t\t\tOV.log(msg.operation, functions[msg.operation])\r\n\t\t\tif(msg.operation) {\r\n\t\t\t\tfunctions[msg.operation](OV.wrap(sender), OV.wrap(msg.data), function(x) { sendResponse({ value: OV.unwrap(x) }); });\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tOV.log(sendResponse+\“\“)\r\n\t\t\t}\r\n\t\t}\r\n\t});\t\r\n},\nsendToCurrentTab: function (data) {\r\n\tchrome.runtime.sendMessage({task: \“sendToCurrentTab\“, data: OV.unwrap(data)});\r\n},\nsetupTabSending: function() {\r\n\tchrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {\r\n\t\tif (msg.task == \“sendToCurrentTab\“) {\r\n\t\t\tchrome.tabs.getSelected(null, function(tab){\r\n\t\t\t\tif(tab.id != -1 && tab.id != sender.tabId) {\r\n\t\t\t\t\tchrome.tabs.sendMessage(tab.id,msg.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n},\naddMessageListener: function(callback) {\r\n\tchrome.runtime.onMessage.addListener(function(msg, sender, sendResponse){\r\n\t\tcallback(OV.wrap(msg),sender, function(data){\r\n\t\t\tsendResponse(OV.unwrap(data));\r\n\t\t});\r\n\t}); \r\n}\n},\nstorage: {\nsetupStorage: function() {\r\n\twindow.addEventListener(\“message\“, function MessageListener(event) {\r\n\t\t\r\n\t\tif (event.data.type && (event.data.type == \“STORAGE_DATA_REQ\“)) {\r\n\t\t\tif(event.data.request.type == \“local\“) {\r\n\t\t\t\tOV.storage.local.get(event.data.request.var, function(value) {\r\n\t\t\t\t\tOV.log(value);\r\n\t\t\t\t\tOV.window.postMessage(window, { type: \“STORAGE_DATA_REC\“, request: event.data.request, value: value });\r\n\t\t\t\t});\r\n\t\t\t} \r\n\t\t\telse {\r\n\t\t\t\tOV.storage.sync.get(event.data.request.var, function(value) {\r\n\t\t\t\t\tOV.log(value);\r\n\t\t\t\t\tOV.window.postMessage(window, { type: \“STORAGE_DATA_REC\“, request: event.data.request, value: value });\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (event.data.type && (event.data.type == \“STORAGE_DATA_SET\“)) {\r\n\t\t\tif(event.data.request.type == \“local\“) {\r\n\t\t\t\tOV.storage.local.set(event.data.request.var, event.data.request.value);\r\n\t\t\t} \r\n\t\t\telse {\r\n\t\t\t\tOV.storage.sync.set(event.data.request.var, event.data.request.value);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n},\nsync: {\nget: function(name, event){\r\n\tchrome.storage.sync.get(name,function(item){\r\n\t\t//console.log(\“Loaded:\“,name, item[name]);\r\n\t\tif(event != undefined){\r\n\t\t\tevent(OV.wrap(item[name]));\r\n\t\t}\r\n\t});\r\n},\nset: function(name,value,event){\r\n\tchrome.storage.sync.set({[name]: OV.unwrap(value)},function(){\r\n\t\t//console.log(\“Saved:\“,name, value);\r\n\t\tif(event != undefined){\r\n\t\t\tevent(name,value);\r\n\t\t}\r\n\t});\r\n}\n},\nlocal: {\nget: function(name, event){\r\n\tchrome.storage.local.get(name,function(item){\r\n\t\t//console.log(\“Loaded:\“,name, item[name]);\r\n\t\tif(event != undefined){\r\n\t\t\tevent(OV.wrap(item[name]));\r\n\t\t}\r\n\t});\r\n},\nset: function (name,value,event){\r\n\tchrome.storage.local.set({[name]: OV.unwrap(value)},function(){\r\n\t\t//console.log(\“Saved:\“,name, value);\r\n\t\tif(event != undefined){\r\n\t\t\tevent(name,value);\r\n\t\t}\r\n\t});\r\n}\n}\n},\nenvironment: {\n_isBGPage: false,\nhost: \“chrome-extension://abefmkpoondgfeeonmlfomllfjnjddll\“,\ngetVidPlaySiteUrl: function (VidHash) {\r\n\treturn chrome.extension.getURL(\“/html/VidPlaySite/VidPlaySite.html\“)+OV.tools.objToHash(VidHash);\r\n},\ngetVidPopupSiteUrl: function (VidHash) {\r\n\treturn chrome.extension.getURL(\“/html/VideoPopup/VideoPopup.html\“)+OV.tools.objToHash(VidHash);\r\n},\ngetOptionsSiteUrl: function () {\r\n\treturn chrome.extension.getURL(\“/html/OptionsSite/OptionsSite.html\“);\r\n},\ngetLibrarySiteUrl: function () {\r\n\treturn chrome.extension.getURL(\“/html/LibrarySite/librarySite.html\“);\r\n},\nloadVidPlaySite: function (VidHash) {\r\n\tVidHash.vidSiteUrl = location.href;\r\n\tOV.page.redirect(OV.environment.getVidPlaySiteUrl(VidHash));\r\n},\nisExtensionPage: function(url) {\r\n\tif(OV.environment.browser() == OV.CHROME) {\r\n\t\treturn url.indexOf(\“chrome-extension://\“) != -1;\r\n\t}\r\n\telse {\r\n\t\treturn url.indexOf(\“moz-extension://\“) != -1;\r\n\t}\r\n},\ngetRoot: function() {\r\n\treturn chrome.extension.getURL(\“\“);\r\n},\nisBackgroundPage: function() {\r\n\treturn OV.environment._isBGPage;\r\n},\ngetManifest: function() {\r\n\treturn chrome.runtime.getManifest();\r\n},\nbrowser: function() {\r\n\tif(navigator.userAgent.search(\“Firefox\“) != -1) {\r\n\t\treturn OV.FIREFOX;\r\n\t}\r\n\telse if(navigator.userAgent.search(\“Chrome\“) != -1) {\r\n\t\treturn OV.CHROME;\r\n\t}\r\n}\n},\nCHROME: \“chrome\“,\nFIREFOX: \“firefox\“,\nanalytics: {\nsetup: function(){},\npostData: function(data) {\r\n\tdata = Object.assign({v: 1, tid: \“UA-118573631-1\“, cid: 555}, data);\r\n\tOV.storage.sync.get(\“AnalyticsEnabled\“, function(value){\r\n\t\tif(value || value == undefined) {\r\n\t\t\tconsole.log(\“analytics\“);\r\n\t\t\tOV.tools.ajax({\r\n\t\t\t\turl: \“https://www.google-analytics.com/collect\“,\r\n\t\t\t\ttype: \“POST\“,\r\n\t\t\t\tdata: data\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n},\nsend: function(data) {\r\n\tif(OV.environment.isBackgroundPage()) {\r\n\t\tOV.analytics.postData(data);\r\n\t}\r\n\telse {\r\n\t\tOV.background.execute(\“analytics\“, null, data);\r\n\t}\r\n},\nfireEvent: function(category, action, label) {\r\n\tOV.analytics.send({t: \“event\“, ec: category, ea: action, el: label});\r\n}\n},\ndebug: {\nstartTiming: function() {\r\n\tOV.debug.time = (new Date()).getTime();\r\n},\ntimePassed: function() {\r\n\tif(!OV.debug.time) {\r\n\t\treturn 0;\r\n\t}\r\n\treturn (new Date()).getTime() – OV.debug.time;\r\n},\nmsg: function(msg) {\r\n\tconsole.log(msg, OV.debug.timePassed());\r\n}\n}\n}“); // ]]>