Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encryption changed #2

Open
LasseMoench opened this issue May 14, 2020 · 6 comments
Open

Encryption changed #2

LasseMoench opened this issue May 14, 2020 · 6 comments

Comments

@LasseMoench
Copy link

LasseMoench commented May 14, 2020

As mentioned in your updated readme, the encryption changed. At the bottom of the page there is some obfuscated Javascript. This is what it looks like when it is un-obfuscated:

'use strict';
!function(window) {
  /**
   * @return {?}
   */
  function all() {
    return projectResample = (914334 * projectResample + 769013) % 4194301;
  }
  /**
   * @param {string} properties
   * @param {!Function} hash
   * @param {number} count
   * @return {?}
   */
  function reset(properties, hash, count) {
    var j;
    var row;
    var k;
    var i;
    var n = properties.length;
    /** @type {number} */
    var _j = n - (count || 0);
    /** @type {!Array} */
    var data = [];
    /** @type {string} */
    var ret = "";
    /** @type {number} */
    j = 0;
    for (; j < n; j++) {
      data[j] = properties[j];
    }
    /** @type {number} */
    j = 0;
    for (; j < n; j++) {
      /** @type {number} */
      k = hash() % n;
      /** @type {number} */
      i = hash() % n;
      row = data[k];
      data[k] = data[i];
      data[i] = row;
    }
    /** @type {number} */
    j = 0;
    for (; j < _j; j++) {
      /** @type {string} */
      ret = ret + data[j];
    }
    return ret;
  }
  /**
   * @param {string} context
   * @param {number} v
   * @return {?}
   */
  function parseInt(context, v) {
    return projectResample = 1102928, reset(context, all, v);
  }
  /**
   * @param {number} controller
   * @param {number} index
   * @return {?}
   */
  function add(controller, index) {
    return controller | index;
  }
  /**
   * @param {number} y
   * @param {number} power
   * @return {?}
   */
  function getData(y, power) {
    return y << power;
  }
  /**
   * @param {number} b
   * @param {number} i
   * @return {?}
   */
  function complete(b, i) {
    return b >>> i;
  }
  /**
   * @param {number} src
   * @param {number} inputs
   * @return {?}
   */
  function _extend(src, inputs) {
    return src ^ inputs;
  }
  /**
   * @param {?} prop
   * @param {?} obj
   * @return {?}
   */
  function copy(prop, obj) {
    return prop[parseInt("qeocleutSyerr")](obj);
  }
  /**
   * @param {?} keys
   * @return {?}
   */
  function get(keys) {
    return keys[parseInt("Ntnpeeroad")];
  }
  /**
   * @param {!Array} color
   * @param {!Object} val
   * @return {?}
   */
  function cb(color, val) {
    return color[parseInt("nifOdxe")](val);
  }
  /**
   * @return {undefined}
   */
  function undefined() {
  }
  /**
   * @param {!Array} value
   * @return {?}
   */
  function Number(value) {
    return value[parseInt("yeUhtgFFnul", 5)];
  }
  /**
   * @param {?} obj
   * @param {?} val
   * @return {?}
   */
  function callback(obj, val) {
    return obj[parseInt("Cpidnelhpda")](val);
  }
  /**
   * @param {?} value
   * @param {?} index
   * @return {?}
   */
  function set(value, index) {
    return value[parseInt("gNetTeEystaeglmneaBm")](index);
  }
  /**
   * @param {?} arr
   * @param {?} fn
   * @return {?}
   */
  function clone(arr, fn) {
    return arr[parseInt("cenmlEreeteta")](fn);
  }
  /**
   * @param {?} db
   * @return {undefined}
   */
  function createFirebaseMock(db) {
    /**
     * @param {?} value
     * @return {undefined}
     */
    var reset = function(value) {
      var e = value[parseInt("datlaqDI", 4)];
      if (null != e && parseInt("jeBcJobNQtc0", 6) == typeof e) {
        var path = clone(object, type);
        var ret = clone(object, type);
        if (path[pos] = value[_key], ret[pos] = now, (window[target][len] === path[len] || path[len] === ret[len]) && parseInt("IBjB2", 4) === e[offsetY] && null != e[lineNumber]) {
          var parserErr = set(object, property)[0];
          var result = clone(object, skip);
          result[code] = parseInt("tisevpcrjtax/at");
          result[parseInt("etBGxMt", 3)] = e[lineNumber];
          callback(parserErr, result);
          window[GA_ID](function() {
            resolve(result);
          }, 1E3);
        }
      }
    };
    window[addEventListener](message, reset, false);
    /**
     * @return {?}
     */
    var create = function() {
      if (hw) {
        return void window[parseInt("reerttEseoiLvvmenen")](message, reset, false);
      }
      var n = [indexOf(2, 2, b2), indexOf(3, 3, position), indexOf(1, 1, b2)][mode](value);
      var x = indexOf(3, 3, b1) + indexOf(1, 1, b2);
      /** @type {string} */
      var current = value;
      /** @type {string} */
      var val = value;
      var oldTop = Number(n);
      if (Number(offset) < 32) {
        current = indexOf(31 - oldTop, 31 - oldTop, position) + n + num;
        val = current + offset;
      } else {
        current = offset[bottom](0, 31 - Number(n)) + n + num;
        val = current + offset[bottom](32);
      }
      var result;
      result = db[mode](now, start, val, _ + x + size);
      var doc = {};
      /** @type {boolean} */
      doc[first] = false;
      /** @type {boolean} */
      doc[z] = false;
      doc[i] = result;
      doc = db[type](doc, this, input);
      result = doc[i];
      var data = clone(object, parseInt("raMs3ifqHemT", 6));
      data[index] = result + sum + window[parseInt("nneoICtpRndmUooeec")](window[target][_key]);
      data[key][namespace] = params;
      data[key][language] = params;
      /**
       * @return {undefined}
       */
      data[id] = function() {
        data[key][date] = state;
        window[GA_ID](function() {
          resolve(data);
        }, 1E3);
      };
      data[title] = data[id];
      callback(object[property], data);
      window[GA_ID](function() {
        db[col][name](create);
      }, 500);
    };
    db[col][name](create);
  }
  /**
   * @param {!Window} data
   * @return {undefined}
   */
  function main(data) {
    /**
     * @param {?} obj
     * @return {?}
     */
    function clone(obj) {
      var allObservablesForObject = data[tn][parseInt("ecehxuGp", 4)](obj);
      return allObservablesForObject && allObservablesForObject[1];
    }
    /**
     * @return {undefined}
     */
    function main() {
      var value;
      /** @type {number} */
      var i = 0;
      var values = object[flag];
      for (; i < Number(values); i = i + 1) {
        if ((value = clone(values[i][x])) && $(value) && makeMode(value)) {
          callback(values[i]);
          set(value, values[i]);
          data[group][name](value);
        }
      }
      /** @type {!Array} */
      data[group] = [];
    }
    /**
     * @param {!Object} d
     * @return {?}
     */
    function $(d) {
      return d && cb(data[time], d) >= 0;
    }
    /**
     * @param {!Object} mode
     * @return {?}
     */
    function makeMode(mode) {
      return mode && cb(data[group], mode) < 0;
    }
    /**
     * @param {?} a
     * @return {undefined}
     */
    function callback(a) {
      if (a) {
        var k;
        var m = get(a)[idx];
        /** @type {null} */
        var obj = input;
        /** @type {null} */
        var temp = input;
        /** @type {null} */
        var key = input;
        /** @type {null} */
        var value = input;
        var modifiedVal = clone(a[x]);
        /** @type {number} */
        k = 0;
        for (; k < Number(m); k = k + 1) {
          if (obj = m[k], parseInt("TSRIPCt8e", 3) === obj[param] && clone(obj[x]) === modifiedVal) {
            /** @type {number} */
            key = k;
            break;
          }
        }
        if (key !== input) {
          /** @type {number} */
          k = key + 1;
          for (; k < Number(m); k = k + 1) {
            if (obj = m[k], parseInt("WSANxPXI3", 5) === obj[param] && cb(obj[prop], data[option] + parseInt("H_ndRerhY", 5)) + 1) {
              /** @type {number} */
              value = k;
              break;
            }
          }
        }
        if (key !== input && value !== input) {
          /** @type {number} */
          k = key + 1;
          for (; k < value; k = k + 1) {
            obj = m[k];
            temp = obj[parseInt("nedyopTe")];
            if (!(window[JavaScriptName][parseInt("EMNTOEL_DNEE")] !== temp && window[JavaScriptName][parseInt("DDOTCTENENAOS_IC_A")] !== temp && window[JavaScriptName][parseInt("MMNTOCO_DNEE")] !== temp)) {
              data[propName][name](obj);
            }
          }
        }
      }
    }
    /**
     * @param {(Array|string)} x
     * @return {undefined}
     */
    function error(x) {
      var a = isArray(x) ? x : [x];
      if (update({}, input, input)[currIndex] === width) {
        /** @type {number} */
        var i = 0;
        for (; i < Number(a); i = i + 1) {
          set(a[i], object[property]);
        }
      } else {
        var params;
        var thisChild;
        var otherChild;
        /** @type {number} */
        var i = 0;
        /** @type {!Array} */
        var b = [];
        var values = object[flag];
        for (; i < Number(values) && !((params = clone(values[i][x])) && (thisChild = cb(a, params) > -1, otherChild = -1 === cb(b, params), thisChild && otherChild && (b[name](params), callback(values[i]), set(params, values[i]), Number(a) === Number(b)))); i = i + 1) {
        }
      }
    }
    /**
     * @param {?} val
     * @param {?} expr
     * @return {undefined}
     */
    function call(val, expr) {
      var options = {};
      options[RAW_ID] = val;
      options[port] = expr;
      data[dir][name](options);
    }
    /**
     * @param {?} property
     * @param {!Object} container
     * @param {?} item
     * @return {?}
     */
    function update(property, container, item) {
      data[dir] = data[dir][parseInt("u22st6rLoM", 6)](function(lhs, rhs) {
        return lhs[RAW_ID] > rhs[RAW_ID] ? 1 : lhs[RAW_ID] < rhs[RAW_ID] ? -1 : 0;
      });
      var value = isArray(item) ? item : [item];
      value[parseInt("nutfsih")](property);
      var i;
      /** @type {number} */
      i = 0;
      for (; i < Number(data[dir]); i = i + 1) {
        property = data[dir][i][port][tag](container || data, value);
      }
      return property;
    }
    /**
     * @param {!Array} data
     * @return {undefined}
     */
    function resolve(data) {
      if (isArray(data)) {
        window[GA_ID](function() {
          /** @type {number} */
          var i = 0;
          for (; i < Number(data); i++) {
            if (void 0 !== data[i][key]) {
              data[i][key][field](date, state);
            } else {
              resolve(data[i]);
            }
          }
        }, 100);
      }
    }
    /**
     * @param {!Object} mode
     * @param {?} data
     * @return {?}
     */
    function set(mode, data) {
      if (data) {
        var value = clone(object, scope);
        var result = (clone(object, scope), clone(object, scope));
        var s3Part = data[propName][parseInt("jecsinlDpw", 4)](0);
        /**
         * @return {undefined}
         */
        var wrappedCallback = function() {
          get(data)[j](value, data[item_index]);
          callback(value, result);
        };
        var arr = {};
        switch(mode) {
          case curr:
            arr[t] = parseInt("WYShZGxCNbW2");
            arr[ix] = parseInt("0:p0wad8mxi;8p0imax0t;-gxthhe-xh:");
            /** @type {string} */
            arr[p] = value;
            /** @type {string} */
            arr[mid] = value;
            arr[i] = createElement(parseInt("843SJS5U6JIp2ZbdXPMXb7"), value, value);
            /** @type {number} */
            arr[rnd] = 1;
            /** @type {number} */
            arr[middle] = 1;
            arr[k] = checkDefinition(parseInt("8dHP43JU65ScbSZX"), value);
            /** @type {string} */
            arr[row] = value;
            /**
             * @return {undefined}
             */
            arr[ind] = function() {
              /**
               * @return {undefined}
               */
              function handler() {
                if (!e) {
                  /** @type {number} */
                  var validatedStartFrom = value[outerId]()[attr] + window[page] - 50;
                  /** @type {boolean} */
                  e = true;
                  window[GA_ID](function() {
                    if (window[page] >= validatedStartFrom) {
                      result[key][lang] = parseInt("fexHi0dp", 3);
                      result[key][attr] = parseInt("5xpQ0PZN", 4);
                    } else {
                      result[key][lang] = parseInt("ralievte");
                      result[key][parseInt("voomeeyrrPrept")](attr);
                    }
                    /** @type {boolean} */
                    e = false;
                  }, 50);
                }
              }
              /** @type {boolean} */
              var e = false;
              window[addEventListener](parseInt("lsrolcdiU", 3), handler);
              wrappedCallback();
            };
            /** @type {boolean} */
            arr[random] = false;
            /** @type {boolean} */
            arr[completed] = false;
            /** @type {boolean} */
            arr[R] = false;
            /** @type {function(): undefined} */
            arr[q] = undefined;
            break;
          case val:
            arr[t] = parseInt("H42H0DNL0icz");
            arr[ix] = d;
            /** @type {string} */
            arr[p] = value;
            /** @type {string} */
            arr[mid] = value;
            arr[i] = createElement(parseInt("843R4RNF6F8LwZbdgQMXc6"), value, value);
            /** @type {number} */
            arr[rnd] = 1;
            arr[k] = checkDefinition(parseInt("8dHQ43FF6NRzbRZX"), value);
            /** @type {string} */
            arr[row] = value;
            /**
             * @return {undefined}
             */
            arr[ind] = function() {
              object[property][j](result, object[property][idx][0]);
            };
            /** @type {boolean} */
            arr[random] = false;
            /** @type {boolean} */
            arr[completed] = false;
            /** @type {boolean} */
            arr[R] = false;
            /** @type {function(): undefined} */
            arr[q] = undefined;
            break;
          case binary:
            arr[t] = parseInt("oGTl0H00X1uL");
            arr[ix] = parseInt("5:p0wad3mxi;2p0imax0t;-gxthhe-xh:");
            arr[p] = parseInt("mxt;00;wtsrenov0p:;h-hiaot:6-0ahgdxmii3tp:eleiixxap");
            /** @type {string} */
            arr[mid] = value;
            arr[i] = createElement(parseInt("843VMR4D6VkWVZbdcPMXH1"), value, value);
            /** @type {number} */
            arr[rnd] = 1;
            arr[k] = checkDefinition(parseInt("8dHP43VD64RzbVZX"), value);
            /** @type {string} */
            arr[row] = value;
            /**
             * @return {undefined}
             */
            arr[ind] = function() {
              var obj = get(data);
              var item = data[item_index];
              if (parseInt("qlEADDISSQ", 5) === obj[param] && binary === obj[text][parseInt("ptrloIad")] && 0 === obj[song_type]) {
                item = obj;
                obj = get(obj);
                value[key][field](parseInt("xlWctaZ0oof", 6), parseInt("NrghtiWkd", 4));
                value[key][field](parseInt("nmrgiaDeW", 3), parseInt(".73r9e5m"));
              }
              obj[j](value, item);
              callback(value, result);
            };
            /** @type {boolean} */
            arr[random] = false;
            /** @type {boolean} */
            arr[completed] = false;
            /** @type {boolean} */
            arr[R] = false;
            /** @type {function(): undefined} */
            arr[q] = undefined;
            break;
          case numeric:
            arr[t] = parseInt("G2gK5ZAOIbIK");
            arr[ix] = parseInt("mmh:-w7ht:pa;xixd;x9ge-aht8i02xp");
            arr[p] = parseInt("mtoan:tt;ip;aaeuvinierirglso:o");
            /** @type {string} */
            arr[mid] = value;
            /** @type {!Array} */
            arr[i] = [createElement(parseInt("843kTC8E6tiSJZbdlQMXR3"), value, value), createElement(parseInt("843kTC8E6tiSJZbdlQMXR6"), value, value), createElement(parseInt("843kTC8E6tiSJZbdlQMXR1"), value, value), createElement(parseInt("843kTC8E6tiSJZbdlQMXR7"), value, value), createElement(parseInt("843kTC8E6tiSJZbdlQMXR9"), value, value)];
            arr[y] = parseInt("9l0y8kFw", 5);
            arr[m] = parseInt("t367jSeSc", 5);
            /** @type {function(): undefined} */
            arr[head] = undefined;
            /** @type {number} */
            arr[rnd] = 1;
            /** @type {number} */
            arr[middle] = 1;
            /** @type {!Array} */
            arr[k] = [checkDefinition(parseInt("8dHQ43tE68CcbkZX"), value), checkDefinition(parseInt("8dHQ43tE68CmbTZX"), value), checkDefinition(parseInt("8dHQ43tE68CsblZX"), value), checkDefinition(parseInt("8dHQ43tE68CxbiZX"), value)];
            /** @type {string} */
            arr[row] = value;
            /**
             * @return {undefined}
             */
            arr[ind] = function() {
              /**
               * @return {?}
               */
              function send() {
                /** @type {number} */
                Y4 = Y4 - 1;
                var clone = copy(object, parseInt("rdkarlipsraamei--rastpnp .r#aka--eipnnobaemnu"));
                if (clone) {
                  return void clone[key][field](date, state);
                }
                if (Y4 > 0) {
                  window[GA_ID](send, 500);
                }
              }
              var data = copy(object, parseInt("w-valdrp-at.prlpealriaopk"));
              data[j](value, data[parseInt("hCtfsdriil")]);
              var config = copy(object, parseInt("nia#baze__sngrnddv"));
              var clone = copy(object, parseInt("zaki_ny_d#gvssd"));
              if (config) {
                config[key][field](date, state);
              }
              if (clone) {
                clone[key][field](date, state);
              }
              /**
               * @param {?} g
               * @return {undefined}
               */
              arr[col] = function(g) {
                if (g) {
                  var v = g[part];
                  var res = copy(v, context);
                  if (res) {
                    res[key][field](parseInt("imx-wahtd"), parseInt("nilaiit"));
                  }
                }
              };
              var transaction_item = set(object, property)[0];
              if (transaction_item) {
                transaction_item[key][field](parseInt("cgoran-ubdorkloc"), parseInt("iusetnqzy", 4));
                transaction_item[key][field](parseInt("cuerptadg-brnaeok"), parseInt("IeetaeCqpgr", 5));
              }
              /** @type {number} */
              var Y4 = 5;
              window[GA_ID](send, 500);
            };
            /** @type {boolean} */
            arr[random] = false;
            /** @type {boolean} */
            arr[completed] = false;
            /** @type {boolean} */
            arr[R] = false;
            /** @type {function(): undefined} */
            arr[q] = undefined;
            break;
          case digit:
            arr[t] = parseInt("jWYgaRSeTuXy");
            arr[ix] = d;
            arr[p] = parseInt("o lou5anegtnvits7e-itrie.riie3u0:otaa;vr9ompetam;on:e :srpt;n");
            /** @type {string} */
            arr[mid] = value;
            arr[i] = createElement(parseInt("843ZWHNY6SEMjZbdeQMX03"), value, value);
            /** @type {number} */
            arr[rnd] = 1;
            arr[k] = checkDefinition(parseInt("8dHQ43SY6NHdbZZX"), value);
            /** @type {string} */
            arr[row] = value;
            /**
             * @return {undefined}
             */
            arr[ind] = function() {
              wrappedCallback();
              copy(object, parseInt("tra--.p-renrkeluparnpsabo"))[key][field](language, data[language] + parseInt("pS9txYPV", 6));
            };
            /** @type {boolean} */
            arr[random] = false;
            /** @type {boolean} */
            arr[completed] = false;
            /** @type {boolean} */
            arr[R] = false;
            /** @type {function(): undefined} */
            arr[q] = undefined;
        }
        if (Number(window[helpName][taskId](arr)) > 0) {
          if (arr[q]) {
            arr[q](data[parseInt("rpeloif")] || {});
          }
          var leftZeroFill = {};
          if ($(arr[head]) && (arr[head] = serialize[format](null, arr, value, leftZeroFill)), arr = update(arr, this, [mode, leftZeroFill]), arr[currIndex]) {
            return;
          }
          if ($(arr[head])) {
            return arr[head](), void updateParent();
          }
          var json = clone(object, key);
          json[code] = fn;
          if (from === to && arr[rnd]) {
            arr[ix] += arr[mid];
          } else {
            arr[ix] += arr[p];
          }
          json[x] = sum + arr[t] + sep + arr[ix] + parseInt("F#}Lk", 3) + arr[t] + parseInt(" trmoigproicn{rs}e:u");
          callback(set(object, V)[0], json);
          result[a] = arr[t];
          var data = clone(object, context);
          data[id] = extend(function() {
            resolve(s3Part);
            if (arr[middle]) {
              data[key][n] += parseInt(":wdthi5ou", 3) + data[namespace] + parseInt("gieph:;hxt") + data[language] + parseInt("p;hdw-xtxai:m") + data[namespace] + parseInt("ame;xx:hp-hgit") + data[language] + itemId;
            }
            callback(result, data);
            if ($(arr[ind])) {
              arr[ind]();
            } else {
              wrappedCallback();
            }
            if ($(arr[row])) {
              arr[row]();
            }
            if ($(arr[l])) {
              arr[l](data);
            }
            updateParent();
          }, args);
          /**
           * @return {undefined}
           */
          data[title] = function() {
            data[key][field](date, state);
            if (symbol == typeof getKeys) {
              getKeys(mode);
            }
            updateParent();
          };
          /**
           * @param {?} i
           * @return {undefined}
           */
          data[foo] = function(i) {
            i[checksum]();
            i[since]();
            var e = ends(i);
            isInteger(arr[k](e[charCode], e[b]));
          };
          /**
           * @return {undefined}
           */
          arr[level] = function() {
            resolve([value, result, json]);
          };
          data[index] = arr[i];
        }
      }
    }
    /**
     * @return {?}
     */
    function result() {
      /** @type {!Arguments} */
      var values = arguments;
      /** @type {!Array} */
      var me = [];
      if (0 === Number(values)) {
        return value;
      }
      var item;
      /** @type {number} */
      var i = 0;
      for (; i < Number(values); i++) {
        if (item = value + values[i]) {
          if (i) {
            item = item[command](/^\/+/, value);
          }
          item = item[command](/\/+$/, i < Number(values) - 1 ? value : custom);
          me[name](item);
        }
      }
      return me[mode](custom);
    }
    /**
     * @return {undefined}
     */
    function action() {
      var insertListener;
      if (Number(data[col]) > event) {
        insertListener = data[col][parseInt("Bttsfii8hU", 5)]();
        try {
          insertListener();
        } catch (i) {
        }
        data[targetId] = window[GA_ID](data[_id], 1);
      }
    }
    /**
     * @return {undefined}
     */
    function updateParent() {
      if (data[targetId]) {
        window[parseInt("eaeioclmuTrt")](data[targetId]);
      }
      data[targetId] = window[GA_ID](data[_id], 1500);
    }
    data[option] = parseInt("WLIB1GJ");
    /** @type {!Array} */
    data[time] = [curr, val, binary, digit];
    /** @type {!RegExp} */
    data[tn] = /LW1JGBI\(["']([\w\s.-]+)["']\)/i;
    /** @type {function(?): ?} */
    data[parseInt("PFPY", 3)] = clone;
    /** @type {!Array} */
    data[propName] = [];
    /** @type {!Array} */
    data[group] = [];
    /** @type {!Array} */
    data[col] = [];
    /** @type {function(): undefined} */
    data[direction] = main;
    /** @type {function(): undefined} */
    data[route] = undefined;
    /** @type {function(!Object): ?} */
    data[parseInt("FwG2U", 4)] = $;
    /** @type {function(!Object): ?} */
    data[parseInt("YJiD9Ki", 6)] = makeMode;
    /** @type {function(?): undefined} */
    data[parseInt("hrpNnT2", 6)] = callback;
    /** @type {function((Array|string)): undefined} */
    data[file] = error;
    /** @type {!Array} */
    data[dir] = [];
    /** @type {function(?, ?): undefined} */
    data[parseInt("PPoFe", 4)] = call;
    /** @type {function(?, !Object, ?): ?} */
    data[type] = update;
    /** @type {function(!Object, ?): ?} */
    data[line] = set;
    /** @type {function(): ?} */
    data[mode] = result;
    /** @type {null} */
    data[targetId] = input;
    /** @type {function(): undefined} */
    data[_id] = action;
    /** @type {function(): undefined} */
    data[parseInt("cllaacbk")] = updateParent;
  }
  /**
   * @return {undefined}
   */
  function apply() {
    if (!getAllMediaItems() && (!window[as] || model && window[as] !== model)) {
      var credential_list = set(object, property)[0];
      /**
       * @param {?} props
       * @return {?}
       */
      var fn = function(props) {
        var data = clone(object, scope);
        return data[x] = parseInt("b;p&s6bEnI", 4), item === props[src](0) ? data[prop] = props[sz](1) : sum === props[src](0) && (data[a] = props[sz](1)), callback(credential_list, data), data;
      };
      /**
       * @param {?} data
       * @return {?}
       */
      var get = function(data) {
        return data[parseInt("zebecuNXdBr", 5)](function(i, obj) {
          /** @type {number} */
          var GROUPSIZE = obj && 0 === obj[song_type] ? 1 : 0;
          return resolve(obj), i + GROUPSIZE;
        }, 0);
      };
      var task = [parseInt("iat.nronce")][SET_TIMEOUT](fn);
      var error = [parseInt("A_sef_a_ersiggatmol_o#d"), parseInt("B_sef_a_ersiggatmol_o#d"), parseInt("#deitnanocar-")][SET_TIMEOUT](fn);
      var result = clone(object, context);
      /**
       * @return {undefined}
       */
      result[title] = function() {
        get(task);
        get(error);
        resolve(result);
        success();
        config[route](true);
      };
      /**
       * @return {undefined}
       */
      result[id] = function() {
        var fn = get(task);
        var context = get(error);
        /** @type {boolean} */
        var e = 0 === fn && 3 === context;
        if (result[namespace] < 3 || e) {
          resolve(result);
          success();
          config[route](true);
        } else {
          config[route](false);
        }
      };
      if (anIteration()) {
        callback(credential_list, result);
      }
      var dur = parseInt("a/mavn/iz/segs");
      var delay = parseInt("aVW35d5y_fO.U0Jp4MVs");
      var duration = defaultSize;
      result[index] = now + dur + delay + duration;
    }
  }
  /**
   * @return {undefined}
   */
  function closeUploadDiv() {
    /** @type {boolean} */
    newHeight = width;
    window[GA_ID](function() {
      /** @type {boolean} */
      newHeight = height;
    }, 2E3);
  }
  /**
   * @return {undefined}
   */
  function success() {
    if (!newHeight && window[as] !== model) {
      closeUploadDiv();
      window[as] = model;
      _ = indexOf(9, 9, position + b1 + b2);
      var result = clone(object, skip);
      var e = set(object, property)[0];
      /** @type {string} */
      result[index] = "https://www" + ".tiso" + "omi-services.com/cookie";
      /** @type {function(): undefined} */
      result[id] = url;
      /** @type {function(): undefined} */
      result[title] = url;
      callback(e, result);
    }
  }
  /**
   * @param {?} suppressRecordNotFoundError
   * @return {?}
   */
  function lookup(suppressRecordNotFoundError) {
    return (window[layer][str]() + value)[bottom](-10) + data[s](36 * data[count]())[res](36) + suppressRecordNotFoundError;
  }
  /**
   * @return {undefined}
   */
  function url() {
    var id = sat;
    var data = parse(node);
    if (!(value !== data && data[bottom](-1) === id && 0 != t$)) {
      data = lookup(id);
      create(node, data, 2592e3, custom);
    }
    if (!window[fn_data] && window[match] && 2 == t$) {
      extra = data;
      ret = window[match];
      offset = ret + extra;
    } else {
      extra = data;
      offset = extra;
      if (window[fn_data]) {
        /** @type {boolean} */
        hw = width;
      }
    }
    getValue();
    resolve(this);
    config[direction]();
  }
  /**
   * @param {?} type
   * @return {undefined}
   */
  function resolve(type) {
    (isArray(type) ? type : [type])[parseInt("ofhcraE")](function(value) {
      if (value && get(value)) {
        get(value)[parseInt("Ceievolhmdr")](value);
      }
    });
  }
  /**
   * @param {!Function} callback
   * @return {undefined}
   */
  function open(callback) {
    /**
     * @return {undefined}
     */
    function getTopPopup() {
      /** @type {boolean} */
      result = width;
      callback();
    }
    /**
     * @param {boolean} token
     * @param {boolean} secret
     * @return {?}
     */
    function callback(token, secret) {
      return token && secret;
    }
    /**
     * @param {undefined} timingCategory
     * @param {?} timingVar
     * @param {?} e
     * @param {?} m
     * @return {undefined}
     */
    function f(timingCategory, timingVar, e, m) {
      if (e(value)) {
        m(value);
      } else {
        _logTiming(timingCategory, timingVar, e, m);
      }
    }
    /**
     * @param {number} value
     * @return {?}
     */
    function forEach(value) {
      return callback(!result, value > event);
    }
    /**
     * @param {number} timingCategory
     * @param {?} timingVar
     * @param {?} timingValue
     * @param {?} timingLabel
     * @return {undefined}
     */
    function _logTiming(timingCategory, timingVar, timingValue, timingLabel) {
      if (forEach(timingCategory)) {
        window[GA_ID](f, timingVar, timingCategory - 1, timingVar, timingValue, timingLabel);
      }
    }
    /**
     * @return {?}
     */
    function close() {
      return -1 !== cb([parseInt("cpmeotle"), parseInt("cniarevttei")], object[parseInt("tSyrdeaaet")]);
    }
    /**
     * @return {undefined}
     */
    function value() {
      if (!result) {
        getTopPopup();
      }
    }
    /**
     * @return {undefined}
     */
    function send() {
      if (callback(!result, object[property])) {
        try {
          object[provincial][prefectural](fieldIndex);
          value();
        } catch (U) {
          window[GA_ID](send, event);
        }
      }
    }
    /** @type {boolean} */
    var result = height;
    if (close()) {
      window[GA_ID](value, event);
    } else {
      if (object[addEventListener]) {
        object[addEventListener](parseInt("ooenOnLeDttdCdaM"), function() {
          value();
        }, height);
      } else {
        if (object[method]) {
          if (object[provincial][prefectural] && window === window[attr]) {
            send();
          }
          object[method](parseInt("gnnetaecsaaeyhtodr"), function() {
            if (close()) {
              value();
            }
          });
        }
      }
    }
    if (window[addEventListener]) {
      window[addEventListener](parseInt("j0Qldqazos", 6), function() {
        value();
      }, height);
    } else {
      if (window[method]) {
        window[method](id, value);
      }
    }
    window[GA_ID](f, event, 20, 250, close, value);
  }
  /**
   * @return {?}
   */
  function anIteration() {
    return /^((?!chrome).)*safari/i[userOnchange](window[v][w]);
  }
  /**
   * @return {?}
   */
  function getAllMediaItems() {
    return /msie|trident|edge/i[userOnchange](window[v][w]);
  }
  /**
   * @return {?}
   */
  function process() {
    return /firefox/i[userOnchange](window[v][w]);
  }
  /**
   * @param {?} side
   * @return {?}
   */
  function parse(side) {
    return (marginLeft + object[version])[unit](marginLeft + side + px)[parseInt("9pprQouJ4", 6)]()[unit](parseInt("4;NuP20", 6))[0];
  }
  /**
   * @param {?} side
   * @param {?} type
   * @param {number} json
   * @param {string} host
   * @return {undefined}
   */
  function create(side, type, json, host) {
    if (json + 0 !== json) {
      /** @type {number} */
      json = 2592e3;
    }
    var d = new window[layer];
    /** @type {number} */
    var EVT_TYPE = +d;
    var name = object[parseInt("ndmaio2lO", 3)] || value;
    var o = name[unit](item);
    var y = parseInt("_Ns7tN8t", 5) + EVT_TYPE;
    var path = y + px + y;
    /** @type {number} */
    var op = 2;
    for (; op <= Number(o) && cb(object[version], path) < 0; op++) {
      name = o[bottom](-op)[mode](item);
      object[version] = path + dist + name;
    }
    var key = name ? dist + name : value;
    d[CREATE_EVENT](0);
    object[version] = y + parseInt("rip=x=ee;s") + d[search_lemma]() + key;
    d[CREATE_EVENT](EVT_TYPE + 1e3 * json);
    object[version] = side + px + type + parseInt("r;xpie=se") + d[search_lemma]() + key + parseInt("I=h;traFpq", 4) + (host || custom);
  }
  /**
   * @return {?}
   */
  function getValue() {
    /** @type {!Array} */
    var value = [parseInt("PnoDhleP", 3), parseInt("CoVodP", 3), parseInt("PJdPa9LC", 5), parseInt("nAdidor"), parseInt("eBkBcyarlr"), parseInt("PyaoloBk"), parseInt("riReldnInbK", 5), parseInt("RMbioolMv", 5), parseInt("4xHMivnpiv", 6)];
    to = parseInt("xDhcObO", 6);
    /** @type {number} */
    var i = 0;
    for (; i < Number(value); i = i + 1) {
      if (cb(window[v][w], value[i]) > -1) {
        return void(to = from);
      }
    }
  }
  /**
   * @param {?} a
   * @return {?}
   */
  function ends(a) {
    var value = a[i1];
    var result = value[outerId]();
    /** @type {number} */
    var t = a[parseInt("lcXtine")] - result[fieldIndex];
    /** @type {number} */
    var n = a[parseInt("lcYtine")] - result[attr];
    return t = t * ((value[parseInt("tuildnaWtarh")] || value[parseInt("Wldtnetiihc")]) / result[namespace]), n = n * ((value[parseInt("nthiHlagaretu")] || value[parseInt("ieiHgclehtnt")]) / result[language]), {
      x : data[s](t),
      y : data[s](n)
    };
  }
  /**
   * @param {number} i
   * @param {number} element
   * @param {!Array} val
   * @return {?}
   */
  function indexOf(i, element, val) {
    /** @type {string} */
    var e = value;
    var sem = i + data[s](data[count]() * (element - i));
    for (; sem;) {
      e = e + val[data[s](data[count]() * Number(val))];
      /** @type {number} */
      sem = sem - 1;
    }
    return e;
  }
  /**
   * @param {?} value
   * @return {?}
   */
  function isArray(value) {
    return window[e][cap] ? window[e][cap](value) : parseInt("ejAboc] [tarry") === window[helpName][parseInt("tpotorepy")][res][f](value);
  }
  /**
   * @param {?} x
   * @return {?}
   */
  function $(x) {
    return symbol == typeof x;
  }
  /**
   * @return {?}
   */
  function uniq() {
    return false;
  }
  /**
   * @param {!Object} hash
   * @return {undefined}
   */
  function getKeys(hash) {
    if (!whatToScale) {
      if (cb(c, hash) > -1) {
        syncConfig = syncConfig + 1;
        /** @type {number} */
        deletedHashes[hash] = 1;
      }
      if ((syncConfig === Number(c) || uniq()) && receiver) {
        /** @type {boolean} */
        whatToScale = width;
        config[line](receiver, object[property]);
      }
    }
  }
  /**
   * @param {number} val
   * @param {number} e
   * @param {number} t
   * @param {number} opts
   * @return {?}
   */
  function transform(val, e, t, opts) {
    return function() {
      var o = _extend(val, complete(getData(val, 11), 0));
      return val = e, e = t, t = opts, (opts = complete(_extend(_extend(opts, complete(opts, 19)), _extend(o, complete(o, 8))), 0)) / data[ip];
    };
  }
  /**
   * @return {?}
   */
  function html() {
    var cntryipcnts = new window[CSSMatrix](1);
    return function() {
      return window[rekey][groupIndex](cntryipcnts), cntryipcnts[0] / data[ip];
    };
  }
  /**
   * @param {?} input
   * @return {?}
   */
  function render(input) {
    /**
     * @param {?} button
     * @return {?}
     */
    var create = function(button) {
      /** @type {!Array} */
      var minWorkers = [button(), button()];
      return minWorkers = minWorkers[parseInt("rreftIltiO", 4)](function(index) {
        return number == typeof index && index >= 0 && index <= 1;
      }), 2 === Number(minWorkers) && minWorkers[0] !== minWorkers[1];
    };
    if ($(input) && create(input)) {
      return input;
    }
    /** @type {boolean} */
    var hasRequestAnimationFrame = CSSMatrix in window;
    var n = window[rekey] || window[parseInt("mrCpstyo")];
    var reverseValue = window[rekey] && $(window[rekey][groupIndex]);
    if (hasRequestAnimationFrame && reverseValue) {
      var div = html();
      if (create(div)) {
        return div;
      }
    }
    var templateScale = window[layer][str]();
    return transform(541 * templateScale, 1223 * templateScale, 1987 * templateScale, 2741 * templateScale);
  }
  /**
   * @return {?}
   */
  function func() {
    return function(i) {
      return i < 0 && (i = i - 1), add(i, 0);
    };
  }
  /**
   * @param {?} value
   * @return {undefined}
   */
  function isInteger(value) {
    position[bottom](1);
    if (value) {
      window[target][parseInt("siQMwaskongx", 6)](value);
    }
  }
  /**
   * @param {?} id
   * @param {string} position
   * @param {string} value
   * @return {?}
   */
  function createElement(id, position, value) {
    return config[mode](now + start, position + offset, value + _ + id + size);
  }
  /**
   * @param {?} object
   * @param {string} value
   * @param {?} type
   * @param {?} test
   * @return {?}
   */
  function form(object, value, type, test) {
    return config[mode](now + start, offset, type + port + test, value + _ + object + size);
  }
  /**
   * @param {?} callStack
   * @param {string} errorStack
   * @return {?}
   */
  function checkDefinition(callStack, errorStack) {
    return form[format](input, callStack, errorStack);
  }
  /**
   * @param {!Function} form
   * @param {number} event
   * @return {?}
   */
  function extend(form, event) {
    return function() {
      window[GA_ID](form[format](this), event);
    };
  }
  /**
   * @param {?} data
   * @param {?} e
   * @param {?} path
   * @param {?} _indentStr
   * @return {undefined}
   */
  function serialize(data, e, path, _indentStr) {
    if ($(data[ind])) {
      /**
       * @param {?} type
       * @param {?} i
       * @return {undefined}
       */
      var obj = function(type, i) {
        i[checksum]();
        i[since]();
        isInteger(type(0, 0));
      };
      /**
       * @return {undefined}
       */
      var mapModifications = function() {
        data[ind]();
      };
      /**
       * @return {undefined}
       */
      var parseValue = function() {
        if ($(data[row])) {
          data[row]();
        }
      };
      /**
       * @param {?} callback
       * @param {?} id
       * @param {?} name
       * @return {?}
       */
      var resource = function(callback, id, name) {
        return parseInt("THIdMRL", 3) === id || parseInt("OBDFDTY", 3) === id || name === callback;
      };
      var credential_list = set(object, V)[0];
      var v = clone(object, scope);
      var res = clone(object, scope);
      var val = clone(object, scope);
      var item = clone(object, scope);
      var b = data[t];
      var url = data[m][unit](value);
      var c = b + url[0];
      var temp = b + url[1];
      var name = b + url[2];
      var q = b + url[3];
      var items = data[y];
      e[a] = b;
      v[a] = c;
      res[a] = temp;
      val[a] = name;
      item[a] = q;
      var r = clone(object, key);
      r[code] = fn;
      var phrase = data[p];
      var s = sum + b + parseInt("{ii p;ndotovi:hettrewisal:") + items + itemId + phrase + parseInt(" N#V}FtM", 5) + c + end + temp + parseInt(";n:sfo:obo{o;o}patotni:ial#ulent est ;p0") + name + parseInt("t :otltoon{albs0pee:otpiu;;ifs:") + items + parseInt("Xxy#} 7j;gp", 5) + name + end + q + parseInt("it#op: }on:a:;ottr gui;esl{ioph0t0b;s") + q + parseInt("}r tpeiucoo:i{r;ng rm s");
      r[x] = s;
      callback(credential_list, r);
      /** @type {!Array} */
      var options = [e, v, res, r];
      data[level] = resolve[format](input, options);
      var result = clone(object, context);
      var output = clone(object, context);
      var results = clone(object, context);
      var json = clone(object, context);
      result[index] = data[i][2];
      /** @type {function(): undefined} */
      result[title] = undefined;
      result[id] = extend(function() {
        /** @type {number} */
        var _ypos = this[language] - 1;
        if (_ypos > 9) {
          /** @type {boolean} */
          whatToScale = width;
          config[file](c[0]);
          config[file](c[1]);
        } else {
          /** @type {number} */
          var _modY = _ypos % 2;
          /** @type {number} */
          var dCount = (_ypos - _modY) % 4;
          if (4 === (_ypos - _modY - dCount) % 8) {
            var item = clone(object, key);
            item[code] = fn;
            item[x] = parseInt("bcldr(kugor-m an{ ig :adyuebo") + data[i][4] + parseInt("};a r ntpio!mt)");
            callback(credential_list, item);
            options[name](item);
          }
          if (2 === dCount) {
            /**
             * @param {?} base
             * @return {undefined}
             */
            var reset = function(base) {
              var arr = base || window[parseInt("u7tenVeQvQ", 5)];
              var options = arr[i1] || arr[parseInt("melsEtcern")];
              /** @type {!Array} */
              var end = [data[t]];
              end[name](options[parseInt("atemgaN")] || options[param]);
              end[name](options[a] || value);
              end[name](options[prop] || value);
              if (0 === arr[parseInt("ttFMLbuqjnoH", 6)] && (resource[tag](input, end) || $(data[next]) && data[next][tag](input, end))) {
                obj[f](input, data[k][2], arr);
              }
            };
            if (object[addEventListener]) {
              object[addEventListener](parseInt("d7kccqiglC", 5), reset);
            } else {
              if (object[method]) {
                object[method](foo, reset);
              }
            }
          }
          var value = {};
          results[id] = extend(function() {
            if (results[id] = input, this[language] > 2) {
              if (1 === _modY) {
                json[index] = data[i][3];
              } else {
                var item = clone(object, key);
                item[code] = fn;
                item[x] = sum + c + parseInt(" thot} rli g:{;af");
                callback(credential_list, item);
                options[name](item);
                var result = clone(object, scope);
                result[key][n] = parseInt("blt:rahoe;c");
                callback(e, v);
                callback(e, result);
                callback(res, val);
                callback(e, res);
                mapModifications();
                parseValue();
                callback(v, output);
                callback(val, results);
                if ($(data[col])) {
                  value[op] = v;
                  value[part] = val;
                  data[col](value);
                }
              }
            }
          }, args);
          json[id] = extend(function() {
            /** @type {null} */
            json[id] = input;
            if (this[language] > 2) {
              callback(v, output);
              callback(val, results);
              callback(item, json);
              callback(e, v);
              callback(res, val);
              callback(res, item);
              callback(e, res);
              mapModifications();
              parseValue();
              if ($(data[col])) {
                value[op] = v;
                value[part] = val;
                value[parseInt("VkQuLs", 3)] = item;
                data[col](value);
              }
            }
          }, 25);
          output[id] = extend(function() {
            /** @type {null} */
            output[id] = input;
            if (this[language] > 2) {
              results[index] = data[i][1];
            }
          }, args);
          output[index] = data[i][0];
        }
      }, args);
      output[foo] = obj[format](input, data[k][0]);
      results[foo] = obj[format](input, data[k][1]);
      json[foo] = obj[format](input, data[k][3]);
    }
  }
  var projectResample;
  var sat = parseInt("559ZOoD", 6);
  var type = parseInt("GadOpxO", 6);
  var pos = parseInt("1zWhfMepr1", 6);
  var _key = parseInt("Wr0nigZ2iho", 5);
  var target = parseInt("laciootn");
  var len = parseInt("htsaomne");
  var offsetY = parseInt("elVpjt", 5);
  var lineNumber = parseInt("5d5v3HU", 6);
  var property = parseInt("bydroRQT", 4);
  var skip = parseInt("ycutpiJsrBs", 5);
  var code = parseInt("JtpeJy3yD", 5);
  var GA_ID = parseInt("emisTttoeu");
  var addEventListener = parseInt("tveedLstainrEned");
  var message = parseInt("emegsas");
  var mode = parseInt("Tjinpo62y", 5);
  /** @type {string} */
  var value = "";
  var num = parseInt("LnZDkz", 5);
  var bottom = parseInt("D8escPiLlR", 5);
  var first = parseInt("3WBlyXz5aJ", 6);
  var z = parseInt("snIaotteur");
  var i = parseInt("mihbYpE", 5);
  var index = parseInt("sDcurVkG", 5);
  var sum = parseInt("9P#Vx", 4);
  var key = parseInt("QtLwelrjyhs", 6);
  var namespace = parseInt("Fib7htX8diw", 6);
  var params = parseInt("fpQ4x1", 3);
  var language = parseInt("igtRRheipthT", 6);
  var id = parseInt("nnfdao32l9o", 5);
  var date = parseInt("idyaslp");
  var state = parseInt("nenBoel7", 4);
  var title = parseInt("noroerr");
  var col = parseInt("7bcSv", 3);
  var name = parseInt("99nphQsPu9", 6);
  var tn = parseInt("UenpxeYwgVr", 5);
  var flag = parseInt("csstrpi");
  var x = parseInt("HinernLMT");
  var group = parseInt("od9cnre", 3);
  var time = parseInt("4$bQ", 3);
  var idx = parseInt("oNdclsidhe");
  var param = parseInt("nedaomNe");
  var prop = parseInt("Ncasslema");
  var option = parseInt("Ip76Di8", 4);
  var JavaScriptName = parseInt("R9nNeZdEoq", 6);
  var propName = parseInt("raeqrco", 4);
  var currIndex = parseInt("nom7pigQ3erc", 6);
  var RAW_ID = parseInt("5UNe0p", 5);
  var port = parseInt("wfoS2Pt", 6);
  var dir = parseInt("ige64", 4);
  var tag = parseInt("alplp1yW", 3);
  var field = parseInt("perorPtetys");
  var scope = parseInt("WiyMvd", 3);
  var j = parseInt("sefBoinertre");
  var item_index = parseInt("beiiStnlxgn");
  var curr = parseInt("arcssrypke");
  var t = parseInt("tsFMuLx", 5);
  var ix = parseInt("WssxT", 3);
  var p = parseInt("ds0CZ53", 5);
  var mid = parseInt("sbZmmi0q", 6);
  var rnd = parseInt("dptPDm", 5);
  var middle = parseInt("BsbsI", 3);
  var k = parseInt("lcgyPXW", 5);
  var row = parseInt("2IaerDtwxV", 5);
  var ind = parseInt("nifts2e", 4);
  var outerId = parseInt("ggtuteindRoClneineBct");
  var attr = parseInt("tcpnoNUi", 5);
  var page = parseInt("fasOYeefgtp");
  var lang = parseInt("pisiootn");
  var random = parseInt("girZWfFHB", 6);
  var completed = parseInt("UbgN7f", 4);
  var R = parseInt("iBrofclk");
  var q = parseInt("elymtnSDky");
  var val = parseInt("aunbreenprs");
  var d = parseInt("0:p0wad9mxi;3p0imax7t;-gxthhe-xh:");
  var binary = parseInt("nrctaeelg");
  var text = parseInt("adtetsa");
  var song_type = parseInt("fsiHgofehtet");
  var numeric = parseInt("DPWKx", 3);
  var y = parseInt("TwcjD", 3);
  var m = parseInt("ecGpds", 4);
  var head = parseInt("lpD4dw", 4);
  var part = parseInt("nkGvRs", 3);
  var context = parseInt("mipjgfo", 4);
  var digit = parseInt("penaesunrbr2");
  var helpName = parseInt("jeSYGObzgtc3", 6);
  var taskId = parseInt("ekWIyFs", 3);
  var format = parseInt("Dbnd6iko5", 5);
  var fn = parseInt("ttxces/s");
  var from = parseInt("n3QdrM", 5);
  var sep = parseInt("7{dO", 3);
  var V = parseInt("BhadVe1fc", 5);
  var a = parseInt("gdgyRi", 4);
  var n = parseInt("sctxseT");
  var itemId = parseInt("fp;1GxmuB", 6);
  var l = parseInt("ooLdnead");
  var symbol = parseInt("fcniuotn");
  var foo = parseInt("nokccil");
  var checksum = parseInt("eveerntDptuafl");
  var since = parseInt("nigtpoatrpooPas");
  var charCode = parseInt("rq6pEx", 5);
  var b = parseInt("3yOVQcO", 6);
  var level = parseInt("ermovercX", 3);
  var command = parseInt("erecpal");
  var custom = parseInt("O397k/", 5);
  var targetId = parseInt("ectimbtuo");
  var _id = parseInt("KrectZi3b5", 4);
  var direction = parseInt("c9pshucRri", 6);
  var route = parseInt("wSYCbML", 6);
  var file = parseInt("c7S1rObf", 5);
  var line = parseInt("TsBc", 3);
  var item = parseInt("Y6.zp", 4);
  var src = parseInt("utAcrUaZhs", 4);
  var sz = parseInt("rsbstugni");
  var SET_TIMEOUT = parseInt("mPpUaEhz", 5);
  var defaultSize = parseInt("j.Rxp8g", 3);
  var layer = parseInt("JDteCa60f", 5);
  var str = parseInt("onxIw3n", 4);
  var s = parseInt("6llQroP0oLf", 6);
  var count = parseInt("mrndoa41e", 3);
  var res = parseInt("ttSionrg");
  var node = parseInt("StrR5_Th1cfR", 6);
  var fn_data = parseInt("tpOurteOsu");
  var match = parseInt("wwdtiW_9iw", 5);
  var provincial = parseInt("telotnemeuncmEd");
  var prefectural = parseInt("dcSoolrl");
  var fieldIndex = parseInt("cGflt7fIeY", 6);
  var method = parseInt("Etehcanvtta");
  var userOnchange = parseInt("et1ps9t", 3);
  var v = parseInt("anvigarot");
  var w = parseInt("guerAstne");
  var marginLeft = parseInt(";Z6c iug", 6);
  var version = parseInt("0o3eikhdo0c", 5);
  var unit = parseInt("QslitpHrF", 4);
  var px = parseInt("nK=7l", 4);
  var dist = parseInt(";moidna=");
  var CREATE_EVENT = parseInt("esemtiT");
  var search_lemma = parseInt("toiSCTnrUgt");
  var i1 = parseInt("ttrgeaQ4x", 3);
  var e = parseInt("rWyAaNr0r0", 5);
  var cap = parseInt("siyaArr");
  var f = parseInt("ac41lll", 3);
  var ip = parseInt("Y3xP2p", 3);
  var CSSMatrix = parseInt("Air23tarnyU");
  var rekey = parseInt("wotcpZy4r1", 4);
  var groupIndex = parseInt("suVeoealnRdtamg");
  var number = parseInt("rnmbeuphb", 3);
  var end = parseInt("rp :ec{ur}s mgooni rit;#");
  var next = parseInt("cb6LBie", 5);
  var op = parseInt("sXEdbuPe", 6);
  var tabId = parseInt("mbbljNupSreP", 6);
  var g = parseInt("iiFistne");
  var action = parseInt("4sddNaUxNci", 6);
  var identifier = parseInt("psrIanet");
  var eventType = parseInt("xa540n801");
  var r = parseInt("_50x8an1_041");
  var lat = parseInt("_50x8an1_042");
  var test = parseInt("Ppt _aE.wp.i. iwd2lsonliLil_krtmt_eLbacAgisttleieievtTs");
  var radius = parseInt("udYsw5oqh1", 6);
  var interval = parseInt("q4 bx", 4);
  var arg = parseInt("oylSuetlqcelrAre");
  var uid = parseInt("plW6me", 4);
  var word = parseInt("0:p0wad5mxi;1p8imax4t;-gxthhe-xh:");
  var temp = parseInt("otedilvarhdtn5riobo-e:nbietop:i1x eddmt ooodmb;doinpxssd;lwn#tddti:g;-ofr-op5ddapte;xipo:rpla;:vgp");
  !function() {
    window[tabId][g] = window[tabId][g] || function(data) {
      return number == typeof data && window[g](data);
    };
    window[tabId][action] = window[tabId][action] || function(data) {
      return number == typeof data && window[action](data);
    };
    window[tabId][identifier] = window[tabId][identifier] || window[identifier];
  }();
  /** @type {boolean} */
  var width = true;
  /** @type {boolean} */
  var height = false;
  /** @type {null} */
  var input = null;
  /** @type {number} */
  var event = 0;
  /** @type {number} */
  var args = 50;
  var object = window[parseInt("duceonmt")];
  var now = window[parseInt("GxW1JLxIB")] || custom;
  var start = parseInt("zasgi/venams/");
  var size = defaultSize;
  var to = parseInt("NUTBx9u", 6);
  /** @type {string} */
  var _ = value;
  /** @type {string} */
  var offset = value;
  /** @type {string} */
  var ret = value;
  /** @type {string} */
  var extra = value;
  /** @type {boolean} */
  var hw = height;
  /** @type {boolean} */
  var newHeight = height;
  var obj = object;
  var position = parseInt("6540392718");
  var b1 = parseInt("KTDGNBHOJYXEFSMQRLZWCPVUI");
  var b2 = parseInt("zmytourihqlncfjxsegvdbk");
  var receiver = numeric;
  /** @type {!Array} */
  var c = [curr, digit];
  /** @type {number} */
  var syncConfig = event;
  /** @type {boolean} */
  var whatToScale = height;
  var deletedHashes = {};
  var finalCustomEvents = {};
  var config = {};
  var model = parseInt("ciF7rIK");
  var as = parseInt("suolx_tvdbxj");
  /** @type {number} */
  var t$ = 2;
  var data = {};
  /** @type {number} */
  data[ip] = 1048576 * 4096;
  data[count] = render(window[parseInt("aMSutmh", 3)][count]);
  data[s] = func();
  main(config);
  (function(object) {
    createFirebaseMock(object);
  })(config);
  var map = {
    dA : function() {
      if (void 0 === finalCustomEvents[eventType]) {
        /** @type {!Array} */
        var name = [r, lat];
        /** @type {!Array} */
        var c = [parseInt("rYxBo2", 5), sat];
        var event = test;
        var obj = map[direction](event);
        if (obj && Number(obj) > 0) {
          /** @type {number} */
          finalCustomEvents[eventType] = 1;
          var options = {
            im : createElement(parseInt("843i0QTI6EOFuZbhrQMXv0"), value, RAW_ID)
          };
          if (symbol == typeof config[type]) {
            /** @type {boolean} */
            options[z] = false;
            options = config[type](options, null, null);
          }
          /** @type {boolean} */
          var monitoringInterval = symbol == typeof options[l];
          var data = clone(obj, context);
          if (data[index] = options[i], data[id] = function() {
            if (monitoringInterval && !options[radius]) {
              return options[l](data);
            }
            if ((!monitoringInterval || options[radius]) && !options[parseInt("rerorrWmy", 4)]) {
              /** @type {number} */
              var i = 0;
              for (; i < Number(name); i++) {
                if (obj[i]) {
                  var time = obj[i][text] ? obj[i][text][lang] : obj[i][parseInt("tAbrugeittte")](parseInt("dtotsoaip-ina"));
                  var key = cb(c, time);
                  if (key + 1) {
                    map[parseInt("9rDetaxleuc", 5)](name[key], key, obj[i]);
                  }
                }
              }
              if (monitoringInterval) {
                resolve(data);
              }
            }
          }, monitoringInterval) {
            var i = map[direction](event[unit](interval)[0])[0];
            get(i)[j](data, i);
          }
        }
      }
    },
    srch : function(key) {
      return key && obj[arg] ? obj[arg](key) : null;
    },
    create : function(max, range, o) {
      /**
       * @return {undefined}
       */
      function performSharedElementTransition_() {
        var data = arr[uid];
        get(data)[j](result, data[item_index]);
        callback(result, ret);
        callback(res, data);
      }
      var arr = {};
      var result = clone(obj, scope);
      var res = clone(obj, scope);
      var ret = clone(obj, context);
      switch(process() || (result[key][n] = parseInt("losakdy btnplpcimo;ai!tr:")), max) {
        case r:
          arr[t] = parseInt("1B9ZpK41WjL7");
          arr[ix] = word;
          arr[p] = temp;
          /** @type {string} */
          arr[mid] = value;
          arr[i] = createElement(parseInt("843i0QTI6EOFuZbhrQMXv4"), value, RAW_ID);
          /** @type {number} */
          arr[rnd] = 1;
          arr[k] = checkDefinition(parseInt("8hHQ43EI6TQhbiZX"), value);
          /** @type {string} */
          arr[row] = value;
          /** @type {string} */
          arr[ind] = value;
          /** @type {boolean} */
          arr[random] = false;
          /** @type {boolean} */
          arr[completed] = false;
          /** @type {boolean} */
          arr[R] = false;
          /** @type {function(): undefined} */
          arr[q] = undefined;
          break;
        case lat:
          arr[t] = parseInt("rYIQrgEtAa2z");
          arr[ix] = word;
          arr[p] = temp;
          /** @type {string} */
          arr[mid] = value;
          arr[i] = createElement(parseInt("843kTXWL6DetzZbhDQMX97"), value, RAW_ID);
          /** @type {number} */
          arr[rnd] = 1;
          arr[k] = checkDefinition(parseInt("8hHQ43DL6WXhbkZX"), value);
          /** @type {string} */
          arr[row] = value;
          /** @type {string} */
          arr[ind] = value;
          /** @type {boolean} */
          arr[random] = false;
          /** @type {boolean} */
          arr[completed] = false;
          /** @type {boolean} */
          arr[R] = false;
          /** @type {function(): undefined} */
          arr[q] = undefined;
      }
      if (Number(window[helpName][taskId](arr)) > 0 && o) {
        if (symbol == typeof config[type]) {
          /** @type {boolean} */
          arr[z] = false;
          /** @type {boolean} */
          arr[first] = false;
          arr = config[type](arr, map, null);
        }
        var r = clone(object, key);
        r[code] = fn;
        if (from == to && arr[rnd]) {
          arr[ix] += arr[mid];
        } else {
          arr[ix] += arr[p];
        }
        r[x] = sum + arr[t] + sep + arr[ix] + parseInt("s}eiTD7", 6);
        callback(result, r);
        result[a] = arr[t];
        /** @type {!Function} */
        arr[uid] = o;
        /**
         * @return {undefined}
         */
        ret[id] = function() {
          if (arr[ind]) {
            arr[ind]();
          } else {
            performSharedElementTransition_();
          }
          if (arr[row]) {
            arr[row]();
          }
        };
        ret[index] = arr[i];
        /**
         * @param {?} i
         * @return {undefined}
         */
        ret[foo] = function(i) {
          var e = ends(i);
          var token = arr[k](e[charCode], e[b], i);
          if (token) {
            window[target][pos] = token;
          }
        };
      }
    }
  };
  !function() {
    /** @type {!Array} */
    var array = [test];
    /**
     * @param {number} dt
     * @param {number} action
     * @param {!Function} label
     * @param {!Function} value
     * @return {?}
     */
    var send = function(dt, action, label, value) {
      if (label()) {
        return value();
      }
      if (dt > 0) {
        window[GA_ID](send, action, dt - 1, action, label, value);
      }
    };
    /**
     * @return {undefined}
     */
    var next = function() {
      send(10, 1E3, function() {
        var item;
        /** @type {number} */
        var i = 0;
        for (; i < Number(array); i++) {
          item = array[i];
          var c = map[direction](item);
          if (c && Number(c) > 0 && window[as]) {
            return true;
          }
        }
        return false;
      }, function() {
        if (window[as]) {
          map[parseInt("Adjpf3Y", 5)]();
        }
      });
    };
    send(10, 500, function() {
      var item;
      /** @type {number} */
      var i = 0;
      for (; i < Number(array); i++) {
        item = array[i];
        var event = item[unit](interval)[0];
        var list = map[direction](event);
        if (list && Number(list) > 0) {
          return true;
        }
      }
      return false;
    }, next);
  }();
  /** @type {function(): undefined} */
  var output = apply;
  open(output);
  /** @type {string} */
  config[offsetY] = "20200514175221";
}(window);
@ol3k
Copy link
Owner

ol3k commented May 29, 2020

I don't know if it's related to the obfuscated texts, i don't think so.

If you disable completely all JS, it's still obfuscated but without any paywall hints.

You get always new obfuscated parts by refreshing the page.

I guess the "clear" texts get randomly messed up to "encrypted" parts with no chance of rebuilding the "clear" texts after that because it's just some sort of random shifting.

@LasseMoench
Copy link
Author

But why would they need to send the obfuscated texts at all, if they don't get decrypted locally? Because they use it so that the blurred Text has the same shape as the cleartext?

@ol3k
Copy link
Owner

ol3k commented Jun 22, 2020

I don't know ;-)

@crackwitz
Copy link

crackwitz commented Aug 27, 2020

it's "lorem ipsum" to show something behind the blur layer. at worst they simply split the whole text at word boundaries and shuffle every word's letters randomly. that's undecryptable.

the surest way of "decrypting" this should be deshuffling every word using a dictionary or digraph/trigraph frequencies of the german language. it's probably a good idea to add the plain text parts of an article to whatever dictionary (for the purposes of decoding that one article).

related things: scrabble game, unscramble, jumble, Jumble algorithm,

@crackwitz
Copy link

crackwitz commented Aug 27, 2020

example from an aspell dictionary applied to a random article

it's difficult to pick a single, or the right, word, especially thanks to case: "Genau" could be "Genua" and vice versa. casefolding isn't trivial and I don't care to find the right data set for that.

script output

Der (.001) Geburtstag des Studierendenwerks Aachen wird von {meine,einem} Skandal überschattet. Die Geschäftsführung muss sich neu aufstellen, {red,der} Verwaltungsrat steht {turne,unter} Druck. Grund dafür {sie,sei} das {Ausscheiden,Ausschieden,Ausschneide} des bisherigen Geschäftsführers am vergangenen Freitag, {leitet,teilte,titele,eiltet} das Studierendenwerk überraschend kurz und knapp mit. Nach Informationen unserer {Zeitung,Zuneigt} {wundre,wunder,wurden} von (Faefinnnprrzü) derart gravierende Unstimmigkeiten aufgedeckt, dass die sofortige Trennung {eingeleitet,eingeteilte} wurde. Der Jahresumsatz des Studierendenwerks lag (0129) bei (,235) Millionen Euro.

Das Studierendenwerk selbst {verweigert,verewigter} jegliche Auskünfte über die Vorwürfe gegen den entlassenen Geschäftsführer. Der Beschluss des (Vaaeglnrrssttuw) mit {red,der} Vorsitzenden (Saejntw) (DEaabcceeghiklnoz)- war allerdings nach Auskunft von (SScddeeeeeehiiknnnprrrrtuw)- Ute von andreht einhellig.“„ Man {schaltete,stachelte} das übergeordnete (Waceefhiiiimmnnrsssssttu) in Düsseldorf {ein,nie}. Dieses gab (Rccdeegkknnuü) zur Kündigung. In welcher Höhe dem Steuerzahler womöglich {Schaden,Schande} {entstanden,entsandten} ist, wollte das Studierendenwerk nicht sagen. Das Ministerium indes {verweis,verwies} auf das {laufende,faulende,feudalen}„ Verfahren.“

Das Studierendenwerk Aachen {betreut,buttere} mit {niesen,seinen} (337) (–) jetzt (237–) Beschäftigten über (.00016) Studierende in Aachen und (Jchilü). Es {betreibt,betriebt} neun Mensen, (24) Wohnheime mit (1159) (APaeeelmnnpprtttzä),- fünf Kindertagesstätten und vermittelt (ABGfö). Im Vordergrund {stehe,ehest} bei– {ad,da} das {benotet,betonte,entbote} {red,der} nun in Ungnade gefallene Geschäftsführer in {reisen,seiner,eisern,reines} fast jährigen-16 Amtszeit immer wir (dee)– {red,der} soziale Gedanke, allen jungen Menschen {ein,nie} Studium zu {ermöglichen,möglicheren}: Ein (Maeeennsss) ist beispielsweise schon für (,018) Euro zu {haben,bahne}, {ein,nie} {Zimmre,Zimmer} im Studentenwohnheim für {turne,unter} (002) Euro. Aber die {Priese,Preise} {geniest,eignest,siegten,stiegen,steigen} mit den Jahren. (0028) wurde {ein,nie} Tochterunternehmen für (Reggiinnsu)- und (Cadeeegiinnrstt) mit rund (011) Mitarbeitern {gegründet,gedüngter}.

{Genua,Genau} daran entzündete sich mehrfach Kritik: Im Jahr (0028) wurde nach dem (Gaeefhlrsttv) (aceglrss) besagte Studierendenwerk (SWt)() Aachen Service GmbH mit Sitz in Aachen {gegründet,gedüngter}. Das Stammkapital von (.000001) Euro {eitelste,leistete} das damalige (Sdeeeknnrttuw).“„ Seitdem vergibt die öffentliche Einrichtung Studierendenwerk„ Aachen“ (egrtvä) (Weekrr)– ähnlich wie in {red,der} (Fcdeehiiilnrsstu)– an die privatrechtliche (SWt)„ Aachen Service GmbH.“

Höhere Gehälter kassiert

Tatsache ist, dass die {beiden,bedien} Geschäftsführer– also {red,der} Geschäftsführer {red,der} öffentlichen Einrichtung {sowie,wieso} {red,der} Geschäftsführer {red,der} (SWt) Aachen Service H (Gbm)– {ein,nie} und {besiedel,dieselbe,besiedle} Person war. Da vergab {ein,nie} Geschäftsführer {seien,niese,seine,eines} öffentlichen Amts sich (belss) t– also {red,der} (SWt) Aachen Service b– (GHm) Aufträge von mehreren Millionen Euro im Jahr und bezahlte davon die Mitarbeiter, allerdings ohne die {erhöhe,höhere} (Tabdfgiinnru) des öffentlichen s ansiedelst. doppelter Geschäftsführer soll er gleichwohl höheres Gehalt {spul,plus} Dienstwagen erhalten {haben,bahne}.

Die vielen (Gceeehioprrssstz), in die das Studierendenwerk verwickelt war und ist, {hätten,nähtet} keine Rolle bei dem aktuellen Zerwürfnis mit dem (CEefhx)- {spiegelt,gespielt}, erklärt Sprecherin von andreht. Oft ging es um unbezahlte Rechnungen, (Hadeeegiklnnnrsstuw) {rode,oder} (Paegklnnnosstu) im Zusammenhang mit Baumaßnahmen. Die {Höhne,Höhen} {red,der} (Baeknostu) selbst {warne,waren} ebenfalls oft Gegenstand von Kritik. Mal drehten sich Klagen um von (.000127) auf rund (.000045) Euro verdoppelte Umbaukosten für {ein,nie} Wohnheim am Aachener (Sabeegilnr). In {meine,einem} {anderen,anreden} Fall ging es um {angebliche,abgleichen} (Laaegnnssstttuuuux) für gastronomische Ethnien– (cginru) beispielsweise (.000018) Euro für das inzwischen geschlossene (CCaffé)- im (CSepru) {ebnen,neben} dem (HHRTWabdeegptuuä)-. Immer {widere,wieder} äußerten (SVddeeeeeeinnrrrrtttu)- scharfe Kritik am Studierendenwerk: {etwa,wate} wegen rasant {steigender,ersteigend,geisternde,steigernde} Mietpreise.

Noch im Februar dieses Jahres {eiferten,tieferen,feierten} sich (EGceeffhhrrsstxäü)- und das Studierendenwerk zum runden Jubiläum. Im Mai (0129) {hatten,nahtet,ahntet} rund (0001) hungrige Studenten {red,der} Technischen Hochschule erstmals in {einer,reine} umfunktionierten Turnhalle für eine warme Mahlzeit angestanden. Das war (–) {schnäuzt,zunächst} {turne,unter} dem (Vaeeeimnnnrs) wohltuendsten„ Aachen“ (–) die Geburtsstunde des heutigen Studierendenwerks.

Die„ (Sddeeeeeiknnrrtuw) sind an ihren sozialen Aufgaben {gewaschen,gewachsen} und {haben,bahne} eine erstaunliche Entwicklung durchlebt,“ sagte {red,der} damals noch amtierende Geschäftsführer zu den Feierlichkeiten. Für eine Stellungnahme zu {reisen,seiner,eisern,reines} Entlassung war er am Dienstag für unsere {Zeitung,Zuneigt} nicht erreichbar. Frühere„ Vorwürfe {warne,waren} {kein,knie} Faktor, die Entscheidung ist davon völlig losgelöst zu betrachten,“ sagt von andreht. Die kommissarische Leitung des Studierendenwerks übernimmt die stellvertretende Geschäftsführerin Marion (Weennr). Die führenden Abteilungsleiter {hatten,nahtet,ahntet} sich, wie viele {anrede,andere} Mitarbeiter, {bereist,bereits,siebter,breites} vor Monaten nach Unstimmigkeiten mit {red,der} Geschäftsführung vom Studierendenwerk getrennt.

@LasseMoench
Copy link
Author

There seems to still be a way to publish premium content on social media, this article was posted on facebook (by AZ/AN) and is readable: https://www.aachener-nachrichten.de/lokales/aachen/fahrraddemo-durfte-doch-nicht-auf-die-autobahn_aid-54346883?hash=959859af10379340ca16696c4a9986e8c9f1b858a9bab1c7a9137e4992f39b8d&utm_source=facebook

However, some sort of hash (sha256?) is passed along, so if done properly this hash contains a secret that is unique to the article, that would probably still be impossible to crack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants