if (typeof _RCF_CONFIG == 'undefined') _RCF_CONFIG={}; if (typeof _RCF_CONFIG.triggerQueue == 'undefined') _RCF_CONFIG.visualsQueue=[]; if (!_RCF_CONFIG.initializedFor){ _RCF_CONFIG.initializedFor='15422'; _RCF_CONFIG.visualization={}; _RCF_CONFIG.widgets={}; _RCF_CONFIG.initMods={}; _RCF_CONFIG.id='15422'; _RCF_CONFIG.deepJS=true; _RCF_CONFIG.deepNet=true; _RCF_CONFIG.fourOfour='404 Not Found'; _RCF_CONFIG.DNT=1; _RCF_CONFIG.url=window.location.href; _RCF_CONFIG.is_link_internal = new RegExp("^https?:\/\/(.*)" + location.host.replace(/^www\./i, ""), "i"); _RCF_CONFIG.ref = ''; _RCF_CONFIG.autoP = 100; _RCF_CONFIG.lookback = 90; _RCF_CONFIG.unmask = 1; function rcf_whitelist_all(){try{ document.body.classList=document.body.classList+' rcf-whitelist';}catch (e){ setTimeout('rcf_whitelist_all()',25); }};rcf_whitelist_all();if (!_RCF_CONFIG.env) _RCF_CONFIG.env=''; _RCF_ERRS={}; if (!_RCF_CONFIG.consoleTypes){ _RCF_ERRS.consoleTypes=["error"]; }else{ _RCF_ERRS.consoleTypes=_RCF_CONFIG.consoleTypes; }if (document.URL=='about:srcdoc'&&parent.document && parent.document.URL!='about:srcdoc') { (function(){ var hstc=document.createElement('script'); hstc.src='https://cdnflow.co/js/'+_RCF_CONFIG.id+'.js'; hstc.async=true; var htssc = parent.document.getElementsByTagName('script')[0];htssc.parentNode.insertBefore(hstc, htssc);})(); }else{ _RCF_ERRS.errorTimer={}; _RCF_ERRS.queue=[]; _RCF_CONFIG.trigger = function(triggerID){ if (typeof _HS_RCF!=='undefined' && typeof _HS_RCF.trigger === 'function'){ _HS_RCF.trigger(triggerID); }else{ _RCF_CONFIG.triggerQueue.push(triggerID); } }; _RCF_CONFIG.checkChance = function(val){ try { var x= _RCF_CONFIG.getVal("_RCF_eligible"); if (x !== null) { return x==1?true:false; } else { if (val>=Math.floor(Math.random() * 101)) { _RCF_CONFIG.setVal("_RCF_eligible", 1, false, true); return true; } else { _RCF_CONFIG.setVal("_RCF_eligible", 0, false, true); return false; } } }catch(e){ return false; } };_RCF_CONFIG.getLocation = function(href) { if (href) { try { var l = document.createElement("a"); l.href = href; return l; } catch (e) { var dummy = {}; dummy.pathname = ""; dummy.hostname = ""; return dummy; } } var dummy = {}; dummy.pathname = ""; dummy.hostname = ""; return dummy; }; _RCF_CONFIG.validURL = function(str) { try{ var testURL=new URL("http://example.com/"); try { new URL(str); return true; } catch (e) { return false; } }catch(e){ var pattern = new RegExp('^(https?:\\/\\/)?'+'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ '((\\d{1,3}\\.){3}\\d{1,3}))'+'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ '(\\?[;&a-z\\d%_.~+=-]*)?'+'(\\#[-a-z\\d_]*)?$','i');return pattern.test(str); } }; _RCF_CONFIG.domReady= function (fn) {if (document.attachEvent ? document.readyState === "interactive" : document.readyState !== "loading") fn(); else document.addEventListener('DOMContentLoaded', fn); };try { if (typeof (top.document) == "object") _RCF_CONFIG.ref = top.document; else _RCF_CONFIG.ref = document; } catch (e) { _RCF_CONFIG.ref = document; } if (document.referrer.indexOf(_RCF_CONFIG.ref.location.hostname) == -1) _RCF_CONFIG.ref = document;try { _RCF_CONFIG.ref = _RCF_CONFIG.ref.referrer; } catch (e) { _RCF_CONFIG.ref = ''; } try { Wix.getSiteInfo(function (site) { _RCF_CONFIG.url = site.url; _RCF_CONFIG.ref = site.referrer; }); } catch (e) {} if (_RCF_CONFIG.is_link_internal.test(_RCF_CONFIG.ref)){ _RCF_CONFIG.ref=''; } try{ _RCF_CONFIG.url=encodeURIComponent(_RCF_CONFIG.url); _RCF_CONFIG.ref=encodeURIComponent(_RCF_CONFIG.ref); } catch (e){} _RCF_CONFIG.returns=0;_RCF_CONFIG.giveMeRandom = function () { return Math.random().toString(36).substr(2,11); };_RCF_CONFIG.readCookie = function (name) { var nameEQ = name + "="; 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, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; };_RCF_CONFIG.writeCookie = function (name, value, days) { var expires; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } else { expires = ""; } document.cookie = name + "=" + value + expires + "; path=/"; };_RCF_CONFIG.setVal = function (key, value, keep, tabPersistance) { if (keep===undefined){keep=true;} var method = sessionStorage; if (keep == true) { method = localStorage; } if (tabPersistance){ method = false; } if (!method) { if (keep) { keep = 360; } else { keep = false; } _RCF_CONFIG.writeCookie(key, value, keep); } else { method.setItem(key, value); } };_RCF_CONFIG.getVal = function (key) { var val = null; try { val = sessionStorage.getItem(key); } catch (e) { } if (!val) { try { val = localStorage.getItem(key); } catch (e) { } } if (!val) { try { val = _RCF_CONFIG.readCookie(key); } catch (e) { } } return val; }; try{ if (_RCF_CONFIG.getVal("_RCF_returns")){ _RCF_CONFIG.returns=_RCF_CONFIG.getVal("_RCF_returns"); if (_RCF_CONFIG.getVal("_RCF_lastSession")&&_RCF_CONFIG.getVal("_RCF_lastSession")< (Math.round((new Date()).getTime() / 1000))-(60*30) ) { _RCF_CONFIG.returns++; } if (!_RCF_CONFIG.getVal("_RCF_lastSession") && _RCF_CONFIG.returns>0) { _RCF_CONFIG.returns++; } } _RCF_CONFIG.setVal("_RCF_returns",_RCF_CONFIG.returns,true); }catch(e){}_RCF_CONFIG.lastVisit=0; try{ if (_RCF_CONFIG.getVal("_RCF_lastSession")){ _RCF_CONFIG.lastVisit=_RCF_CONFIG.getVal("_RCF_lastSession"); } _RCF_CONFIG.setVal("_RCF_lastSession",Math.round((new Date()).getTime() / 1000),false,true); }catch(e){} _RCF_CONFIG.pageviews=0; try{ if (_RCF_CONFIG.getVal("_RCF_pageviews")){ _RCF_CONFIG.pageviews=_RCF_CONFIG.getVal("_RCF_pageviews"); _RCF_CONFIG.pageviews++; } _RCF_CONFIG.setVal("_RCF_pageviews",_RCF_CONFIG.pageviews,true); }catch(e){}if (_RCF_CONFIG.getVal("_RCF_temp_id") !== null) { _RCF_CONFIG.uid = _RCF_CONFIG.getVal("_RCF_temp_id"); } else { _RCF_CONFIG.uid = _RCF_CONFIG.giveMeRandom(); _RCF_CONFIG.setVal("_RCF_temp_id",_RCF_CONFIG.uid,false,true); }_RCF_CONFIG.pageToken = _RCF_CONFIG.giveMeRandom();(function (root, factory) { 'use strict';if (typeof define === 'function' && define.amd) { define('stackframe', [], factory); } else if (typeof exports === 'object') { module.exports = factory(); } else { root.StackFrame = factory(); } }(_RCF_ERRS, function () { 'use strict';function _isNumber(n) { return !isNaN(parseFloat(n)) && isFinite(n); }function _capitalize(str) { return str.charAt(0).toUpperCase() + str.substring(1); }function _getter(p) { return function () { return this[p]; }; }var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel']; var numericProps = ['columnNumber', 'lineNumber']; var stringProps = ['fileName', 'functionName', 'source']; var arrayProps = ['args'];var props = booleanProps.concat(numericProps, stringProps, arrayProps);function StackFrame(obj) { if (obj instanceof Object) { for (var i = 0; i < props.length; i++) { if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) { this['set' + _capitalize(props[i])](obj[props[i]]); } } } }StackFrame.prototype = { getArgs: function () { return this.args; }, setArgs: function (v) { if (Object.prototype.toString.call(v) !== '[object Array]') { throw new TypeError('Args must be an Array'); } this.args = v; },getEvalOrigin: function () { return this.evalOrigin; }, setEvalOrigin: function (v) { if (v instanceof StackFrame) { this.evalOrigin = v; } else if (v instanceof Object) { this.evalOrigin = new StackFrame(v); } else { throw new TypeError('Eval Origin must be an Object or StackFrame'); } },toString: function () { var functionName = this.getFunctionName() || '{anonymous}'; var args = '(' + (this.getArgs() || []).join(',') + ')'; var fileName = this.getFileName() ? ('@' + this.getFileName()) : ''; var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : ''; var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : ''; return functionName + args + fileName + lineNumber + columnNumber; } };StackFrame.fromString = function StackFrame$$fromString(str) { var argsStartIndex = str.indexOf('('); var argsEndIndex = str.lastIndexOf(')');var functionName = str.substring(0, argsStartIndex); var args = str.substring(argsStartIndex + 1, argsEndIndex).split(','); var locationString = str.substring(argsEndIndex + 1);if (locationString.indexOf('@') === 0) { var parts = /@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(locationString, ''); var fileName = parts[1]; var lineNumber = parts[2]; var columnNumber = parts[3]; }return new StackFrame({ functionName: functionName, args: args || undefined, fileName: fileName, lineNumber: lineNumber || undefined, columnNumber: columnNumber || undefined }); };for (var i = 0; i < booleanProps.length; i++) { StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]); StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function (p) { return function (v) { this[p] = Boolean(v); }; })(booleanProps[i]); }for (var j = 0; j < numericProps.length; j++) { StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]); StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function (p) { return function (v) { if (!_isNumber(v)) { throw new TypeError(p + ' must be a Number'); } this[p] = Number(v); }; })(numericProps[j]); }for (var k = 0; k < stringProps.length; k++) { StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]); StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function (p) { return function (v) { this[p] = String(v); }; })(stringProps[k]); }return StackFrame; }));(function (root, factory) { 'use strict'; if (typeof define === 'function' && define.amd) { define('error-stack-parser', ['stackframe'], factory); } else if (typeof exports === 'object') { module.exports = factory(require('stackframe')); } else { root.ErrorStackParser = factory(root.StackFrame); } }(_RCF_ERRS, function ErrorStackParser(StackFrame) { 'use strict';var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\S+\:\d+/; var CHROME_IE_STACK_REGEXP = /^\s*at .*(\S+\:\d+|\(native\))/m; var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\[native code\])?$/;return {parse: function ErrorStackParser$$parse(error) { if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') { return this.parseOpera(error); } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) { return this.parseV8OrIE(error); } else if (error.stack) { return this.parseFFOrSafari(error); } else { throw new Error('Cannot parse given Error object'); } },extractLocation: function ErrorStackParser$$extractLocation(urlLike) { if (urlLike.indexOf(':') === -1) { return [urlLike]; }var regExp = /(.+?)(?:\:(\d+))?(?:\:(\d+))?$/; var parts = regExp.exec(urlLike.replace(/[\(\)]/g, '')); return [parts[1], parts[2] || undefined, parts[3] || undefined]; },parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) { var filtered = error.stack.split('\n').filter(function (line) { return !!line.match(CHROME_IE_STACK_REGEXP); }, this);return filtered.map(function (line) { if (line.indexOf('(eval ') > -1) { line = line.replace(/eval code/g, 'eval').replace(/(\(eval at [^\()]*)|(\)\,.*$)/g, ''); } var tokens = line.replace(/^\s+/, '').replace(/\(eval code/g, '(').split(/\s+/).slice(1); var locationParts = this.extractLocation(tokens.pop()); var functionName = tokens.join(' ') || undefined; var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];return new StackFrame({ functionName: functionName, fileName: fileName, lineNumber: locationParts[1], columnNumber: locationParts[2], source: line }); }, this); },parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) { var filtered = error.stack.split('\n').filter(function (line) { return !line.match(SAFARI_NATIVE_CODE_REGEXP); }, this);return filtered.map(function (line) { if (line.indexOf(' > eval') > -1) { line = line.replace(/ line (\d+)(?: > eval line \d+)* > eval\:\d+\:\d+/g, ':$1'); }if (line.indexOf('@') === -1 && line.indexOf(':') === -1) { return new StackFrame({ functionName: line }); } else { var functionNameRegex = /((.*".+"[^@]*)?[^@]*)(?:@)/; var matches = line.match(functionNameRegex); var functionName = matches && matches[1] ? matches[1] : undefined; var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));return new StackFrame({ functionName: functionName, fileName: locationParts[0], lineNumber: locationParts[1], columnNumber: locationParts[2], source: line }); } }, this); },parseOpera: function ErrorStackParser$$parseOpera(e) { if (!e.stacktrace || (e.message.indexOf('\n') > -1 && e.message.split('\n').length > e.stacktrace.split('\n').length)) { return this.parseOpera9(e); } else if (!e.stack) { return this.parseOpera10(e); } else { return this.parseOpera11(e); } },parseOpera9: function ErrorStackParser$$parseOpera9(e) { var lineRE = /Line (\d+).*script (?:in )?(\S+)/i; var lines = e.message.split('\n'); var result = [];for (var i = 2, len = lines.length; i < len; i += 2) { var match = lineRE.exec(lines[i]); if (match) { result.push(new StackFrame({ fileName: match[2], lineNumber: match[1], source: lines[i] })); } }return result; },parseOpera10: function ErrorStackParser$$parseOpera10(e) { var lineRE = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i; var lines = e.stacktrace.split('\n'); var result = [];for (var i = 0, len = lines.length; i < len; i += 2) { var match = lineRE.exec(lines[i]); if (match) { result.push( new StackFrame({ functionName: match[3] || undefined, fileName: match[2], lineNumber: match[1], source: lines[i] }) ); } }return result; },parseOpera11: function ErrorStackParser$$parseOpera11(error) { var filtered = error.stack.split('\n').filter(function (line) { return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/); }, this);return filtered.map(function (line) { var tokens = line.split('@'); var locationParts = this.extractLocation(tokens.pop()); var functionCall = (tokens.shift() || ''); var functionName = functionCall .replace(//, '$2') .replace(/\([^\)]*\)/g, '') || undefined; var argsRaw; if (functionCall.match(/\(([^\)]*)\)/)) { argsRaw = functionCall.replace(/^[^\(]+\(([^\)]*)\)$/, '$1'); } var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ? undefined : argsRaw.split(',');return new StackFrame({ functionName: functionName, args: args, fileName: locationParts[0], lineNumber: locationParts[1], columnNumber: locationParts[2], source: line }); }, this); } }; }));_RCF_ERRS.rec = function (err){ if (typeof _HS_RCF!=='undefined' && typeof _HS_RCF.rec === 'function'){ _HS_RCF.rec(err); }else{ _RCF_ERRS.queue.push(err); } };_RCF_ERRS.have = function (object, funcName) { try { if (object[funcName]) return true; } catch (e) { return false; } return false; };_RCF_ERRS.havePrototype = function (object, proto) { try { for (var protos = proto.split("."), objs = object, i = 0; i < protos.length; i++) if (objs[protos[i]]) { objs = objs[protos[i]]; } else { return false; } return true; } catch (e) { return false; } };_RCF_ERRS.detectObject = function (possibleObject) { return (possibleObject && typeof possibleObject === 'object') }; _RCF_ERRS.detectErrorObject = function (possibleErrorObject) { if (!_RCF_ERRS.detectObject(possibleErrorObject)) return false;var is_error = "[object Error]" === Object.prototype.toString.call(possibleErrorObject); var is_exception = "[object DOMException]" === Object.prototype.toString.call(possibleErrorObject); try { var string_check = "string" === typeof possibleErrorObject.name && "string" === typeof possibleErrorObject.message; } catch (e) { var string_check = false; } if (is_error || is_exception || string_check) { return true; } else { return false; } };_RCF_ERRS.translateError = function (err) { if (err === "") return 'Blank'; if (err === undefined) return 'undefined'; var data; try { data = JSON.stringify(err) } catch (e) { } return data; };_RCF_ERRS.catchError = function (func) { function deepErrorDetector() { try { return func.apply(this, arguments); } catch (e) { _RCF_ERRS.errorTracker('error', e); throw (e); } }try { if (typeof func !== "function" || Object.prototype.hasOwnProperty.call(func, "_rcf_errs_errs_")) return func; if (Object.prototype.hasOwnProperty.call(func, "_hs_current_stack_")) return func._hs_current_stack_; } catch (e) { return func; }for (var inherit in func) { if (Object.prototype.hasOwnProperty.call(func, inherit)) { deepErrorDetector[inherit] = func[inherit]; } } deepErrorDetector.prototype = func.prototype; deepErrorDetector._rcf_errs_errs_ = 1; return func._hs_current_stack_ = deepErrorDetector; };_RCF_ERRS.catchHelper = function (glob, prop, func) { glob[prop] = func(glob[prop] || function () { }); };_RCF_ERRS.observeTimer = function () {_RCF_ERRS.catchHelper(window, 'setTimeout', function (origFunc) { return function (parm1, parm2) {var all_parms = Array.prototype.slice.call(arguments); if (typeof all_parms[0] == 'function') all_parms[0] = _RCF_ERRS.catchError(all_parms[0]); if (_RCF_ERRS.have(origFunc, "apply")) { return origFunc.apply(this, all_parms); } else { origFunc(all_parms[0], all_parms[1]); } } }); _RCF_ERRS.catchHelper(window, 'setInterval', function (origFunc) { return function (parm1, parm2) {var all_parms = Array.prototype.slice.call(arguments); if (typeof all_parms[0] == 'function') all_parms[0] = _RCF_ERRS.catchError(all_parms[0]); if (_RCF_ERRS.have(origFunc, "apply")) { return origFunc.apply(this, all_parms); } else { origFunc(all_parms[0], all_parms[1]); } } }); }; _RCF_ERRS.observeEventListeners = function () { ["Node", "EventTarget", "XMLHttpRequest"].forEach(function (eventType) { if (_RCF_ERRS.havePrototype(window, eventType + ".prototype.addEventListener")) if (Object.prototype.hasOwnProperty.call(window[eventType].prototype, "addEventListener")) _RCF_ERRS.observeEventTarget(window[eventType].prototype); }); };_RCF_ERRS.observeEventTarget = function (eventType) {if (_RCF_ERRS.havePrototype(eventType, "addEventListener.call") && _RCF_ERRS.havePrototype(eventType, "removeEventListener.call")) { _RCF_ERRS.catchHelper(eventType, "addEventListener", function (funcCallee) { return function (parm1, parm2, parm3, parm4) { try { _RCF_ERRS.havePrototype(parm2, "handleEvent") && (parm2.handleEvent = _RCF_ERRS.catchError(parm2.handleEvent)) } catch (e) { } return funcCallee.call(this, parm1, _RCF_ERRS.catchError(parm2), parm3, parm4); } });_RCF_ERRS.catchHelper(eventType, "removeEventListener", function (funcCallee) { return function (parm1, parm2, parm3, parm4) { try { parm2 = parm2 && (parm2._hs_current_stack_ || parm2) } catch (e) { } return funcCallee.call(this, parm1, parm2, parm3, parm4) } }); } }; _RCF_CONFIG.getParmFromHash = function (parm) { prm = location.hash.match(new RegExp(parm + '=([^&]*)')); if (prm) return location.hash.match(new RegExp(parm + '=([^&]*)'))[1]; return ''; };_RCF_CONFIG.debug = false; if (_RCF_CONFIG.getParmFromHash("rcf_debug") != '') { _RCF_CONFIG.debug = true; }if (_RCF_CONFIG.debug) _RCF_ERRS.consoleTypes = ['warn', 'error']; _RCF_ERRS.observeConsoleErrors = function (consoleObj) { var consoleTypes = _RCF_ERRS.consoleTypes; consoleObj = consoleObj || {}; var logger = consoleObj.log || function () { };for (consoleType = 0; consoleType < consoleTypes.length; consoleType++)(function (consoleType) { var current_logger = consoleObj[consoleType] || logger; consoleObj[consoleType] = function () { try { var virtualError = Array.prototype.slice.call(arguments); var errorForReport = virtualError; if (virtualError.length === 1) errorForReport = virtualError[0]; _RCF_ERRS.errorTracker(consoleType, _RCF_ERRS.translateError(errorForReport)); if (_RCF_ERRS.have(current_logger, "apply")) { current_logger.apply(this, virtualError); } else { current_logger(virtualError[0]); } } catch (e) { } } })(consoleTypes[consoleType]); return consoleObj; };_RCF_ERRS.errorTracker = function (errorType, errorLog) { if (errorType != 'error' && errorType != 'warn' && errorType != 'info' && errorType != 'debug' && errorType != 'log') { errorType = 'error'; } if (!errorLog) { return; }var stack = ''; var selfStack=false; var msg = ''; if (_RCF_ERRS.detectErrorObject(errorLog)) { msg = errorLog && errorLog.message; stack = errorLog && errorLog.stack && errorLog.stack.substring(0, 1600); } else { if (typeof errorLog == 'string') { msg = errorLog; } } if (errorLog.name) msg=errorLog.name+": " + msg; if (stack == '' || stack == undefined) { try { throw Error(); } catch (e) { stack = e && e.stack && e.stack.substring(0, 1600); } selfStack=true; } var fileName = ''; var lineNumber = ''; var column = ''; try { var stackTrace = _RCF_ERRS.ErrorStackParser.parse(errorLog); if (stackTrace[0] && stackTrace[0].fileName && stackTrace[0].fileName.indexOf("/js/"+_RCF_CONFIG.id+".js")===-1) { fileName = stackTrace[0].fileName || document.URL; lineNumber = stackTrace[0].lineNumber || 0; column = stackTrace[0].columnNumber || 0; }else if (stackTrace[1] && stackTrace[1].fileName&& stackTrace[1].fileName.indexOf("/js/"+_RCF_CONFIG.id+".js")===-1) { fileName = stackTrace[1].fileName || document.URL; lineNumber = stackTrace[1].lineNumber || 0; column = stackTrace[1].columnNumber || 0; }else if (stackTrace[2] && stackTrace[2].fileName&& stackTrace[2].fileName.indexOf("/js/"+_RCF_CONFIG.id+".js")===-1) { fileName = stackTrace[2].fileName || document.URL; lineNumber = stackTrace[2].lineNumber || 0; column = stackTrace[2].columnNumber || 0; }else if (stackTrace[3] && stackTrace[3].fileName ) { fileName = stackTrace[3].fileName || document.URL; lineNumber = stackTrace[3].lineNumber || 0; column = stackTrace[3].columnNumber || 0; } } catch (e) { if (typeof errorLog=='string' && stack && typeof stack == 'string' && stack!=''){ var newError={}; newError.stack=stack; newError.message=errorLog; try{ var stackTrace = _RCF_ERRS.ErrorStackParser.parse(newError); if (stackTrace[0] && stackTrace[0].fileName && stackTrace[0].fileName.indexOf("/js/"+_RCF_CONFIG.id+".js")===-1) { fileName = stackTrace[0].fileName || document.URL; lineNumber = stackTrace[0].lineNumber || 0; column = stackTrace[0].columnNumber || 0; }else if (stackTrace[1] && stackTrace[1].fileName&& stackTrace[1].fileName.indexOf("/js/"+_RCF_CONFIG.id+".js")===-1) { fileName = stackTrace[1].fileName || document.URL; lineNumber = stackTrace[1].lineNumber || 0; column = stackTrace[1].columnNumber || 0; }else if (stackTrace[2] && stackTrace[2].fileName&& stackTrace[2].fileName.indexOf("/js/"+_RCF_CONFIG.id+".js")===-1) { fileName = stackTrace[2].fileName || document.URL; lineNumber = stackTrace[2].lineNumber || 0; column = stackTrace[2].columnNumber || 0; }else if (stackTrace[3] && stackTrace[3].fileName ) { fileName = stackTrace[3].fileName || document.URL; lineNumber = stackTrace[3].lineNumber || 0; column = stackTrace[3].columnNumber || 0; } } catch(e) {} }} if (errorType!='error'){ try{ var msgArray=JSON.parse(msg); if (msgArray && typeof msgArray!='string' && typeof msgArray!='number'){ if (typeof msgArray.push == 'function' && typeof msgArray.forEach == 'function' && msgArray.length && msgArray.length>0){ if (msgArray && msgArray.length>=2 && typeof msgArray[0] == 'string'&& msgArray[0].indexOf('%c')!==-1){ if (msgArray.length==2){ msg=msgArray[0].replace('%c',''); }else{ msg=msgArray[0].replace('%c',''); var c=0; msgArray.forEach(function(msg2){ c++; if (c>2){ if (typeof msg2=='string'||typeof msg2=='number'){ msg+=' '+msg2; }else{ msg+=' '+JSON.stringify(msg2); } } }); }}else{ msg=''; msgArray.forEach(function(val){if (typeof val == 'string'){ msg=msg+val+' '; }else{ msg=msg+JSON.stringify(val)+' '; }}); } } }else{ if (msgArray && (typeof msgArray=='string'||typeof msgArray=='number')){ msg=msgArray; } } }catch(e){ }} var error = { event: errorType, msg: msg, file: fileName, line: lineNumber, column: column, stack: stack, selfStack: selfStack, env: _RCF_CONFIG.env?_RCF_CONFIG.env:'' };if (_RCF_ERRS.errorTimer[msg] && (!fileName)){ }else{ clearTimeout(_RCF_ERRS.errorTimer[msg]); _RCF_ERRS.errorTimer[msg]=null; _RCF_ERRS.rec(error); } };_RCF_ERRS.observePromisesRejections = function () {if (window.addEventListener) { window.addEventListener("unhandledrejection", function (error) { error = error || {};if (error.detail) { try { error = error.detail["reason"]; } catch (e) { } } else { try { error = error['reason']; } catch (e) {try{ error=error.name } catch (e){} } }if (error) { if (!_RCF_ERRS.detectErrorObject(error)) try { throw Error(error); } catch (e) { error = e; } _RCF_ERRS.errorTracker("error", error); } }); } else { window.onunhandledrejection = function (error) { _RCF_ERRS.errorTracker("error", error); } } };_RCF_ERRS.observeFetch= function () { var a = this.log; _RCF_ERRS.catchHelper(window, "fetch", function (e) { return function (address, pars) { var newfetch = address instanceof Request ? address : new Request(address, pars) , fetchapply = e.apply(window, arguments); fetchapply.__RCF_ERRS_fetchstate__ ={ type: "fetch",method: newfetch.method,url: newfetch.url }; return fetchapply.then(function (e) { var data = fetchapply.__RCF_ERRS_fetchstate__; if (data){ if ( e.status >=400){_RCF_ERRS.rec({ event: 'ajax', msg: e.status + " " + e.statusText + ": " + data.method + " " + data.url, file: '', line: 0, column: 0, env: _RCF_CONFIG.env?_RCF_CONFIG.env:'' });} } return e })["catch"](function (e) { e = e || {}; var data = fetchapply.__RCF_ERRS_fetchstate__; if (data){ _RCF_ERRS.rec({ event: 'ajax', msg: e.message + ": " + data.method + " " + data.url, file: '', line: 0, column: 0, env: _RCF_CONFIG.env?_RCF_CONFIG.env:'' }); } throw e; }) } }) };_RCF_ERRS.observeNetwork = function (netobj) { var thisnet = this;var netopen = netobj.prototype.open;var netsend = netobj.prototype.send;netobj.prototype.open = function (varmethod, address) {var url = (address || "").toString(); if (url.indexOf("localhost:0") < 0){ this._RCF_ERRS = { method: varmethod , url: url }; } return netopen.apply(this, arguments); };netobj.prototype.send = function () { try { if (!this._RCF_ERRS) return e.apply(this, arguments); thisnet.observeNetLoad(this); } catch (err) { thisnet.onFault(err); } return netsend.apply(this, arguments) }; return netobj; }; _RCF_ERRS.netCheck= function (net) { if (400 <= net.status &&net.status != 1223) { var log = net._RCF_ERRS || {}; if (!net._hs_rcf_404) _RCF_ERRS.rec({ event: 'ajax', msg: net.status + " " + net.statusText + ": " + log.method + " " + log.url, file: '', line: 0, column: 0, env: _RCF_CONFIG.env?_RCF_CONFIG.env:'' }); } }; _RCF_ERRS.observeNetLoad= function (net) { var thisobj = this;net.addEventListener ? net.addEventListener("load", function () { thisobj.netCheck(net) }, 1) : setTimeout(function () { try { var netonload = net.onload; net.onload = function () { thisobj.netCheck(net); typeof netonload === "function" && _RCF_ERRS.have(netonload, "apply") && netonload.apply(net, arguments) }; var netonerror = net.onerror; net.onerror = function () { thisobj.netCheck(net); typeof netonerror ==="function"&& _RCF_ERRS.have(netonerror, "apply") && netonerror.apply(net, arguments) } } catch (err) { thisobj.onFault(err) } }, 0) }; if (_RCF_ERRS.consoleTypes.indexOf('error')!=-1) { if (_RCF_CONFIG.deepJS) { _RCF_ERRS.observePromisesRejections(); _RCF_ERRS.observeConsoleErrors(console);_RCF_ERRS.observeEventListeners();_RCF_ERRS.observeTimer(); } if (_RCF_ERRS.deepNet) { _RCF_ERRS.observeFetch(); window.XMLHttpRequest && _RCF_ERRS.have(window.XMLHttpRequest.prototype.open, "apply") && _RCF_ERRS.observeNetwork(window.XMLHttpRequest);window.XDomainRequest && _RCF_ERRS.have(window.XDomainRequest.prototype.open, "apply") && _RCF_ERRS.observeNetwork(window.XDomainRequest);} } if (_RCF_ERRS.consoleTypes.indexOf('error')!=-1){ _RCF_ERRS.errorCallback = window.onerror; window.onerror = function (msg, url, lineNo, columnNo, error) { if ('Script error.'!=msg&&url && url.indexOf('/engine/recorder.js')===-1) { if (msg){ msg=msg.replace('Uncaught ',''); }_RCF_ERRS.errorTimer[msg] = setTimeout(function(){ _RCF_ERRS.rec({ event: 'error', msg: msg, file: url, line: lineNo, column: columnNo, error: error && error.stack && error.stack.substring(0, 1600), env: _RCF_CONFIG.env?_RCF_CONFIG.env:'' }); _RCF_ERRS.errorTimer[msg]=null; },100);} _RCF_ERRS.errorCallback && _RCF_ERRS.errorCallback.apply(this, arguments); }; }_RCF_CONFIG.ready=function(module){ _RCF_CONFIG.initMods[module]=true; if (_RCF_CONFIG.initMods['recorder']&&_RCF_CONFIG.initMods['gather']){ _HS_RCF.initRecording(); } };(function(){var hstc=document.createElement('script');hstc.async=true;hstc.src='https://js.reactflow.com/assets/engine/inspect.js?sid='+_RCF_CONFIG.id+'&url='+_RCF_CONFIG.url+'&ref='+_RCF_CONFIG.ref+'&lastses='+_RCF_CONFIG.lastVisit+'&pageviews='+_RCF_CONFIG.pageviews+'&returns='+_RCF_CONFIG.returns+'&uid='+_RCF_CONFIG.uid+'&token='+_RCF_CONFIG.pageToken+'&autop='+_RCF_CONFIG.checkChance(_RCF_CONFIG.autoP)+'&lookback='+_RCF_CONFIG.lookback;var htssc = document.getElementsByTagName('script')[0];htssc.parentNode.insertBefore(hstc, htssc);})();if (_RCF_CONFIG.getVal("_hs_rcf_alphabetWidth") === null) {(function(){var hstc=document.createElement('script');hstc.crossOrigin = 'anonymous';hstc.src='https://js.reactflow.com/assets/engine/gather.php?mode=alphabetGet&sid='+_RCF_CONFIG.id; var htssc = document.getElementsByTagName('script')[0];htssc.parentNode.insertBefore(hstc, htssc);})(); }else{(function(){var hstc=document.createElement('script');hstc.crossOrigin = 'anonymous';hstc.src='https://js.reactflow.com/assets/engine/recorder.js?37ae517057'; var htssc = document.getElementsByTagName('script')[0];htssc.parentNode.insertBefore(hstc, htssc);})(); }} }else{ if (_RCF_CONFIG.initializedFor!=15422){ console.warn("Reactflow is installed multiple times, We have ignored code for website #15422 and continuing with code for website #"+_RCF_CONFIG.initializedFor+" as it's code initialized first."); } }

Maiale ai cinque lardi

hong shao rou  credit foto The Simpl Things in Lifehong shao rou credit foto The Simpl Things in LifeDi goloso c'è sicuramente il nome della ricetta, che racchiude anche una parte importante della storia della Cina. Dimenticate gli involtini primavera e imparate a conoscere il maiale della contea di Ningxian, dai cinque strati di lardo separati da altrettante strisce di muscolatura. È ingrediente base per preparae lo Hong Shao Rou, la pancetta brasata e glassata, piatto preferito da Mao Zedong o Mao Tse Tung, che pare ne mangiasse ogni giorno almeno una porzione.

Già da una decina d'anni in Cina la ricetta è stata dichiarata patrimonio nazionale e i ristoranti che la propongono devono seguire rigorosamente la ricetta ufficiale. Da non confondere con un banale spezzatino di suino al pepe. Bene, innanzitutto la carne dovrà essere solo di maiale di razza NingXiang definita "tesoro contadino"; la pancetta va annegata nel vino di Shaoxing. 

Qui per voi lettori qbisti la vera ricetta tratta da La cucina cinese rivoluzionaria (non garantisco sull'originale, ho letto solo la traduzione in italiano). 

Ingredienti: Pancetta di maiale di Ningxian - Vino di Shaixing - olio di arachidi - zucchero -scalogno -zenzero fresco -anice stellato -peperoncino -cannella -corteccia di cassia- salsa di soia. 

Preparazione 

Tuffare la pancetta in acqua bollente per tre minuti e quindi tagliarla a piccoli pezzi. 

Caramellare lo zucchero nell'olio bollente dentro l'wok. Aggiungere quindi la pancetta e svaporarla nel vino. 

Coprire la carne di acqua e aggiungere le spezie. Lasciare sobbollire per almeno 40 minuti. A fine cottura alzare la fiamma per ridurre la salsa.

Condire con soia e zucchero e guarnire con lo scalogno. 

  • Creato il .
  • Ultimo aggiornamento il .
Privacy Policy

Altre notizie

Baglio Oneto di Marsala In vacanza nei luoghi de I Leoni di Sicilia Un racconto che emoziona, e che narra, prendendo spunto da vicende personali e realmente accadute, la Storia della Sicilia e...

Vai all'articolo