text: !function () {
      var r = null;
      (function () {
          function X(e) {
              function j() {
                  try {
                      K.doScroll("left")
                  }
                  catch (e) {
                      O(j, 50);
                      return
                  }
                  w("poll")
              }
  
              function w(j) {
                  if (!(j.type == "readystatechange" && x.readyState != "complete") && ((j.type == "load" ? n : x)[z](i + j.type, w, !1), !m && (m = !0)))e.call(n, j.type || j)
              }
  
              var Y = x.addEventListener, m = !1, C = !0, t = Y ? "addEventListener" : "attachEvent", z = Y ? "removeEventListener" : "detachEvent", i = Y ? "" : "on";
              if (x.readyState == "complete")e.call(n, "lazy");
              else {
                  if (x.createEventObject && K.doScroll) {
                      try {
                          C = !n.frameElement
                      }
                      catch (A) {
                      }
                      C && j()
                  }
                  x[t](i + "DOMContentLoaded",
                      w, !1);
                  x[t](i + "readystatechange", w, !1);
                  n[t](i + "load", w, !1)
              }
          }
  
          function P() {
              S && X(function () {
                  var e = Q.length;
                  $(e ? function () {
                      for (var j = 0; j < e; ++j)(function (e) {
                          O(function () {
                              n.exports[Q[e]].apply(n, arguments)
                          }, 0)
                      })(j)
                  } : void 0)
              })
          }
  
          for (var n = window, O = n.setTimeout, x = document, K = x.documentElement, L = x.head || x.getElementsByTagName("head")[0] || K, z = "", A = x.getElementsByTagName("script"), m = A.length; --m >= 0;) {
              var M = A[m], T = M.src.match(/^[^#?]*\/run_prettify\.js(\?[^#]*)?(?:#.*)?$/);
              if (T) {
                  z = T[1] || "";
                  M.parentNode.removeChild(M);
                  break
              }
          }
          var S = !0, D = [], N = [], Q = [];
          z.replace(/[&?]([^&=]+)=([^&]+)/g, function (e, j, w) {
              w = decodeURIComponent(w);
              j = decodeURIComponent(j);
              j == "autorun" ? S = !/^[0fn]/i.test(w) : j == "lang" ? D.push(w) : j == "skin" ? N.push(w) : j == "callback" && Q.push(w)
          });
          m = 0;
          for (z = D.length; m < z; ++m)(function () {
              var e = x.createElement("script");
              e.onload = e.onerror = e.onreadystatechange = function () {
                  if (e && (!e.readyState || /loaded|complete/.test(e.readyState)))e.onerror = e.onload = e.onreadystatechange = r, --R, R || O(P, 0), e.parentNode && e.parentNode.removeChild(e),
                      e = r
              };
              e.type = "text/javascript";
              e.src = "https://cdn.rawgit.com/google/code-prettify/master/loader/lang-" + encodeURIComponent(D[m]) + ".js";
              L.insertBefore(e, L.firstChild)
          })(D[m]);
          for (var R = D.length, A = [], m = 0, z = N.length; m < z; ++m)A.push("https://cdn.rawgit.com/google/code-prettify/master/loader/skins/" + encodeURIComponent(N[m]) + ".css");
          A.push("https://cdn.rawgit.com/google/code-prettify/master/loader/prettify.css");
          (function (e) {
              function j(m) {
                  if (m !== w) {
                      var n = x.createElement("link");
                      n.rel = "stylesheet";
                      n.type = "text/css";
                      if (m + 1 < w)n.error = n.onerror = function () {
                          j(m + 1)
                      };
                      n.href = e[m];
                      L.appendChild(n)
                  }
              }
  
              var w = e.length;
              j(0)
          })(A);
          var $ = function () {
              window.PR_SHOULD_USE_CONTINUATION = !0;
              var e;
              (function () {
                  function j(a) {
                      function d(f) {
                          var b = f.charCodeAt(0);
                          if (b !== 92)return b;
                          var a = f.charAt(1);
                          return (b = i[a]) ? b : "0" <= a && a <= "7" ? parseInt(f.substring(1), 8) : a === "u" || a === "x" ? parseInt(f.substring(2), 16) : f.charCodeAt(1)
                      }
  
                      function h(f) {
                          if (f < 32)return (f < 16 ? "\\x0" : "\\x") + f.toString(16);
                          f = String.fromCharCode(f);
                          return f === "\\" || f === "-" || f === "]" ||
                          f === "^" ? "\\" + f : f
                      }
  
                      function b(f) {
                          var b = f.substring(1, f.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), f = [], a = b[0] === "^", c = ["["];
                          a && c.push("^");
                          for (var a = a ? 1 : 0, g = b.length; a < g; ++a) {
                              var k = b[a];
                              if (/\\[bdsw]/i.test(k))c.push(k);
                              else {
                                  var k = d(k), o;
                                  a + 2 < g && "-" === b[a + 1] ? (o = d(b[a + 2]), a += 2) : o = k;
                                  f.push([k, o]);
                                  o < 65 || k > 122 || (o < 65 || k > 90 || f.push([Math.max(65, k) | 32, Math.min(o, 90) | 32]), o < 97 || k > 122 || f.push([Math.max(97, k) & -33,
                                                                                                                                                               Math.min(o, 122) & -33]))
                              }
                          }
                          f.sort(function (f,
                                           a) {
                              return f[0] - a[0] || a[1] - f[1]
                          });
                          b = [];
                          g = [];
                          for (a = 0; a < f.length; ++a)k = f[a], k[0] <= g[1] + 1 ? g[1] = Math.max(g[1], k[1]) : b.push(g = k);
                          for (a = 0; a < b.length; ++a)k = b[a], c.push(h(k[0])), k[1] > k[0] && (k[1] + 1 > k[0] && c.push("-"), c.push(h(k[1])));
                          c.push("]");
                          return c.join("")
                      }
  
                      function e(f) {
                          for (var a = f.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), c = a.length, d = [], g = 0, k = 0; g < c; ++g) {
                              var o = a[g];
                              o === "(" ? ++k : "\\" === o.charAt(0) && (o = +o.substring(1)) && (o <= k ?
                                  d[o] = -1 : a[g] = h(o))
                          }
                          for (g = 1; g < d.length; ++g)-1 === d[g] && (d[g] = ++j);
                          for (k = g = 0; g < c; ++g)o = a[g], o === "(" ? (++k, d[k] || (a[g] = "(?:")) : "\\" === o.charAt(0) && (o = +o.substring(1)) && o <= k && (a[g] = "\\" + d[o]);
                          for (g = 0; g < c; ++g)"^" === a[g] && "^" !== a[g + 1] && (a[g] = "");
                          if (f.ignoreCase && F)for (g = 0; g < c; ++g)o = a[g], f = o.charAt(0), o.length >= 2 && f === "[" ? a[g] = b(o) : f !== "\\" && (a[g] = o.replace(/[A-Za-z]/g, function (a) {
                              a = a.charCodeAt(0);
                              return "[" + String.fromCharCode(a & -33, a | 32) + "]"
                          }));
                          return a.join("")
                      }
  
                      for (var j = 0, F = !1, l = !1, I = 0, c = a.length; I < c; ++I) {
                          var p =
                              a[I];
                          if (p.ignoreCase)l = !0;
                          else if (/[a-z]/i.test(p.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ""))) {
                              F = !0;
                              l = !1;
                              break
                          }
                      }
                      for (var i = {b: 8, t: 9, n: 10, v: 11, f: 12, r: 13}, q = [], I = 0, c = a.length; I < c; ++I) {
                          p = a[I];
                          if (p.global || p.multiline)throw Error("" + p);
                          q.push("(?:" + e(p) + ")")
                      }
                      return RegExp(q.join("|"), l ? "gi" : "g")
                  }
  
                  function m(a, d) {
                      function h(a) {
                          var c = a.nodeType;
                          if (c == 1) {
                              if (!b.test(a.className)) {
                                  for (c = a.firstChild; c; c = c.nextSibling)h(c);
                                  c = a.nodeName.toLowerCase();
                                  if ("br" === c || "li" === c)e[l] = "\n", F[l << 1] = j++,
                                      F[l++ << 1 | 1] = a
                              }
                          }
                          else if (c == 3 || c == 4)c = a.nodeValue, c.length && (c = d ? c.replace(/\r\n?/g, "\n") : c.replace(/[\t\n\r ]+/g,
                              " "), e[l] = c, F[l << 1] = j, j += c.length, F[l++ << 1 | 1] = a)
                      }
  
                      var b = /(?:^|\s)nocode(?:\s|$)/, e = [], j = 0, F = [], l = 0;
                      h(a);
                      return {a: e.join("").replace(/\n$/, ""), d: F}
                  }
  
                  function n(a, d, h, b) {
                      d && (a = {a: d, e: a}, h(a), b.push.apply(b, a.g))
                  }
  
                  function x(a) {
                      for (var d = void 0, h = a.firstChild; h; h = h.nextSibling)var b = h.nodeType, d = b === 1 ? d ? a : h : b === 3 ? S.test(h.nodeValue) ? a : d : d;
                      return d === a ? void 0 : d
                  }
  
                  function C(a, d) {
                      function h(a) {
                          for (var l =
                              a.e, j = [l, "pln"], c = 0, p = a.a.match(e) || [], m = {}, q = 0, f = p.length; q < f; ++q) {
                              var B = p[q], y = m[B], u = void 0, g;
                              if (typeof y === "string")g = !1;
                              else {
                                  var k = b[B.charAt(0)];
                                  if (k)u = B.match(k[1]), y = k[0];
                                  else {
                                      for (g = 0; g < i; ++g)if (k = d[g], u = B.match(k[1])) {
                                          y = k[0];
                                          break
                                      }
                                      u || (y = "pln")
                                  }
                                  if ((g = y.length >= 5 && "lang-" === y.substring(0, 5)) && !(u && typeof u[1] === "string"))g = !1, y = "src";
                                  g || (m[B] = y)
                              }
                              k = c;
                              c += B.length;
                              if (g) {
                                  g = u[1];
                                  var o = B.indexOf(g), H = o + g.length;
                                  u[2] && (H = B.length - u[2].length, o = H - g.length);
                                  y = y.substring(5);
                                  n(l + k, B.substring(0, o), h,
                                      j);
                                  n(l + k + o, g, A(y, g), j);
                                  n(l + k + H, B.substring(H), h, j)
                              }
                              else j.push(l + k, y)
                          }
                          a.g = j
                      }
  
                      var b = {}, e;
                      (function () {
                          for (var h = a.concat(d), l = [], i = {}, c = 0, p = h.length; c < p; ++c) {
                              var m = h[c], q = m[3];
                              if (q)for (var f = q.length; --f >= 0;)b[q.charAt(f)] = m;
                              m = m[1];
                              q = "" + m;
                              i.hasOwnProperty(q) || (l.push(m), i[q] = r)
                          }
                          l.push(/[\S\s]/);
                          e = j(l)
                      })();
                      var i = d.length;
                      return h
                  }
  
                  function t(a) {
                      var d = [], h = [];
                      a.tripleQuotedStrings ? d.push(["str",
                                                      /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,
                                                      r, "'\""]) : a.multiLineStrings ? d.push(["str", /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, r,
                                                                                                "'\"`"]) : d.push(["str", /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, r, "\"'"]);
                      a.verbatimStrings && h.push(["str", /^@"(?:[^"]|"")*(?:"|$)/, r]);
                      var b = a.hashComments;
                      b && (a.cStyleComments ? (b > 1 ? d.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, r, "#"]) : d.push(["com",
                                                                                                                                   /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,
                                                                                                                                   r, "#"]), h.push(["str",
                                                                                                                                                     /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,
                                                                                                                                                     r])) : d.push(["com", /^#[^\n\r]*/, r, "#"]));
                      a.cStyleComments && (h.push(["com", /^\/\/[^\n\r]*/, r]), h.push(["com", /^\/\*[\S\s]*?(?:\*\/|$)/, r]));
                      if (b = a.regexLiterals) {
                          var e = (b = b > 1 ? "" : "\n\r") ? "." : "[\\S\\s]";
                          h.push(["lang-regex",
                                  RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(" +
                                      ("/(?=[^/*" + b + "])(?:[^/\\x5B\\x5C" + b + "]|\\x5C" + e + "|\\x5B(?:[^\\x5C\\x5D" + b + "]|\\x5C" + e + ")*(?:\\x5D|$))+/") + ")")])
                      }
                      (b = a.types) && h.push(["typ", b]);
                      b = ("" + a.keywords).replace(/^ | $/g, "");
                      b.length && h.push(["kwd", RegExp("^(?:" + b.replace(/[\s,]+/g, "|") + ")\\b"), r]);
                      d.push(["pln", /^\s+/, r, " \r\n\t\u00a0"]);
                      b = "^.[^\\s\\w.$@'\"`/\\\\]*";
                      a.regexLiterals && (b += "(?!s*/)");
                      h.push(["lit", /^@[$_a-z][\w$@]*/i, r], ["typ", /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, r], ["pln", /^[$_a-z][\w$@]*/i, r],
                          ["lit", /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,
                           r, "0123456789"], ["pln", /^\\[\S\s]?/, r], ["pun", RegExp(b), r]);
                      return C(d, h)
                  }
  
                  function z(a, d, h) {
                      function b(a) {
                          var c = a.nodeType;
                          if (c == 1 && !j.test(a.className))if ("br" === a.nodeName)e(a), a.parentNode && a.parentNode.removeChild(a);
                          else for (a = a.firstChild; a; a = a.nextSibling)b(a);
                          else if ((c == 3 || c == 4) && h) {
                              var d = a.nodeValue, i = d.match(m);
                              if (i)c = d.substring(0, i.index), a.nodeValue = c, (d = d.substring(i.index + i[0].length)) && a.parentNode.insertBefore(l.createTextNode(d),
                                  a.nextSibling), e(a), c || a.parentNode.removeChild(a)
                          }
                      }
  
                      function e(a) {
                          function b(a, c) {
                              var d = c ? a.cloneNode(!1) : a, f = a.parentNode;
                              if (f) {
                                  var f = b(f, 1), h = a.nextSibling;
                                  f.appendChild(d);
                                  for (var e = h; e; e = h)h = e.nextSibling, f.appendChild(e)
                              }
                              return d
                          }
  
                          for (; !a.nextSibling;)if (a = a.parentNode, !a)return;
                          for (var a = b(a.nextSibling, 0), d; (d = a.parentNode) && d.nodeType === 1;)a = d;
                          c.push(a)
                      }
  
                      for (var j = /(?:^|\s)nocode(?:\s|$)/, m = /\r\n?|\n/, l = a.ownerDocument, i = l.createElement("li"); a.firstChild;)i.appendChild(a.firstChild);
                      for (var c = [i], p = 0; p < c.length; ++p)b(c[p]);
                      d === (d | 0) && c[0].setAttribute("value",
                          d);
                      var n = l.createElement("ol");
                      n.className = "linenums";
                      for (var d = Math.max(0,
                              d - 1 | 0) || 0, p = 0, q = c.length; p < q; ++p)i = c[p], i.className = "L" + (p + d) % 10, i.firstChild || i.appendChild(l.createTextNode("\u00a0")), n.appendChild(i);
                      a.appendChild(n)
                  }
  
                  function i(a, d) {
                      for (var h = d.length; --h >= 0;) {
                          var b = d[h];
                          U.hasOwnProperty(b) ? V.console && console.warn("cannot override language handler %s", b) : U[b] = a
                      }
                  }
  
                  function A(a, d) {
                      if (!a || !U.hasOwnProperty(a))a = /^\s*</.test(d) ? "default-markup" : "default-code";
                      return U[a]
                  }
  
                  function D(a) {
                      var d =
                          a.h;
                      try {
                          var h = m(a.c, a.i), b = h.a;
                          a.a = b;
                          a.d = h.d;
                          a.e = 0;
                          A(d, b)(a);
                          var e = /\bMSIE\s(\d+)/.exec(navigator.userAgent), e = e && +e[1] <= 8, d = /\n/g, i = a.a, j = i.length, h = 0, l = a.d, n = l.length, b = 0, c = a.g, p = c.length, t = 0;
                          c[p] = j;
                          var q, f;
                          for (f = q = 0; f < p;)c[f] !== c[f + 2] ? (c[q++] = c[f++], c[q++] = c[f++]) : f += 2;
                          p = q;
                          for (f = q = 0; f < p;) {
                              for (var x = c[f], y = c[f + 1], u = f + 2; u + 2 <= p && c[u + 1] === y;)u += 2;
                              c[q++] = x;
                              c[q++] = y;
                              f = u
                          }
                          c.length = q;
                          var g = a.c, k;
                          if (g)k = g.style.display, g.style.display = "none";
                          try {
                              for (; b < n;) {
                                  var o = l[b + 2] || j, H = c[t + 2] || j, u = Math.min(o, H), E = l[b +
                                  1], W;
                                  if (E.nodeType !== 1 && (W = i.substring(h, u))) {
                                      e && (W = W.replace(d, "\r"));
                                      E.nodeValue = W;
                                      var Z = E.ownerDocument, s = Z.createElement("span");
                                      s.className = c[t + 1];
                                      var z = E.parentNode;
                                      z.replaceChild(s, E);
                                      s.appendChild(E);
                                      h < o && (l[b + 1] = E = Z.createTextNode(i.substring(u, o)), z.insertBefore(E, s.nextSibling))
                                  }
                                  h = u;
                                  h >= o && (b += 2);
                                  h >= H && (t += 2)
                              }
                          }
                          finally {
                              if (g)g.style.display = k
                          }
                      }
                      catch (v) {
                          V.console && console.log(v && v.stack || v)
                      }
                  }
  
                  var V = window, G = ["break,continue,do,else,for,if,return,while"], J = [[G,
                                                                                            "auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
                          "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"], K = [J,
                                                                                                                                    "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"], Q = [J,
                                                                                                                                                                                                                                                                                                                                                                                                                             "abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],
                      L = [J,
                           "abstract,as,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"], J = [J,
                                                                                                                                                                                                                                                                                                                                                             "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"], M = [G,
                                                                                                                                                                                                                                                                                                                                                                                                                                                 "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
                      N = [G,
                           "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"], R = [G,
                                                                                                                                                                                                           "as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"], G = [G,
                                                                                                                                                                                                                                                                                                                                                                             "case,done,elif,esac,eval,fi,function,in,local,set,then,until"], P = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
                      S = /\S/, T = t({
                          keywords: [K, L, J,
                                     "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
                                     M, N, G], hashComments: !0, cStyleComments: !0, multiLineStrings: !0, regexLiterals: !0
                      }), U = {};
                  i(T, ["default-code"]);
                  i(C([], [["pln", /^[^<?]+/], ["dec", /^<!\w[^>]*(?:>|$)/], ["com", /^<\!--[\S\s]*?(?:--\>|$)/], ["lang-", /^<\?([\S\s]+?)(?:\?>|$)/], ["lang-", /^<%([\S\s]+?)(?:%>|$)/],
                      ["pun", /^(?:<[%?]|[%?]>)/], ["lang-",
                                                    /^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i], ["lang-js", /^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],
                      ["lang-css", /^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i], ["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i]]), ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"]);
                  i(C([["pln", /^\s+/, r, " \t\r\n"], ["atv", /^(?:"[^"]*"?|'[^']*'?)/, r, "\"'"]],
                      [["tag", /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i], ["atn", /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], ["lang-uq.val", /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/], ["pun", /^[/<->]+/],
                          ["lang-js", /^on\w+\s*=\s*"([^"]+)"/i], ["lang-js", /^on\w+\s*=\s*'([^']+)'/i], ["lang-js", /^on\w+\s*=\s*([^\s"'>]+)/i], ["lang-css", /^style\s*=\s*"([^"]+)"/i],
                          ["lang-css", /^style\s*=\s*'([^']+)'/i], ["lang-css", /^style\s*=\s*([^\s"'>]+)/i]]), ["in.tag"]);
                  i(C([], [["atv", /^[\S\s]+/]]), ["uq.val"]);
                  i(t({keywords: K, hashComments: !0, cStyleComments: !0, types: P}), ["c", "cc", "cpp", "cxx", "cyc", "m"]);
                  i(t({keywords: "null,true,false"}), ["json"]);
                  i(t({keywords: L, hashComments: !0, cStyleComments: !0, verbatimStrings: !0, types: P}),
                      ["cs"]);
                  i(t({keywords: Q, cStyleComments: !0}), ["java"]);
                  i(t({keywords: G, hashComments: !0, multiLineStrings: !0}), ["bash", "bsh", "csh", "sh"]);
                  i(t({keywords: M, hashComments: !0, multiLineStrings: !0, tripleQuotedStrings: !0}), ["cv", "py", "python"]);
                  i(t({
                      keywords: "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
                      hashComments: !0,
                      multiLineStrings: !0,
                      regexLiterals: 2
                  }), ["perl", "pl", "pm"]);
                  i(t({
                      keywords: N,
                      hashComments: !0, multiLineStrings: !0, regexLiterals: !0
                  }), ["rb", "ruby"]);
                  i(t({keywords: J, cStyleComments: !0, regexLiterals: !0}), ["javascript", "js"]);
                  i(t({
                      keywords: "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",
                      hashComments: 3,
                      cStyleComments: !0,
                      multilineStrings: !0,
                      tripleQuotedStrings: !0,
                      regexLiterals: !0
                  }), ["coffee"]);
                  i(t({keywords: R, cStyleComments: !0, multilineStrings: !0}), ["rc", "rs", "rust"]);
                  i(C([], [["str", /^[\S\s]+/]]), ["regex"]);
                  var X = V.PR = {
                      createSimpleLexer: C,
                      registerLangHandler: i,
                      sourceDecorator: t,
                      PR_ATTRIB_NAME: "atn",
                      PR_ATTRIB_VALUE: "atv",
                      PR_COMMENT: "com",
                      PR_DECLARATION: "dec",
                      PR_KEYWORD: "kwd",
                      PR_LITERAL: "lit",
                      PR_NOCODE: "nocode",
                      PR_PLAIN: "pln",
                      PR_PUNCTUATION: "pun",
                      PR_SOURCE: "src",
                      PR_STRING: "str",
                      PR_TAG: "tag",
                      PR_TYPE: "typ",
                      prettyPrintOne: function (a, d, e) {
                          var b = document.createElement("div");
                          b.innerHTML = "<pre>" + a + "</pre>";
                          b = b.firstChild;
                          e && z(b, e, !0);
                          D({h: d, j: e, c: b, i: 1});
                          return b.innerHTML
                      },
                      prettyPrint: e = e = function (a, d) {
                          function e() {
                              for (var b = V.PR_SHOULD_USE_CONTINUATION ? c.now() + 250 : Infinity; p < j.length && c.now() < b; p++) {
                                  for (var d = j[p], m = k, l = d; l = l.previousSibling;) {
                                      var n = l.nodeType, s = (n === 7 || n === 8) && l.nodeValue;
                                      if (s ? !/^\??prettify\b/.test(s) : n !== 3 || /\S/.test(l.nodeValue))break;
                                      if (s) {
                                          m = {};
                                          s.replace(/\b(\w+)=([\w%+\-.:]+)/g, function (a, b, c) {
                                              m[b] = c
                                          });
                                          break
                                      }
                                  }
                                  l = d.className;
                                  if ((m !== k || f.test(l)) && !w.test(l)) {
                                      n = !1;
                                      for (s = d.parentNode; s; s = s.parentNode)if (g.test(s.tagName) && s.className && f.test(s.className)) {
                                          n = !0;
                                          break
                                      }
                                      if (!n) {
                                          d.className += " prettyprinted";
                                          n = m.lang;
                                          if (!n) {
                                              var n = l.match(q), A;
                                              if (!n && (A = x(d)) && u.test(A.tagName))n = A.className.match(q);
                                              n && (n = n[1])
                                          }
                                          if (y.test(d.tagName))s = 1;
                                          else var s = d.currentStyle, v = i.defaultView, s = (s = s ? s.whiteSpace : v && v.getComputedStyle ? v.getComputedStyle(d,
                                                  r).getPropertyValue("white-space") : 0) && "pre" === s.substring(0, 3);
                                          v = m.linenums;
                                          if (!(v = v === "true" || +v))v = (v = l.match(/\blinenums\b(?::(\d+))?/)) ? v[1] && v[1].length ? +v[1] : !0 : !1;
                                          v && z(d, v, s);
                                          t = {h: n, c: d, j: v, i: s};
                                          D(t)
                                      }
                                  }
                              }
                              p < j.length ?
                                  O(e, 250) : "function" === typeof a && a()
                          }
  
                          for (var b = d || document.body, i = b.ownerDocument || document, b = [b.getElementsByTagName("pre"), b.getElementsByTagName("code"),
                                                                                                 b.getElementsByTagName("xmp")], j = [], m = 0; m < b.length; ++m)for (var l = 0, n = b[m].length; l < n; ++l)j.push(b[m][l]);
                          var b = r, c = Date;
                          c.now || (c = {
                              now: function () {
                                  return +new Date
                              }
                          });
                          var p = 0, t, q = /\blang(?:uage)?-([\w.]+)(?!\S)/, f = /\bprettyprint\b/, w = /\bprettyprinted\b/, y = /pre|xmp/i, u = /^code$/i, g = /^(?:pre|code|xmp)$/i, k = {};
                          e()
                      }
                  };
                  typeof define === "function" && define.amd &&
                  define("google-code-prettify", [], function () {
                      return X
                  })
              })();
              return e
          }();
          R || O(P, 0)
      })();
  }();
  