text-annotator
Advanced tools
Comparing version 0.7.5 to 0.7.6
@@ -244,5 +244,20 @@ "use strict"; | ||
let highlightIndex = -1; | ||
const index = text.indexOf(strWithFixes, offset); | ||
const index = text.indexOf(strWithFixes, offset); // experiment feature: if the text to be searched does not work, try to encode it | ||
if (index !== -1) { | ||
if (index === -1) { | ||
const Entities = require('html-entities').AllHtmlEntities; | ||
const entities = new Entities(); | ||
const encodedStrWithFixes = entities.encode(strWithFixes); | ||
const index = text.indexOf(encodedStrWithFixes, offset); | ||
if (index !== -1) { | ||
const loc = []; | ||
loc[0] = index + entities.encode(prefix).length; | ||
loc[1] = loc[0] + entities.encode(str).length; | ||
highlightIndex = this.highlights.push({ | ||
loc | ||
}) - 1; | ||
} | ||
} else { | ||
const loc = []; | ||
@@ -249,0 +264,0 @@ loc[0] = index + prefix.length; |
{ | ||
"name": "text-annotator", | ||
"version": "0.7.5", | ||
"version": "0.7.6", | ||
"description": "A JavaScript library for locating and annotating plain text in HTML", | ||
@@ -88,3 +88,6 @@ "main": "build/text-annotator.js", | ||
"test" | ||
] | ||
], | ||
"dependencies": { | ||
"html-entities": "^1.3.1" | ||
} | ||
} |
@@ -1,1 +0,1 @@ | ||
var TextAnnotator=function(t){var e={};function n(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)n.d(i,s,function(e){return t[e]}.bind(null,s));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){t.exports=n(1).default},function(t,e,n){"use strict";n.r(e);let i=[];const s=["al","adj","assn","Ave","BSc","MSc","Cell","Ch","Co","cc","Corp","Dem","Dept","ed","eg","Eq","Eqs","est","est","etc","Ex","ext","Fig","fig","Figs","figs","i.e","ie","Inc","inc","Jan","Feb","Mar","Apr","Jun","Jul","Aug","Sep","Sept","Oct","Nov","Dec","jr","mi","Miss","Mrs","Mr","Ms","Mol","mt","mts","no","Nos","PhD","MD","BA","MA","MM","pl","pop","pp","Prof","Dr","pt","Ref","Refs","Rep","repr","rev","Sec","Secs","Sgt","Col","Gen","Rep","Sen","Gov","Lt","Maj","Capt","St","Sr","sr","Jr","jr","Rev","Sun","Mon","Tu","Tue","Tues","Wed","Th","Thu","Thur","Thurs","Fri","Sat","trans","Univ","Viz","Vol","vs","v"],r=t=>/^[A-Z][a-z].*/.test(t)||g(t),o=t=>r(t)||/``|"|'/.test(t.substring(0,2)),l=(t,e)=>{if("a.m."===t||"p.m."===t){if("day"===e.replace(/\W+/g,"").slice(-3).toLowerCase())return!0}return!1},h=t=>{const e=t.replace(/[()[\]{}]/g,"").match(/(.\.)*/);return e&&e[0].length>0},c=t=>t.length<=3||r(t),a=(t,e)=>{if(e.length>0){if(t<5&&e[0].length<6&&r(e[0]))return!0;return e.filter(t=>/[A-Z]/.test(t.charAt(0))).length>=3}return!1},g=(t,e)=>(e&&(t=t.slice(e-1,e+2)),!isNaN(t)),u=t=>t.match(/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/),d=t=>t.match(/[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/),f=t=>{let e=0;if((e=t.indexOf("."))>-1||(e=t.indexOf("!"))>-1||(e=t.indexOf("?"))>-1){if(t.charAt(e+1).match(/[a-zA-Z].*/))return[t.slice(0,e+1),t.slice(e+1)]}return!1},p=(t,e)=>e.length>1?e.indexOf(t.slice(-1))>-1:t.slice(-1)===e,m=(t,e)=>t.slice(t.length-e.length)===e;function b(t,e){const n=" @~@ ".trim(),r=new RegExp("\\S",""),b=new RegExp("\\n+|[-#=_+*]{4,}","g"),T=new RegExp("\\S+|\\n","g");if(!t||"string"!=typeof t||!t.length)return[];if(!r.test(t))return[];const L={newline_boundaries:!1,html_boundaries:!1,html_boundaries_tags:["p","div","ul","ol"],sanitize:!1,allowed_tags:!1,preserve_whitespace:!1,abbreviations:null};if("boolean"==typeof e)L.newline_boundaries=!0;else for(let t in e)L[t]=e[t];var x;if(x=L.abbreviations,i=x||s,L.newline_boundaries&&(t=t.replace(b," @~@ ")),L.html_boundaries){const e="(<br\\s*\\/?>|<\\/("+L.html_boundaries_tags.join("|")+")>)",n=new RegExp(e,"g");t=t.replace(n,"$1 @~@ ")}let M,w;(L.sanitize||L.allowed_tags)&&(L.allowed_tags||(L.allowed_tags=[""]),t=(t=>{if(("string"==typeof t||t instanceof String)&&"undefined"!=typeof document){const e=document.createElement("DIV");e.innerHTML=t,t=(e.textContent||"").trim()}else"object"==typeof t&&t.textContent&&(t=(t.textContent||"").trim());return t})(t,L.allowed_tags)),L.preserve_whitespace?(w=t.split(/(<br\s*\/?>|\S+|\n+)/),M=w.filter((t,e)=>e%2)):M=t.trim().match(T);let S=0,y=0,v=[],C=[],O=[];if(!M||!M.length)return[];let _=0;for(let t=0,e=M.length;t<e;t++){if(S++,O.push(M[t]),~M[t].indexOf(",")&&(S=0),"."===(j=M[t])||"!"===j||"?"===j||p(M[t],"?!")||M[t]===n){(L.newline_boundaries||L.html_boundaries)&&M[t]===n&&O.pop(),C.push(O),S=0,O=[];continue}if((p(M[t],'"')||p(M[t],"”"))&&(M[t]=M[t].slice(0,-1),y=2*t+1),p(M[t],".")){if(t+1<e){if(2===M[t].length&&isNaN(M[t].charAt(0)))continue;if(H=M[t],~i.indexOf(H.replace(/\W+/g,"")))continue;if(o(M[t+1])){if(l(M[t],M[t+1]))continue;if(a(S,M.slice(t,6)))continue;if(g(M[t+1])&&c(M[t]))continue}else{if(m(M[t],".."))continue;if(h(M[t]))continue;if(a(S,M.slice(t,5)))continue}}C.push(O),O=[],S=0;continue}if((y=M[t].indexOf("."))>-1){if(g(M[t],y))continue;if(h(M[t]))continue;if(d(M[t])||u(M[t]))continue}const s=f(M[t]);s&&(v=s,O.pop(),O.push(v[0]),C.push(O),L.preserve_whitespace&&(w.splice(2*t+1+_,1,v[0],"",v[1]),_+=2),O=[],S=0,O.push(v[1]))}var H,j;O.length&&C.push(O);const I=[];let A="";C=C.filter((function(t){return t.length>0}));for(let t=0;t<C.length;t++){if(!L.preserve_whitespace||L.newline_boundaries||L.html_boundaries)A=C[t].join(" ");else{let e=2*C[t].length;0===t&&(e+=1),A=w.splice(0,e).join("")}1===C[t].length&&C[t][0].length<4&&C[t][0].indexOf(".")>-1&&C[t+1]&&C[t+1][0].indexOf(".")<0&&(A+=" "+C[t+1].join(" "),t++),I.push(A)}return I}const T="undefined"!=typeof window&&void 0!==window.document,L=["address","article","aside","blockquote","canvas","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","noscript","ol","output","p","pre","section","table","tfoot","ul","video"];class x{constructor(t={}){const e=t.containerId,n=t.content,i=void 0===t.isHTML||t.isHTML;this.originalContent=T&&e?document.getElementById(e).innerHTML:n,this.isHTML=i,this.stripedHTML="",this.tagLocations=[],this.sentences=[],this.highlights=[],i&&this.stripAndStoreHTMLTags()}search(t,e={},n){let i=e.prefix||"",s=e.postfix||"";const r=e.directSearchOptions,o=e.fuzzySearchOptions,l=e.eagerSearchOptions;if(void 0===e.trim||e.trim){const e=x.trim(i,t,s);i=e.prefix,t=e.str,s=e.postfix}let h=-1;return h=this.directSearch(i,t,s,r,n),-1!==h||o&&(h=this.fuzzySearch(i,t,s,o),-1!==h)||T&&l&&(h=this.eagerSearch(i,t,s,l)),h}searchAll(t,e={}){const n=[],i=(t,e,s)=>{const r=this.search(t,e,s);-1!==r&&(n.push(r),i(t,e,r))};return i(t,e),n}highlight(t,e={}){const n=e.containerId;let i=e.content;const s=e.highlightClass||"highlight",r=e.highlightIdPattern||"highlight-",o=e.returnContent;T&&n&&(i=document.getElementById(n).innerHTML);const l=x.createOpenTag(r,t,s),h=this.adjustLoc(r,t,s);let c=x.insert(i,l,h[0]);if(c=x.insert(c,x.createCloseTag(),h[1]+l.length),this.highlights[t].highlighted=!0,!T||!n||o)return c;document.getElementById(n).innerHTML=c}highlightAll(t,e={}){const{containerId:n,content:i,returnContent:s}=e;let r=T&&n?document.getElementById(n).innerHTML:i;for(let n=0;n<t.length;n++){const i=Object.assign({},e);delete i.containerId,i.content=r,i.returnContent=!0,r=this.highlight(t[n],i)}if(!T||!n||s)return r;document.getElementById(n).innerHTML=r}searchAndHighlight(t,e){const n=this.search(t,e.searchOptions);if(-1!==n)return{highlightIndex:n,content:this.highlight(n,e.highlightOptions)}}unhighlight(t,e={}){const n=e.byStringOperation,i=e.containerId;let s=e.content;const r=e.highlightClass||"highlight",o=e.highlightIdPattern||"highlight-",l=e.returnContent;if(this.highlights[t].highlighted=!1,n){T&&i&&(s=document.getElementById(i).innerHTML);let e=s;const n=this.adjustLoc(o,t,r),h=x.getOpenTagLength(o,t,r),c=e.substring(n[0],n[1]+h+x.getCloseTagLength()),a=e.substring(n[0]+h,n[1]+h);if(e=e.replace(c,a),l)return e;document.getElementById(i).innerHTML=e}else if(T){const e=o+t;if(document.getElementById(e).outerHTML=document.getElementById(e).innerHTML,l)return document.getElementById(i).innerHTML}}stripAndStoreHTMLTags(){let t;this.stripedHTML=this.originalContent;const e=/<[^>]+>/;let n=0;for(;t=this.stripedHTML.match(e);){this.stripedHTML=this.stripedHTML.replace(t,"");const e=t[0].length;this.tagLocations.push([t.index,e,n]),n+=e}}directSearch(t,e,n,i={},s){const r=i.caseSensitive;let o=t+e+n,l=this.isHTML?this.stripedHTML:this.originalContent;r||(o=o.toLowerCase(),l=l.toLowerCase());let h=0;void 0!==s&&(h=this.highlights[s].loc[1]+1);let c=-1;const a=l.indexOf(o,h);if(-1!==a){const n=[];n[0]=a+t.length,n[1]=n[0]+e.length,c=this.highlights.push({loc:n})-1}return c}eagerSearch(t,e,n,i={}){const s=i.caseSensitive,r=i.containerId,o=i.threshold||.74,l=t+e+n;let h=-1;if(window.find){document.designMode="on";const t=window.getSelection();for(t.collapse(document.body,0);window.find(l,s);){document.execCommand("hiliteColor",!0,"rgba(255, 255, 255, 0)"),t.collapseToEnd();const n=document.querySelector("#"+r+' [style="background-color: rgba(255, 255, 255, 0);"]');if(n){const t=n.innerHTML.replace(/<[^>]*>/g,""),i=x.getBestSubstring(t,e,o);if(i.similarity){const e=(this.isHTML?this.stripedHTML:this.originalContent).indexOf(t);-1!==e&&(h=this.highlights.push({loc:[e+i.loc[0],e+i.loc[1]]})-1)}break}}document.execCommand("undo"),document.designMode="off"}return h}fuzzySearch(t,e,n,i={}){const s=i.caseSensitive,r=i.tokenBased;let o=i.tbThreshold||.68;const l=void 0===i.sentenceBased||i.sentenceBased;let h=i.sbThreshold||.85;const c=i.maxLengthDiff||.1,a=i.lenRatio||2,g=i.processSentence;let u=-1;const d=this.isHTML?this.stripedHTML:this.originalContent;if(r||t||n){const i=[];let r=-1;for(;-1!==(r=d.indexOf(e,r+1));)i.push(r);let l=-1;const h=t+e+n;for(let r=0;r<i.length;r++){const c=i[r],a=d.substring(c-t.length,c)+e+d.substring(c+e.length,c+e.length+n.length),g=x.getSimilarity(a,h,s);g>=o&&(o=g,l=c)}-1!==l&&(u=this.highlights.push({loc:[l,l+e.length]})-1)}else if(l){let t=[];t=this.sentences.length?this.sentences:this.sentences=x.sentenize(d);const n=e.split(/\s/),i=[];for(let e=0;e<t.length;e++)for(let s=0;s<n.length;s++)if(t[e].raw.includes(n[s])){i.push(t[e]);break}if(g){let t=0;for(let e=0;e<i.length;e++){const n=i[e];let s=n.raw;const r=[n.index,n.index+s.length];let o=0;const l=this.tagLocations;for(let e=t;e<l.length;e++){const n=l[e];if(n[0]>=r[0]&&n[0]<=r[1]){const t=this.originalContent.substring(n[0]+n[2],n[0]+n[2]+n[1]),e=n[0]+o-r[0];s=s.slice(0,e)+t+s.slice(e),o+=n[1]}else if(n[0]>r[1]){t=e;break}}s=g(s),s=s.replace(/(<([^>]+)>)/gi,"");const h=n.raw;h!==s&&(n.raw=s,n.index=n.index+h.indexOf(s))}}let r=null;for(let t=0;t<i.length;t++){const n=i[t],o=x.getSimilarity(n.raw,e,s);if(o>=h)h=o,r=n;else if(t!==i.length-1){const o=n.raw+i[t+1].raw;if(Math.abs(o.length-e.length)/e.length<=c){const t=x.getSimilarity(o,e,s);t>=h&&(h=t,r={raw:o,index:n.index})}}}if(r){const t=x.getBestSubstring(r.raw,e,h,a,s,!0);if(t.loc){let e=r.index;u=this.highlights.push({loc:[e+t.loc[0],e+t.loc[1]]})-1}}}return u}includeRequiredTag(t,e,n){const i=n.startsWith("</"),s=i?n.split("</")[1].split(">")[0]:n.split(" ")[0].split("<")[1].split(">")[0];let r=!1,o=1,l=0;if(i)for(let n=t-1;n>=0;n--){const t=this.tagLocations[n];if(e[0]>t[0])break;{const e=this.originalContent.substring(t[0]+t[2],t[0]+t[2]+t[1]);if(e.startsWith("</"+s)?o++:e.startsWith("<"+s)&&l++,o===l){r=!0;break}}}else for(let n=t+1;n<this.tagLocations.length;n++){const t=this.tagLocations[n];if(e[1]<t[0])break;{const e=this.originalContent.substring(t[0]+t[2],t[0]+t[2]+t[1]);if(e.startsWith("<"+s)?o++:e.startsWith("</"+s)&&l++,o===l){r=!0;break}}}return r}adjustLoc(t,e,n){const i=this.highlights[e].loc,s=[0,0],r=this.tagLocations.length;for(let t=0;t<r;t++){const e=this.tagLocations[t];if(i[1]<e[0])break;if(i[1]===e[0]){const n=this.originalContent.substring(e[0]+e[2],e[0]+e[2]+e[1]);!n.endsWith("/>")&&n.startsWith("</")&&!L.includes(n.split("</")[1].split(">")[0])&&this.includeRequiredTag(t,i,n)&&(s[1]+=e[1])}else if(i[1]>e[0])if(s[1]+=e[1],i[0]===e[0]){const n=this.originalContent.substring(e[0]+e[2],e[0]+e[2]+e[1]);(n.startsWith("</")||n.endsWith("/>")||L.includes(n.split(" ")[0].split("<")[1].split(">")[0])||!this.includeRequiredTag(t,i,n))&&(s[0]+=e[1])}else i[0]>e[0]&&(s[0]+=e[1])}for(let e=0;e<this.highlights.length;e++){const r=this.highlights[e];if(r.highlighted){const o=x.getOpenTagLength(t,e,n),l=x.getCloseTagLength(),h=r.loc;i[0]>=h[1]?(s[0]+=o+l,s[1]+=o+l):i[0]<h[1]&&i[0]>h[0]&&i[1]>h[1]?(s[0]+=o,s[1]+=o+l):i[0]<=h[0]&&i[1]>=h[1]?s[1]+=o+l:i[0]<h[0]&&i[1]>h[0]&&i[1]<h[1]?s[1]+=o:i[0]>=h[0]&&i[1]<=h[1]&&(s[0]+=o,s[1]+=o)}}return[i[0]+s[0],i[1]+s[1]]}static createOpenTag(t,e,n){return`<span id="${t+e}" class="${n}">`}static createCloseTag(){return"</span>"}static getOpenTagLength(t,e,n){return x.createOpenTag(t,e,n).length}static getCloseTagLength(){return x.createCloseTag().length}static trim(t,e,n){return t=t.replace(/^\s+/,""),n=n.replace(/\s+$/,""),t||(e=e.replace(/^\s+/,"")),n||(e=e.replace(/\s+$/,"")),{prefix:t,str:e,postfix:n}}static insert(t,e,n){return t.slice(0,n)+e+t.slice(n)}static sentenize(t){return b(t,{newline_boundaries:!1,html_boundaries:!1,sanitize:!1,allowed_tags:!1,preserve_whitespace:!0,abbreviations:null}).map(e=>({raw:e,index:t.indexOf(e)}))}static getBestSubstring(t,e,n,i,s,r){let o={},l=r?n:x.getSimilarity(t,e,s);if(l>=n){const n=t.split(" ");for(;n.length;){const t=n.shift(),i=n.join(" ");let r=x.getSimilarity(i,e,s);if(r<l){n.unshift(t);const i=n.pop();if(r=x.getSimilarity(n.join(" "),e,s),r<l){n.push(i);break}l=r}else l=r}const r=n.join(" ");if(!i||r.length/e.length<=i){const e=[];e[0]=t.indexOf(r),e[1]=e[0]+r.length,o={similarity:l,loc:e}}}return o}static getSimilarity(t,e,n){return n||(t=t.toLowerCase(),e=e.toLowerCase()),t===e?1:x.lcsLength(t,e)/e.length}static lcsLength(t,e,n){var i=n?t:t.toLowerCase(),s=n?e:e.toLowerCase();if(i===s)return i;if(""===(i||s))return"";var r,o,l=i.length,h=s.length,c=function(t){for(var e=[],n=0;n<t;n++)e[n]=[];return e}(h+1);for(r=0;r<=l;r++)c[0][r]=0;for(r=0;r<=h;r++)c[r][0]=0;for(r=1;r<=h;r++)for(o=1;o<=l;o++)i[o-1]===s[r-1]?c[r][o]=c[r-1][o-1]+1:c[r][o]=Math.max(c[r-1][o],c[r][o-1]);var a="";for(r=h,o=l;r>0&&o>0;)i[o-1]===s[r-1]?(a=i[o-1]+a,r--,o--):Math.max(c[r-1][o],c[r][o-1])===c[r-1][o]?r--:o--;return a.length}}e.default=x}]); | ||
var TextAnnotator=function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=0)}([function(e,r,t){e.exports=t(5).default},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t(2);r.XmlEntities=n.XmlEntities;var o=t(3);r.Html4Entities=o.Html4Entities;var i=t(4);r.Html5Entities=i.Html5Entities,r.AllHtmlEntities=i.Html5Entities},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={"<":"<",">":">",""":'"',"&apos":"'","&":"&","<":"<",">":">",""":'"',"'":"'","&":"&"},o={60:"lt",62:"gt",34:"quot",39:"apos",38:"amp"},i={"<":"<",">":">",'"':""","'":"'","&":"&"},a=function(){function e(){}return e.prototype.encode=function(e){return e&&e.length?e.replace(/[<>"'&]/g,(function(e){return i[e]})):""},e.encode=function(r){return(new e).encode(r)},e.prototype.decode=function(e){return e&&e.length?e.replace(/&#?[0-9a-zA-Z]+;?/g,(function(e){if("#"===e.charAt(1)){var r="x"===e.charAt(2).toLowerCase()?parseInt(e.substr(3),16):parseInt(e.substr(2));return isNaN(r)||r<-32768||r>65535?"":String.fromCharCode(r)}return n[e]||e})):""},e.decode=function(r){return(new e).decode(r)},e.prototype.encodeNonUTF=function(e){if(!e||!e.length)return"";for(var r=e.length,t="",n=0;n<r;){var i=e.charCodeAt(n),a=o[i];a?(t+="&"+a+";",n++):(t+=i<32||i>126?"&#"+i+";":e.charAt(n),n++)}return t},e.encodeNonUTF=function(r){return(new e).encodeNonUTF(r)},e.prototype.encodeNonASCII=function(e){if(!e||!e.length)return"";for(var r=e.length,t="",n=0;n<r;){var o=e.charCodeAt(n);o<=255?t+=e[n++]:(t+="&#"+o+";",n++)}return t},e.encodeNonASCII=function(r){return(new e).encodeNonASCII(r)},e}();r.XmlEntities=a},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=["apos","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","Aelig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","quot","amp","lt","gt","OElig","oelig","Scaron","scaron","Yuml","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","permil","lsaquo","rsaquo","euro","fnof","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","bull","hellip","prime","Prime","oline","frasl","weierp","image","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","empty","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams"],o=[39,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,34,38,60,62,338,339,352,353,376,710,732,8194,8195,8201,8204,8205,8206,8207,8211,8212,8216,8217,8218,8220,8221,8222,8224,8225,8240,8249,8250,8364,402,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,977,978,982,8226,8230,8242,8243,8254,8260,8472,8465,8476,8482,8501,8592,8593,8594,8595,8596,8629,8656,8657,8658,8659,8660,8704,8706,8707,8709,8711,8712,8713,8715,8719,8721,8722,8727,8730,8733,8734,8736,8743,8744,8745,8746,8747,8756,8764,8773,8776,8800,8801,8804,8805,8834,8835,8836,8838,8839,8853,8855,8869,8901,8968,8969,8970,8971,9001,9002,9674,9824,9827,9829,9830],i={},a={};!function(){for(var e=0,r=n.length;e<r;){var t=n[e],s=o[e];i[t]=String.fromCharCode(s),a[s]=t,e++}}();var s=function(){function e(){}return e.prototype.decode=function(e){return e&&e.length?e.replace(/&(#?[\w\d]+);?/g,(function(e,r){var t;if("#"===r.charAt(0)){var n="x"===r.charAt(1).toLowerCase()?parseInt(r.substr(2),16):parseInt(r.substr(1));isNaN(n)||n<-32768||n>65535||(t=String.fromCharCode(n))}else t=i[r];return t||e})):""},e.decode=function(r){return(new e).decode(r)},e.prototype.encode=function(e){if(!e||!e.length)return"";for(var r=e.length,t="",n=0;n<r;){var o=a[e.charCodeAt(n)];t+=o?"&"+o+";":e.charAt(n),n++}return t},e.encode=function(r){return(new e).encode(r)},e.prototype.encodeNonUTF=function(e){if(!e||!e.length)return"";for(var r=e.length,t="",n=0;n<r;){var o=e.charCodeAt(n),i=a[o];t+=i?"&"+i+";":o<32||o>126?"&#"+o+";":e.charAt(n),n++}return t},e.encodeNonUTF=function(r){return(new e).encodeNonUTF(r)},e.prototype.encodeNonASCII=function(e){if(!e||!e.length)return"";for(var r=e.length,t="",n=0;n<r;){var o=e.charCodeAt(n);o<=255?t+=e[n++]:(t+="&#"+o+";",n++)}return t},e.encodeNonASCII=function(r){return(new e).encodeNonASCII(r)},e}();r.Html4Entities=s},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=[["Aacute",[193]],["aacute",[225]],["Abreve",[258]],["abreve",[259]],["ac",[8766]],["acd",[8767]],["acE",[8766,819]],["Acirc",[194]],["acirc",[226]],["acute",[180]],["Acy",[1040]],["acy",[1072]],["AElig",[198]],["aelig",[230]],["af",[8289]],["Afr",[120068]],["afr",[120094]],["Agrave",[192]],["agrave",[224]],["alefsym",[8501]],["aleph",[8501]],["Alpha",[913]],["alpha",[945]],["Amacr",[256]],["amacr",[257]],["amalg",[10815]],["amp",[38]],["AMP",[38]],["andand",[10837]],["And",[10835]],["and",[8743]],["andd",[10844]],["andslope",[10840]],["andv",[10842]],["ang",[8736]],["ange",[10660]],["angle",[8736]],["angmsdaa",[10664]],["angmsdab",[10665]],["angmsdac",[10666]],["angmsdad",[10667]],["angmsdae",[10668]],["angmsdaf",[10669]],["angmsdag",[10670]],["angmsdah",[10671]],["angmsd",[8737]],["angrt",[8735]],["angrtvb",[8894]],["angrtvbd",[10653]],["angsph",[8738]],["angst",[197]],["angzarr",[9084]],["Aogon",[260]],["aogon",[261]],["Aopf",[120120]],["aopf",[120146]],["apacir",[10863]],["ap",[8776]],["apE",[10864]],["ape",[8778]],["apid",[8779]],["apos",[39]],["ApplyFunction",[8289]],["approx",[8776]],["approxeq",[8778]],["Aring",[197]],["aring",[229]],["Ascr",[119964]],["ascr",[119990]],["Assign",[8788]],["ast",[42]],["asymp",[8776]],["asympeq",[8781]],["Atilde",[195]],["atilde",[227]],["Auml",[196]],["auml",[228]],["awconint",[8755]],["awint",[10769]],["backcong",[8780]],["backepsilon",[1014]],["backprime",[8245]],["backsim",[8765]],["backsimeq",[8909]],["Backslash",[8726]],["Barv",[10983]],["barvee",[8893]],["barwed",[8965]],["Barwed",[8966]],["barwedge",[8965]],["bbrk",[9141]],["bbrktbrk",[9142]],["bcong",[8780]],["Bcy",[1041]],["bcy",[1073]],["bdquo",[8222]],["becaus",[8757]],["because",[8757]],["Because",[8757]],["bemptyv",[10672]],["bepsi",[1014]],["bernou",[8492]],["Bernoullis",[8492]],["Beta",[914]],["beta",[946]],["beth",[8502]],["between",[8812]],["Bfr",[120069]],["bfr",[120095]],["bigcap",[8898]],["bigcirc",[9711]],["bigcup",[8899]],["bigodot",[10752]],["bigoplus",[10753]],["bigotimes",[10754]],["bigsqcup",[10758]],["bigstar",[9733]],["bigtriangledown",[9661]],["bigtriangleup",[9651]],["biguplus",[10756]],["bigvee",[8897]],["bigwedge",[8896]],["bkarow",[10509]],["blacklozenge",[10731]],["blacksquare",[9642]],["blacktriangle",[9652]],["blacktriangledown",[9662]],["blacktriangleleft",[9666]],["blacktriangleright",[9656]],["blank",[9251]],["blk12",[9618]],["blk14",[9617]],["blk34",[9619]],["block",[9608]],["bne",[61,8421]],["bnequiv",[8801,8421]],["bNot",[10989]],["bnot",[8976]],["Bopf",[120121]],["bopf",[120147]],["bot",[8869]],["bottom",[8869]],["bowtie",[8904]],["boxbox",[10697]],["boxdl",[9488]],["boxdL",[9557]],["boxDl",[9558]],["boxDL",[9559]],["boxdr",[9484]],["boxdR",[9554]],["boxDr",[9555]],["boxDR",[9556]],["boxh",[9472]],["boxH",[9552]],["boxhd",[9516]],["boxHd",[9572]],["boxhD",[9573]],["boxHD",[9574]],["boxhu",[9524]],["boxHu",[9575]],["boxhU",[9576]],["boxHU",[9577]],["boxminus",[8863]],["boxplus",[8862]],["boxtimes",[8864]],["boxul",[9496]],["boxuL",[9563]],["boxUl",[9564]],["boxUL",[9565]],["boxur",[9492]],["boxuR",[9560]],["boxUr",[9561]],["boxUR",[9562]],["boxv",[9474]],["boxV",[9553]],["boxvh",[9532]],["boxvH",[9578]],["boxVh",[9579]],["boxVH",[9580]],["boxvl",[9508]],["boxvL",[9569]],["boxVl",[9570]],["boxVL",[9571]],["boxvr",[9500]],["boxvR",[9566]],["boxVr",[9567]],["boxVR",[9568]],["bprime",[8245]],["breve",[728]],["Breve",[728]],["brvbar",[166]],["bscr",[119991]],["Bscr",[8492]],["bsemi",[8271]],["bsim",[8765]],["bsime",[8909]],["bsolb",[10693]],["bsol",[92]],["bsolhsub",[10184]],["bull",[8226]],["bullet",[8226]],["bump",[8782]],["bumpE",[10926]],["bumpe",[8783]],["Bumpeq",[8782]],["bumpeq",[8783]],["Cacute",[262]],["cacute",[263]],["capand",[10820]],["capbrcup",[10825]],["capcap",[10827]],["cap",[8745]],["Cap",[8914]],["capcup",[10823]],["capdot",[10816]],["CapitalDifferentialD",[8517]],["caps",[8745,65024]],["caret",[8257]],["caron",[711]],["Cayleys",[8493]],["ccaps",[10829]],["Ccaron",[268]],["ccaron",[269]],["Ccedil",[199]],["ccedil",[231]],["Ccirc",[264]],["ccirc",[265]],["Cconint",[8752]],["ccups",[10828]],["ccupssm",[10832]],["Cdot",[266]],["cdot",[267]],["cedil",[184]],["Cedilla",[184]],["cemptyv",[10674]],["cent",[162]],["centerdot",[183]],["CenterDot",[183]],["cfr",[120096]],["Cfr",[8493]],["CHcy",[1063]],["chcy",[1095]],["check",[10003]],["checkmark",[10003]],["Chi",[935]],["chi",[967]],["circ",[710]],["circeq",[8791]],["circlearrowleft",[8634]],["circlearrowright",[8635]],["circledast",[8859]],["circledcirc",[8858]],["circleddash",[8861]],["CircleDot",[8857]],["circledR",[174]],["circledS",[9416]],["CircleMinus",[8854]],["CirclePlus",[8853]],["CircleTimes",[8855]],["cir",[9675]],["cirE",[10691]],["cire",[8791]],["cirfnint",[10768]],["cirmid",[10991]],["cirscir",[10690]],["ClockwiseContourIntegral",[8754]],["clubs",[9827]],["clubsuit",[9827]],["colon",[58]],["Colon",[8759]],["Colone",[10868]],["colone",[8788]],["coloneq",[8788]],["comma",[44]],["commat",[64]],["comp",[8705]],["compfn",[8728]],["complement",[8705]],["complexes",[8450]],["cong",[8773]],["congdot",[10861]],["Congruent",[8801]],["conint",[8750]],["Conint",[8751]],["ContourIntegral",[8750]],["copf",[120148]],["Copf",[8450]],["coprod",[8720]],["Coproduct",[8720]],["copy",[169]],["COPY",[169]],["copysr",[8471]],["CounterClockwiseContourIntegral",[8755]],["crarr",[8629]],["cross",[10007]],["Cross",[10799]],["Cscr",[119966]],["cscr",[119992]],["csub",[10959]],["csube",[10961]],["csup",[10960]],["csupe",[10962]],["ctdot",[8943]],["cudarrl",[10552]],["cudarrr",[10549]],["cuepr",[8926]],["cuesc",[8927]],["cularr",[8630]],["cularrp",[10557]],["cupbrcap",[10824]],["cupcap",[10822]],["CupCap",[8781]],["cup",[8746]],["Cup",[8915]],["cupcup",[10826]],["cupdot",[8845]],["cupor",[10821]],["cups",[8746,65024]],["curarr",[8631]],["curarrm",[10556]],["curlyeqprec",[8926]],["curlyeqsucc",[8927]],["curlyvee",[8910]],["curlywedge",[8911]],["curren",[164]],["curvearrowleft",[8630]],["curvearrowright",[8631]],["cuvee",[8910]],["cuwed",[8911]],["cwconint",[8754]],["cwint",[8753]],["cylcty",[9005]],["dagger",[8224]],["Dagger",[8225]],["daleth",[8504]],["darr",[8595]],["Darr",[8609]],["dArr",[8659]],["dash",[8208]],["Dashv",[10980]],["dashv",[8867]],["dbkarow",[10511]],["dblac",[733]],["Dcaron",[270]],["dcaron",[271]],["Dcy",[1044]],["dcy",[1076]],["ddagger",[8225]],["ddarr",[8650]],["DD",[8517]],["dd",[8518]],["DDotrahd",[10513]],["ddotseq",[10871]],["deg",[176]],["Del",[8711]],["Delta",[916]],["delta",[948]],["demptyv",[10673]],["dfisht",[10623]],["Dfr",[120071]],["dfr",[120097]],["dHar",[10597]],["dharl",[8643]],["dharr",[8642]],["DiacriticalAcute",[180]],["DiacriticalDot",[729]],["DiacriticalDoubleAcute",[733]],["DiacriticalGrave",[96]],["DiacriticalTilde",[732]],["diam",[8900]],["diamond",[8900]],["Diamond",[8900]],["diamondsuit",[9830]],["diams",[9830]],["die",[168]],["DifferentialD",[8518]],["digamma",[989]],["disin",[8946]],["div",[247]],["divide",[247]],["divideontimes",[8903]],["divonx",[8903]],["DJcy",[1026]],["djcy",[1106]],["dlcorn",[8990]],["dlcrop",[8973]],["dollar",[36]],["Dopf",[120123]],["dopf",[120149]],["Dot",[168]],["dot",[729]],["DotDot",[8412]],["doteq",[8784]],["doteqdot",[8785]],["DotEqual",[8784]],["dotminus",[8760]],["dotplus",[8724]],["dotsquare",[8865]],["doublebarwedge",[8966]],["DoubleContourIntegral",[8751]],["DoubleDot",[168]],["DoubleDownArrow",[8659]],["DoubleLeftArrow",[8656]],["DoubleLeftRightArrow",[8660]],["DoubleLeftTee",[10980]],["DoubleLongLeftArrow",[10232]],["DoubleLongLeftRightArrow",[10234]],["DoubleLongRightArrow",[10233]],["DoubleRightArrow",[8658]],["DoubleRightTee",[8872]],["DoubleUpArrow",[8657]],["DoubleUpDownArrow",[8661]],["DoubleVerticalBar",[8741]],["DownArrowBar",[10515]],["downarrow",[8595]],["DownArrow",[8595]],["Downarrow",[8659]],["DownArrowUpArrow",[8693]],["DownBreve",[785]],["downdownarrows",[8650]],["downharpoonleft",[8643]],["downharpoonright",[8642]],["DownLeftRightVector",[10576]],["DownLeftTeeVector",[10590]],["DownLeftVectorBar",[10582]],["DownLeftVector",[8637]],["DownRightTeeVector",[10591]],["DownRightVectorBar",[10583]],["DownRightVector",[8641]],["DownTeeArrow",[8615]],["DownTee",[8868]],["drbkarow",[10512]],["drcorn",[8991]],["drcrop",[8972]],["Dscr",[119967]],["dscr",[119993]],["DScy",[1029]],["dscy",[1109]],["dsol",[10742]],["Dstrok",[272]],["dstrok",[273]],["dtdot",[8945]],["dtri",[9663]],["dtrif",[9662]],["duarr",[8693]],["duhar",[10607]],["dwangle",[10662]],["DZcy",[1039]],["dzcy",[1119]],["dzigrarr",[10239]],["Eacute",[201]],["eacute",[233]],["easter",[10862]],["Ecaron",[282]],["ecaron",[283]],["Ecirc",[202]],["ecirc",[234]],["ecir",[8790]],["ecolon",[8789]],["Ecy",[1069]],["ecy",[1101]],["eDDot",[10871]],["Edot",[278]],["edot",[279]],["eDot",[8785]],["ee",[8519]],["efDot",[8786]],["Efr",[120072]],["efr",[120098]],["eg",[10906]],["Egrave",[200]],["egrave",[232]],["egs",[10902]],["egsdot",[10904]],["el",[10905]],["Element",[8712]],["elinters",[9191]],["ell",[8467]],["els",[10901]],["elsdot",[10903]],["Emacr",[274]],["emacr",[275]],["empty",[8709]],["emptyset",[8709]],["EmptySmallSquare",[9723]],["emptyv",[8709]],["EmptyVerySmallSquare",[9643]],["emsp13",[8196]],["emsp14",[8197]],["emsp",[8195]],["ENG",[330]],["eng",[331]],["ensp",[8194]],["Eogon",[280]],["eogon",[281]],["Eopf",[120124]],["eopf",[120150]],["epar",[8917]],["eparsl",[10723]],["eplus",[10865]],["epsi",[949]],["Epsilon",[917]],["epsilon",[949]],["epsiv",[1013]],["eqcirc",[8790]],["eqcolon",[8789]],["eqsim",[8770]],["eqslantgtr",[10902]],["eqslantless",[10901]],["Equal",[10869]],["equals",[61]],["EqualTilde",[8770]],["equest",[8799]],["Equilibrium",[8652]],["equiv",[8801]],["equivDD",[10872]],["eqvparsl",[10725]],["erarr",[10609]],["erDot",[8787]],["escr",[8495]],["Escr",[8496]],["esdot",[8784]],["Esim",[10867]],["esim",[8770]],["Eta",[919]],["eta",[951]],["ETH",[208]],["eth",[240]],["Euml",[203]],["euml",[235]],["euro",[8364]],["excl",[33]],["exist",[8707]],["Exists",[8707]],["expectation",[8496]],["exponentiale",[8519]],["ExponentialE",[8519]],["fallingdotseq",[8786]],["Fcy",[1060]],["fcy",[1092]],["female",[9792]],["ffilig",[64259]],["fflig",[64256]],["ffllig",[64260]],["Ffr",[120073]],["ffr",[120099]],["filig",[64257]],["FilledSmallSquare",[9724]],["FilledVerySmallSquare",[9642]],["fjlig",[102,106]],["flat",[9837]],["fllig",[64258]],["fltns",[9649]],["fnof",[402]],["Fopf",[120125]],["fopf",[120151]],["forall",[8704]],["ForAll",[8704]],["fork",[8916]],["forkv",[10969]],["Fouriertrf",[8497]],["fpartint",[10765]],["frac12",[189]],["frac13",[8531]],["frac14",[188]],["frac15",[8533]],["frac16",[8537]],["frac18",[8539]],["frac23",[8532]],["frac25",[8534]],["frac34",[190]],["frac35",[8535]],["frac38",[8540]],["frac45",[8536]],["frac56",[8538]],["frac58",[8541]],["frac78",[8542]],["frasl",[8260]],["frown",[8994]],["fscr",[119995]],["Fscr",[8497]],["gacute",[501]],["Gamma",[915]],["gamma",[947]],["Gammad",[988]],["gammad",[989]],["gap",[10886]],["Gbreve",[286]],["gbreve",[287]],["Gcedil",[290]],["Gcirc",[284]],["gcirc",[285]],["Gcy",[1043]],["gcy",[1075]],["Gdot",[288]],["gdot",[289]],["ge",[8805]],["gE",[8807]],["gEl",[10892]],["gel",[8923]],["geq",[8805]],["geqq",[8807]],["geqslant",[10878]],["gescc",[10921]],["ges",[10878]],["gesdot",[10880]],["gesdoto",[10882]],["gesdotol",[10884]],["gesl",[8923,65024]],["gesles",[10900]],["Gfr",[120074]],["gfr",[120100]],["gg",[8811]],["Gg",[8921]],["ggg",[8921]],["gimel",[8503]],["GJcy",[1027]],["gjcy",[1107]],["gla",[10917]],["gl",[8823]],["glE",[10898]],["glj",[10916]],["gnap",[10890]],["gnapprox",[10890]],["gne",[10888]],["gnE",[8809]],["gneq",[10888]],["gneqq",[8809]],["gnsim",[8935]],["Gopf",[120126]],["gopf",[120152]],["grave",[96]],["GreaterEqual",[8805]],["GreaterEqualLess",[8923]],["GreaterFullEqual",[8807]],["GreaterGreater",[10914]],["GreaterLess",[8823]],["GreaterSlantEqual",[10878]],["GreaterTilde",[8819]],["Gscr",[119970]],["gscr",[8458]],["gsim",[8819]],["gsime",[10894]],["gsiml",[10896]],["gtcc",[10919]],["gtcir",[10874]],["gt",[62]],["GT",[62]],["Gt",[8811]],["gtdot",[8919]],["gtlPar",[10645]],["gtquest",[10876]],["gtrapprox",[10886]],["gtrarr",[10616]],["gtrdot",[8919]],["gtreqless",[8923]],["gtreqqless",[10892]],["gtrless",[8823]],["gtrsim",[8819]],["gvertneqq",[8809,65024]],["gvnE",[8809,65024]],["Hacek",[711]],["hairsp",[8202]],["half",[189]],["hamilt",[8459]],["HARDcy",[1066]],["hardcy",[1098]],["harrcir",[10568]],["harr",[8596]],["hArr",[8660]],["harrw",[8621]],["Hat",[94]],["hbar",[8463]],["Hcirc",[292]],["hcirc",[293]],["hearts",[9829]],["heartsuit",[9829]],["hellip",[8230]],["hercon",[8889]],["hfr",[120101]],["Hfr",[8460]],["HilbertSpace",[8459]],["hksearow",[10533]],["hkswarow",[10534]],["hoarr",[8703]],["homtht",[8763]],["hookleftarrow",[8617]],["hookrightarrow",[8618]],["hopf",[120153]],["Hopf",[8461]],["horbar",[8213]],["HorizontalLine",[9472]],["hscr",[119997]],["Hscr",[8459]],["hslash",[8463]],["Hstrok",[294]],["hstrok",[295]],["HumpDownHump",[8782]],["HumpEqual",[8783]],["hybull",[8259]],["hyphen",[8208]],["Iacute",[205]],["iacute",[237]],["ic",[8291]],["Icirc",[206]],["icirc",[238]],["Icy",[1048]],["icy",[1080]],["Idot",[304]],["IEcy",[1045]],["iecy",[1077]],["iexcl",[161]],["iff",[8660]],["ifr",[120102]],["Ifr",[8465]],["Igrave",[204]],["igrave",[236]],["ii",[8520]],["iiiint",[10764]],["iiint",[8749]],["iinfin",[10716]],["iiota",[8489]],["IJlig",[306]],["ijlig",[307]],["Imacr",[298]],["imacr",[299]],["image",[8465]],["ImaginaryI",[8520]],["imagline",[8464]],["imagpart",[8465]],["imath",[305]],["Im",[8465]],["imof",[8887]],["imped",[437]],["Implies",[8658]],["incare",[8453]],["in",[8712]],["infin",[8734]],["infintie",[10717]],["inodot",[305]],["intcal",[8890]],["int",[8747]],["Int",[8748]],["integers",[8484]],["Integral",[8747]],["intercal",[8890]],["Intersection",[8898]],["intlarhk",[10775]],["intprod",[10812]],["InvisibleComma",[8291]],["InvisibleTimes",[8290]],["IOcy",[1025]],["iocy",[1105]],["Iogon",[302]],["iogon",[303]],["Iopf",[120128]],["iopf",[120154]],["Iota",[921]],["iota",[953]],["iprod",[10812]],["iquest",[191]],["iscr",[119998]],["Iscr",[8464]],["isin",[8712]],["isindot",[8949]],["isinE",[8953]],["isins",[8948]],["isinsv",[8947]],["isinv",[8712]],["it",[8290]],["Itilde",[296]],["itilde",[297]],["Iukcy",[1030]],["iukcy",[1110]],["Iuml",[207]],["iuml",[239]],["Jcirc",[308]],["jcirc",[309]],["Jcy",[1049]],["jcy",[1081]],["Jfr",[120077]],["jfr",[120103]],["jmath",[567]],["Jopf",[120129]],["jopf",[120155]],["Jscr",[119973]],["jscr",[119999]],["Jsercy",[1032]],["jsercy",[1112]],["Jukcy",[1028]],["jukcy",[1108]],["Kappa",[922]],["kappa",[954]],["kappav",[1008]],["Kcedil",[310]],["kcedil",[311]],["Kcy",[1050]],["kcy",[1082]],["Kfr",[120078]],["kfr",[120104]],["kgreen",[312]],["KHcy",[1061]],["khcy",[1093]],["KJcy",[1036]],["kjcy",[1116]],["Kopf",[120130]],["kopf",[120156]],["Kscr",[119974]],["kscr",[12e4]],["lAarr",[8666]],["Lacute",[313]],["lacute",[314]],["laemptyv",[10676]],["lagran",[8466]],["Lambda",[923]],["lambda",[955]],["lang",[10216]],["Lang",[10218]],["langd",[10641]],["langle",[10216]],["lap",[10885]],["Laplacetrf",[8466]],["laquo",[171]],["larrb",[8676]],["larrbfs",[10527]],["larr",[8592]],["Larr",[8606]],["lArr",[8656]],["larrfs",[10525]],["larrhk",[8617]],["larrlp",[8619]],["larrpl",[10553]],["larrsim",[10611]],["larrtl",[8610]],["latail",[10521]],["lAtail",[10523]],["lat",[10923]],["late",[10925]],["lates",[10925,65024]],["lbarr",[10508]],["lBarr",[10510]],["lbbrk",[10098]],["lbrace",[123]],["lbrack",[91]],["lbrke",[10635]],["lbrksld",[10639]],["lbrkslu",[10637]],["Lcaron",[317]],["lcaron",[318]],["Lcedil",[315]],["lcedil",[316]],["lceil",[8968]],["lcub",[123]],["Lcy",[1051]],["lcy",[1083]],["ldca",[10550]],["ldquo",[8220]],["ldquor",[8222]],["ldrdhar",[10599]],["ldrushar",[10571]],["ldsh",[8626]],["le",[8804]],["lE",[8806]],["LeftAngleBracket",[10216]],["LeftArrowBar",[8676]],["leftarrow",[8592]],["LeftArrow",[8592]],["Leftarrow",[8656]],["LeftArrowRightArrow",[8646]],["leftarrowtail",[8610]],["LeftCeiling",[8968]],["LeftDoubleBracket",[10214]],["LeftDownTeeVector",[10593]],["LeftDownVectorBar",[10585]],["LeftDownVector",[8643]],["LeftFloor",[8970]],["leftharpoondown",[8637]],["leftharpoonup",[8636]],["leftleftarrows",[8647]],["leftrightarrow",[8596]],["LeftRightArrow",[8596]],["Leftrightarrow",[8660]],["leftrightarrows",[8646]],["leftrightharpoons",[8651]],["leftrightsquigarrow",[8621]],["LeftRightVector",[10574]],["LeftTeeArrow",[8612]],["LeftTee",[8867]],["LeftTeeVector",[10586]],["leftthreetimes",[8907]],["LeftTriangleBar",[10703]],["LeftTriangle",[8882]],["LeftTriangleEqual",[8884]],["LeftUpDownVector",[10577]],["LeftUpTeeVector",[10592]],["LeftUpVectorBar",[10584]],["LeftUpVector",[8639]],["LeftVectorBar",[10578]],["LeftVector",[8636]],["lEg",[10891]],["leg",[8922]],["leq",[8804]],["leqq",[8806]],["leqslant",[10877]],["lescc",[10920]],["les",[10877]],["lesdot",[10879]],["lesdoto",[10881]],["lesdotor",[10883]],["lesg",[8922,65024]],["lesges",[10899]],["lessapprox",[10885]],["lessdot",[8918]],["lesseqgtr",[8922]],["lesseqqgtr",[10891]],["LessEqualGreater",[8922]],["LessFullEqual",[8806]],["LessGreater",[8822]],["lessgtr",[8822]],["LessLess",[10913]],["lesssim",[8818]],["LessSlantEqual",[10877]],["LessTilde",[8818]],["lfisht",[10620]],["lfloor",[8970]],["Lfr",[120079]],["lfr",[120105]],["lg",[8822]],["lgE",[10897]],["lHar",[10594]],["lhard",[8637]],["lharu",[8636]],["lharul",[10602]],["lhblk",[9604]],["LJcy",[1033]],["ljcy",[1113]],["llarr",[8647]],["ll",[8810]],["Ll",[8920]],["llcorner",[8990]],["Lleftarrow",[8666]],["llhard",[10603]],["lltri",[9722]],["Lmidot",[319]],["lmidot",[320]],["lmoustache",[9136]],["lmoust",[9136]],["lnap",[10889]],["lnapprox",[10889]],["lne",[10887]],["lnE",[8808]],["lneq",[10887]],["lneqq",[8808]],["lnsim",[8934]],["loang",[10220]],["loarr",[8701]],["lobrk",[10214]],["longleftarrow",[10229]],["LongLeftArrow",[10229]],["Longleftarrow",[10232]],["longleftrightarrow",[10231]],["LongLeftRightArrow",[10231]],["Longleftrightarrow",[10234]],["longmapsto",[10236]],["longrightarrow",[10230]],["LongRightArrow",[10230]],["Longrightarrow",[10233]],["looparrowleft",[8619]],["looparrowright",[8620]],["lopar",[10629]],["Lopf",[120131]],["lopf",[120157]],["loplus",[10797]],["lotimes",[10804]],["lowast",[8727]],["lowbar",[95]],["LowerLeftArrow",[8601]],["LowerRightArrow",[8600]],["loz",[9674]],["lozenge",[9674]],["lozf",[10731]],["lpar",[40]],["lparlt",[10643]],["lrarr",[8646]],["lrcorner",[8991]],["lrhar",[8651]],["lrhard",[10605]],["lrm",[8206]],["lrtri",[8895]],["lsaquo",[8249]],["lscr",[120001]],["Lscr",[8466]],["lsh",[8624]],["Lsh",[8624]],["lsim",[8818]],["lsime",[10893]],["lsimg",[10895]],["lsqb",[91]],["lsquo",[8216]],["lsquor",[8218]],["Lstrok",[321]],["lstrok",[322]],["ltcc",[10918]],["ltcir",[10873]],["lt",[60]],["LT",[60]],["Lt",[8810]],["ltdot",[8918]],["lthree",[8907]],["ltimes",[8905]],["ltlarr",[10614]],["ltquest",[10875]],["ltri",[9667]],["ltrie",[8884]],["ltrif",[9666]],["ltrPar",[10646]],["lurdshar",[10570]],["luruhar",[10598]],["lvertneqq",[8808,65024]],["lvnE",[8808,65024]],["macr",[175]],["male",[9794]],["malt",[10016]],["maltese",[10016]],["Map",[10501]],["map",[8614]],["mapsto",[8614]],["mapstodown",[8615]],["mapstoleft",[8612]],["mapstoup",[8613]],["marker",[9646]],["mcomma",[10793]],["Mcy",[1052]],["mcy",[1084]],["mdash",[8212]],["mDDot",[8762]],["measuredangle",[8737]],["MediumSpace",[8287]],["Mellintrf",[8499]],["Mfr",[120080]],["mfr",[120106]],["mho",[8487]],["micro",[181]],["midast",[42]],["midcir",[10992]],["mid",[8739]],["middot",[183]],["minusb",[8863]],["minus",[8722]],["minusd",[8760]],["minusdu",[10794]],["MinusPlus",[8723]],["mlcp",[10971]],["mldr",[8230]],["mnplus",[8723]],["models",[8871]],["Mopf",[120132]],["mopf",[120158]],["mp",[8723]],["mscr",[120002]],["Mscr",[8499]],["mstpos",[8766]],["Mu",[924]],["mu",[956]],["multimap",[8888]],["mumap",[8888]],["nabla",[8711]],["Nacute",[323]],["nacute",[324]],["nang",[8736,8402]],["nap",[8777]],["napE",[10864,824]],["napid",[8779,824]],["napos",[329]],["napprox",[8777]],["natural",[9838]],["naturals",[8469]],["natur",[9838]],["nbsp",[160]],["nbump",[8782,824]],["nbumpe",[8783,824]],["ncap",[10819]],["Ncaron",[327]],["ncaron",[328]],["Ncedil",[325]],["ncedil",[326]],["ncong",[8775]],["ncongdot",[10861,824]],["ncup",[10818]],["Ncy",[1053]],["ncy",[1085]],["ndash",[8211]],["nearhk",[10532]],["nearr",[8599]],["neArr",[8663]],["nearrow",[8599]],["ne",[8800]],["nedot",[8784,824]],["NegativeMediumSpace",[8203]],["NegativeThickSpace",[8203]],["NegativeThinSpace",[8203]],["NegativeVeryThinSpace",[8203]],["nequiv",[8802]],["nesear",[10536]],["nesim",[8770,824]],["NestedGreaterGreater",[8811]],["NestedLessLess",[8810]],["nexist",[8708]],["nexists",[8708]],["Nfr",[120081]],["nfr",[120107]],["ngE",[8807,824]],["nge",[8817]],["ngeq",[8817]],["ngeqq",[8807,824]],["ngeqslant",[10878,824]],["nges",[10878,824]],["nGg",[8921,824]],["ngsim",[8821]],["nGt",[8811,8402]],["ngt",[8815]],["ngtr",[8815]],["nGtv",[8811,824]],["nharr",[8622]],["nhArr",[8654]],["nhpar",[10994]],["ni",[8715]],["nis",[8956]],["nisd",[8954]],["niv",[8715]],["NJcy",[1034]],["njcy",[1114]],["nlarr",[8602]],["nlArr",[8653]],["nldr",[8229]],["nlE",[8806,824]],["nle",[8816]],["nleftarrow",[8602]],["nLeftarrow",[8653]],["nleftrightarrow",[8622]],["nLeftrightarrow",[8654]],["nleq",[8816]],["nleqq",[8806,824]],["nleqslant",[10877,824]],["nles",[10877,824]],["nless",[8814]],["nLl",[8920,824]],["nlsim",[8820]],["nLt",[8810,8402]],["nlt",[8814]],["nltri",[8938]],["nltrie",[8940]],["nLtv",[8810,824]],["nmid",[8740]],["NoBreak",[8288]],["NonBreakingSpace",[160]],["nopf",[120159]],["Nopf",[8469]],["Not",[10988]],["not",[172]],["NotCongruent",[8802]],["NotCupCap",[8813]],["NotDoubleVerticalBar",[8742]],["NotElement",[8713]],["NotEqual",[8800]],["NotEqualTilde",[8770,824]],["NotExists",[8708]],["NotGreater",[8815]],["NotGreaterEqual",[8817]],["NotGreaterFullEqual",[8807,824]],["NotGreaterGreater",[8811,824]],["NotGreaterLess",[8825]],["NotGreaterSlantEqual",[10878,824]],["NotGreaterTilde",[8821]],["NotHumpDownHump",[8782,824]],["NotHumpEqual",[8783,824]],["notin",[8713]],["notindot",[8949,824]],["notinE",[8953,824]],["notinva",[8713]],["notinvb",[8951]],["notinvc",[8950]],["NotLeftTriangleBar",[10703,824]],["NotLeftTriangle",[8938]],["NotLeftTriangleEqual",[8940]],["NotLess",[8814]],["NotLessEqual",[8816]],["NotLessGreater",[8824]],["NotLessLess",[8810,824]],["NotLessSlantEqual",[10877,824]],["NotLessTilde",[8820]],["NotNestedGreaterGreater",[10914,824]],["NotNestedLessLess",[10913,824]],["notni",[8716]],["notniva",[8716]],["notnivb",[8958]],["notnivc",[8957]],["NotPrecedes",[8832]],["NotPrecedesEqual",[10927,824]],["NotPrecedesSlantEqual",[8928]],["NotReverseElement",[8716]],["NotRightTriangleBar",[10704,824]],["NotRightTriangle",[8939]],["NotRightTriangleEqual",[8941]],["NotSquareSubset",[8847,824]],["NotSquareSubsetEqual",[8930]],["NotSquareSuperset",[8848,824]],["NotSquareSupersetEqual",[8931]],["NotSubset",[8834,8402]],["NotSubsetEqual",[8840]],["NotSucceeds",[8833]],["NotSucceedsEqual",[10928,824]],["NotSucceedsSlantEqual",[8929]],["NotSucceedsTilde",[8831,824]],["NotSuperset",[8835,8402]],["NotSupersetEqual",[8841]],["NotTilde",[8769]],["NotTildeEqual",[8772]],["NotTildeFullEqual",[8775]],["NotTildeTilde",[8777]],["NotVerticalBar",[8740]],["nparallel",[8742]],["npar",[8742]],["nparsl",[11005,8421]],["npart",[8706,824]],["npolint",[10772]],["npr",[8832]],["nprcue",[8928]],["nprec",[8832]],["npreceq",[10927,824]],["npre",[10927,824]],["nrarrc",[10547,824]],["nrarr",[8603]],["nrArr",[8655]],["nrarrw",[8605,824]],["nrightarrow",[8603]],["nRightarrow",[8655]],["nrtri",[8939]],["nrtrie",[8941]],["nsc",[8833]],["nsccue",[8929]],["nsce",[10928,824]],["Nscr",[119977]],["nscr",[120003]],["nshortmid",[8740]],["nshortparallel",[8742]],["nsim",[8769]],["nsime",[8772]],["nsimeq",[8772]],["nsmid",[8740]],["nspar",[8742]],["nsqsube",[8930]],["nsqsupe",[8931]],["nsub",[8836]],["nsubE",[10949,824]],["nsube",[8840]],["nsubset",[8834,8402]],["nsubseteq",[8840]],["nsubseteqq",[10949,824]],["nsucc",[8833]],["nsucceq",[10928,824]],["nsup",[8837]],["nsupE",[10950,824]],["nsupe",[8841]],["nsupset",[8835,8402]],["nsupseteq",[8841]],["nsupseteqq",[10950,824]],["ntgl",[8825]],["Ntilde",[209]],["ntilde",[241]],["ntlg",[8824]],["ntriangleleft",[8938]],["ntrianglelefteq",[8940]],["ntriangleright",[8939]],["ntrianglerighteq",[8941]],["Nu",[925]],["nu",[957]],["num",[35]],["numero",[8470]],["numsp",[8199]],["nvap",[8781,8402]],["nvdash",[8876]],["nvDash",[8877]],["nVdash",[8878]],["nVDash",[8879]],["nvge",[8805,8402]],["nvgt",[62,8402]],["nvHarr",[10500]],["nvinfin",[10718]],["nvlArr",[10498]],["nvle",[8804,8402]],["nvlt",[60,8402]],["nvltrie",[8884,8402]],["nvrArr",[10499]],["nvrtrie",[8885,8402]],["nvsim",[8764,8402]],["nwarhk",[10531]],["nwarr",[8598]],["nwArr",[8662]],["nwarrow",[8598]],["nwnear",[10535]],["Oacute",[211]],["oacute",[243]],["oast",[8859]],["Ocirc",[212]],["ocirc",[244]],["ocir",[8858]],["Ocy",[1054]],["ocy",[1086]],["odash",[8861]],["Odblac",[336]],["odblac",[337]],["odiv",[10808]],["odot",[8857]],["odsold",[10684]],["OElig",[338]],["oelig",[339]],["ofcir",[10687]],["Ofr",[120082]],["ofr",[120108]],["ogon",[731]],["Ograve",[210]],["ograve",[242]],["ogt",[10689]],["ohbar",[10677]],["ohm",[937]],["oint",[8750]],["olarr",[8634]],["olcir",[10686]],["olcross",[10683]],["oline",[8254]],["olt",[10688]],["Omacr",[332]],["omacr",[333]],["Omega",[937]],["omega",[969]],["Omicron",[927]],["omicron",[959]],["omid",[10678]],["ominus",[8854]],["Oopf",[120134]],["oopf",[120160]],["opar",[10679]],["OpenCurlyDoubleQuote",[8220]],["OpenCurlyQuote",[8216]],["operp",[10681]],["oplus",[8853]],["orarr",[8635]],["Or",[10836]],["or",[8744]],["ord",[10845]],["order",[8500]],["orderof",[8500]],["ordf",[170]],["ordm",[186]],["origof",[8886]],["oror",[10838]],["orslope",[10839]],["orv",[10843]],["oS",[9416]],["Oscr",[119978]],["oscr",[8500]],["Oslash",[216]],["oslash",[248]],["osol",[8856]],["Otilde",[213]],["otilde",[245]],["otimesas",[10806]],["Otimes",[10807]],["otimes",[8855]],["Ouml",[214]],["ouml",[246]],["ovbar",[9021]],["OverBar",[8254]],["OverBrace",[9182]],["OverBracket",[9140]],["OverParenthesis",[9180]],["para",[182]],["parallel",[8741]],["par",[8741]],["parsim",[10995]],["parsl",[11005]],["part",[8706]],["PartialD",[8706]],["Pcy",[1055]],["pcy",[1087]],["percnt",[37]],["period",[46]],["permil",[8240]],["perp",[8869]],["pertenk",[8241]],["Pfr",[120083]],["pfr",[120109]],["Phi",[934]],["phi",[966]],["phiv",[981]],["phmmat",[8499]],["phone",[9742]],["Pi",[928]],["pi",[960]],["pitchfork",[8916]],["piv",[982]],["planck",[8463]],["planckh",[8462]],["plankv",[8463]],["plusacir",[10787]],["plusb",[8862]],["pluscir",[10786]],["plus",[43]],["plusdo",[8724]],["plusdu",[10789]],["pluse",[10866]],["PlusMinus",[177]],["plusmn",[177]],["plussim",[10790]],["plustwo",[10791]],["pm",[177]],["Poincareplane",[8460]],["pointint",[10773]],["popf",[120161]],["Popf",[8473]],["pound",[163]],["prap",[10935]],["Pr",[10939]],["pr",[8826]],["prcue",[8828]],["precapprox",[10935]],["prec",[8826]],["preccurlyeq",[8828]],["Precedes",[8826]],["PrecedesEqual",[10927]],["PrecedesSlantEqual",[8828]],["PrecedesTilde",[8830]],["preceq",[10927]],["precnapprox",[10937]],["precneqq",[10933]],["precnsim",[8936]],["pre",[10927]],["prE",[10931]],["precsim",[8830]],["prime",[8242]],["Prime",[8243]],["primes",[8473]],["prnap",[10937]],["prnE",[10933]],["prnsim",[8936]],["prod",[8719]],["Product",[8719]],["profalar",[9006]],["profline",[8978]],["profsurf",[8979]],["prop",[8733]],["Proportional",[8733]],["Proportion",[8759]],["propto",[8733]],["prsim",[8830]],["prurel",[8880]],["Pscr",[119979]],["pscr",[120005]],["Psi",[936]],["psi",[968]],["puncsp",[8200]],["Qfr",[120084]],["qfr",[120110]],["qint",[10764]],["qopf",[120162]],["Qopf",[8474]],["qprime",[8279]],["Qscr",[119980]],["qscr",[120006]],["quaternions",[8461]],["quatint",[10774]],["quest",[63]],["questeq",[8799]],["quot",[34]],["QUOT",[34]],["rAarr",[8667]],["race",[8765,817]],["Racute",[340]],["racute",[341]],["radic",[8730]],["raemptyv",[10675]],["rang",[10217]],["Rang",[10219]],["rangd",[10642]],["range",[10661]],["rangle",[10217]],["raquo",[187]],["rarrap",[10613]],["rarrb",[8677]],["rarrbfs",[10528]],["rarrc",[10547]],["rarr",[8594]],["Rarr",[8608]],["rArr",[8658]],["rarrfs",[10526]],["rarrhk",[8618]],["rarrlp",[8620]],["rarrpl",[10565]],["rarrsim",[10612]],["Rarrtl",[10518]],["rarrtl",[8611]],["rarrw",[8605]],["ratail",[10522]],["rAtail",[10524]],["ratio",[8758]],["rationals",[8474]],["rbarr",[10509]],["rBarr",[10511]],["RBarr",[10512]],["rbbrk",[10099]],["rbrace",[125]],["rbrack",[93]],["rbrke",[10636]],["rbrksld",[10638]],["rbrkslu",[10640]],["Rcaron",[344]],["rcaron",[345]],["Rcedil",[342]],["rcedil",[343]],["rceil",[8969]],["rcub",[125]],["Rcy",[1056]],["rcy",[1088]],["rdca",[10551]],["rdldhar",[10601]],["rdquo",[8221]],["rdquor",[8221]],["CloseCurlyDoubleQuote",[8221]],["rdsh",[8627]],["real",[8476]],["realine",[8475]],["realpart",[8476]],["reals",[8477]],["Re",[8476]],["rect",[9645]],["reg",[174]],["REG",[174]],["ReverseElement",[8715]],["ReverseEquilibrium",[8651]],["ReverseUpEquilibrium",[10607]],["rfisht",[10621]],["rfloor",[8971]],["rfr",[120111]],["Rfr",[8476]],["rHar",[10596]],["rhard",[8641]],["rharu",[8640]],["rharul",[10604]],["Rho",[929]],["rho",[961]],["rhov",[1009]],["RightAngleBracket",[10217]],["RightArrowBar",[8677]],["rightarrow",[8594]],["RightArrow",[8594]],["Rightarrow",[8658]],["RightArrowLeftArrow",[8644]],["rightarrowtail",[8611]],["RightCeiling",[8969]],["RightDoubleBracket",[10215]],["RightDownTeeVector",[10589]],["RightDownVectorBar",[10581]],["RightDownVector",[8642]],["RightFloor",[8971]],["rightharpoondown",[8641]],["rightharpoonup",[8640]],["rightleftarrows",[8644]],["rightleftharpoons",[8652]],["rightrightarrows",[8649]],["rightsquigarrow",[8605]],["RightTeeArrow",[8614]],["RightTee",[8866]],["RightTeeVector",[10587]],["rightthreetimes",[8908]],["RightTriangleBar",[10704]],["RightTriangle",[8883]],["RightTriangleEqual",[8885]],["RightUpDownVector",[10575]],["RightUpTeeVector",[10588]],["RightUpVectorBar",[10580]],["RightUpVector",[8638]],["RightVectorBar",[10579]],["RightVector",[8640]],["ring",[730]],["risingdotseq",[8787]],["rlarr",[8644]],["rlhar",[8652]],["rlm",[8207]],["rmoustache",[9137]],["rmoust",[9137]],["rnmid",[10990]],["roang",[10221]],["roarr",[8702]],["robrk",[10215]],["ropar",[10630]],["ropf",[120163]],["Ropf",[8477]],["roplus",[10798]],["rotimes",[10805]],["RoundImplies",[10608]],["rpar",[41]],["rpargt",[10644]],["rppolint",[10770]],["rrarr",[8649]],["Rrightarrow",[8667]],["rsaquo",[8250]],["rscr",[120007]],["Rscr",[8475]],["rsh",[8625]],["Rsh",[8625]],["rsqb",[93]],["rsquo",[8217]],["rsquor",[8217]],["CloseCurlyQuote",[8217]],["rthree",[8908]],["rtimes",[8906]],["rtri",[9657]],["rtrie",[8885]],["rtrif",[9656]],["rtriltri",[10702]],["RuleDelayed",[10740]],["ruluhar",[10600]],["rx",[8478]],["Sacute",[346]],["sacute",[347]],["sbquo",[8218]],["scap",[10936]],["Scaron",[352]],["scaron",[353]],["Sc",[10940]],["sc",[8827]],["sccue",[8829]],["sce",[10928]],["scE",[10932]],["Scedil",[350]],["scedil",[351]],["Scirc",[348]],["scirc",[349]],["scnap",[10938]],["scnE",[10934]],["scnsim",[8937]],["scpolint",[10771]],["scsim",[8831]],["Scy",[1057]],["scy",[1089]],["sdotb",[8865]],["sdot",[8901]],["sdote",[10854]],["searhk",[10533]],["searr",[8600]],["seArr",[8664]],["searrow",[8600]],["sect",[167]],["semi",[59]],["seswar",[10537]],["setminus",[8726]],["setmn",[8726]],["sext",[10038]],["Sfr",[120086]],["sfr",[120112]],["sfrown",[8994]],["sharp",[9839]],["SHCHcy",[1065]],["shchcy",[1097]],["SHcy",[1064]],["shcy",[1096]],["ShortDownArrow",[8595]],["ShortLeftArrow",[8592]],["shortmid",[8739]],["shortparallel",[8741]],["ShortRightArrow",[8594]],["ShortUpArrow",[8593]],["shy",[173]],["Sigma",[931]],["sigma",[963]],["sigmaf",[962]],["sigmav",[962]],["sim",[8764]],["simdot",[10858]],["sime",[8771]],["simeq",[8771]],["simg",[10910]],["simgE",[10912]],["siml",[10909]],["simlE",[10911]],["simne",[8774]],["simplus",[10788]],["simrarr",[10610]],["slarr",[8592]],["SmallCircle",[8728]],["smallsetminus",[8726]],["smashp",[10803]],["smeparsl",[10724]],["smid",[8739]],["smile",[8995]],["smt",[10922]],["smte",[10924]],["smtes",[10924,65024]],["SOFTcy",[1068]],["softcy",[1100]],["solbar",[9023]],["solb",[10692]],["sol",[47]],["Sopf",[120138]],["sopf",[120164]],["spades",[9824]],["spadesuit",[9824]],["spar",[8741]],["sqcap",[8851]],["sqcaps",[8851,65024]],["sqcup",[8852]],["sqcups",[8852,65024]],["Sqrt",[8730]],["sqsub",[8847]],["sqsube",[8849]],["sqsubset",[8847]],["sqsubseteq",[8849]],["sqsup",[8848]],["sqsupe",[8850]],["sqsupset",[8848]],["sqsupseteq",[8850]],["square",[9633]],["Square",[9633]],["SquareIntersection",[8851]],["SquareSubset",[8847]],["SquareSubsetEqual",[8849]],["SquareSuperset",[8848]],["SquareSupersetEqual",[8850]],["SquareUnion",[8852]],["squarf",[9642]],["squ",[9633]],["squf",[9642]],["srarr",[8594]],["Sscr",[119982]],["sscr",[120008]],["ssetmn",[8726]],["ssmile",[8995]],["sstarf",[8902]],["Star",[8902]],["star",[9734]],["starf",[9733]],["straightepsilon",[1013]],["straightphi",[981]],["strns",[175]],["sub",[8834]],["Sub",[8912]],["subdot",[10941]],["subE",[10949]],["sube",[8838]],["subedot",[10947]],["submult",[10945]],["subnE",[10955]],["subne",[8842]],["subplus",[10943]],["subrarr",[10617]],["subset",[8834]],["Subset",[8912]],["subseteq",[8838]],["subseteqq",[10949]],["SubsetEqual",[8838]],["subsetneq",[8842]],["subsetneqq",[10955]],["subsim",[10951]],["subsub",[10965]],["subsup",[10963]],["succapprox",[10936]],["succ",[8827]],["succcurlyeq",[8829]],["Succeeds",[8827]],["SucceedsEqual",[10928]],["SucceedsSlantEqual",[8829]],["SucceedsTilde",[8831]],["succeq",[10928]],["succnapprox",[10938]],["succneqq",[10934]],["succnsim",[8937]],["succsim",[8831]],["SuchThat",[8715]],["sum",[8721]],["Sum",[8721]],["sung",[9834]],["sup1",[185]],["sup2",[178]],["sup3",[179]],["sup",[8835]],["Sup",[8913]],["supdot",[10942]],["supdsub",[10968]],["supE",[10950]],["supe",[8839]],["supedot",[10948]],["Superset",[8835]],["SupersetEqual",[8839]],["suphsol",[10185]],["suphsub",[10967]],["suplarr",[10619]],["supmult",[10946]],["supnE",[10956]],["supne",[8843]],["supplus",[10944]],["supset",[8835]],["Supset",[8913]],["supseteq",[8839]],["supseteqq",[10950]],["supsetneq",[8843]],["supsetneqq",[10956]],["supsim",[10952]],["supsub",[10964]],["supsup",[10966]],["swarhk",[10534]],["swarr",[8601]],["swArr",[8665]],["swarrow",[8601]],["swnwar",[10538]],["szlig",[223]],["Tab",[9]],["target",[8982]],["Tau",[932]],["tau",[964]],["tbrk",[9140]],["Tcaron",[356]],["tcaron",[357]],["Tcedil",[354]],["tcedil",[355]],["Tcy",[1058]],["tcy",[1090]],["tdot",[8411]],["telrec",[8981]],["Tfr",[120087]],["tfr",[120113]],["there4",[8756]],["therefore",[8756]],["Therefore",[8756]],["Theta",[920]],["theta",[952]],["thetasym",[977]],["thetav",[977]],["thickapprox",[8776]],["thicksim",[8764]],["ThickSpace",[8287,8202]],["ThinSpace",[8201]],["thinsp",[8201]],["thkap",[8776]],["thksim",[8764]],["THORN",[222]],["thorn",[254]],["tilde",[732]],["Tilde",[8764]],["TildeEqual",[8771]],["TildeFullEqual",[8773]],["TildeTilde",[8776]],["timesbar",[10801]],["timesb",[8864]],["times",[215]],["timesd",[10800]],["tint",[8749]],["toea",[10536]],["topbot",[9014]],["topcir",[10993]],["top",[8868]],["Topf",[120139]],["topf",[120165]],["topfork",[10970]],["tosa",[10537]],["tprime",[8244]],["trade",[8482]],["TRADE",[8482]],["triangle",[9653]],["triangledown",[9663]],["triangleleft",[9667]],["trianglelefteq",[8884]],["triangleq",[8796]],["triangleright",[9657]],["trianglerighteq",[8885]],["tridot",[9708]],["trie",[8796]],["triminus",[10810]],["TripleDot",[8411]],["triplus",[10809]],["trisb",[10701]],["tritime",[10811]],["trpezium",[9186]],["Tscr",[119983]],["tscr",[120009]],["TScy",[1062]],["tscy",[1094]],["TSHcy",[1035]],["tshcy",[1115]],["Tstrok",[358]],["tstrok",[359]],["twixt",[8812]],["twoheadleftarrow",[8606]],["twoheadrightarrow",[8608]],["Uacute",[218]],["uacute",[250]],["uarr",[8593]],["Uarr",[8607]],["uArr",[8657]],["Uarrocir",[10569]],["Ubrcy",[1038]],["ubrcy",[1118]],["Ubreve",[364]],["ubreve",[365]],["Ucirc",[219]],["ucirc",[251]],["Ucy",[1059]],["ucy",[1091]],["udarr",[8645]],["Udblac",[368]],["udblac",[369]],["udhar",[10606]],["ufisht",[10622]],["Ufr",[120088]],["ufr",[120114]],["Ugrave",[217]],["ugrave",[249]],["uHar",[10595]],["uharl",[8639]],["uharr",[8638]],["uhblk",[9600]],["ulcorn",[8988]],["ulcorner",[8988]],["ulcrop",[8975]],["ultri",[9720]],["Umacr",[362]],["umacr",[363]],["uml",[168]],["UnderBar",[95]],["UnderBrace",[9183]],["UnderBracket",[9141]],["UnderParenthesis",[9181]],["Union",[8899]],["UnionPlus",[8846]],["Uogon",[370]],["uogon",[371]],["Uopf",[120140]],["uopf",[120166]],["UpArrowBar",[10514]],["uparrow",[8593]],["UpArrow",[8593]],["Uparrow",[8657]],["UpArrowDownArrow",[8645]],["updownarrow",[8597]],["UpDownArrow",[8597]],["Updownarrow",[8661]],["UpEquilibrium",[10606]],["upharpoonleft",[8639]],["upharpoonright",[8638]],["uplus",[8846]],["UpperLeftArrow",[8598]],["UpperRightArrow",[8599]],["upsi",[965]],["Upsi",[978]],["upsih",[978]],["Upsilon",[933]],["upsilon",[965]],["UpTeeArrow",[8613]],["UpTee",[8869]],["upuparrows",[8648]],["urcorn",[8989]],["urcorner",[8989]],["urcrop",[8974]],["Uring",[366]],["uring",[367]],["urtri",[9721]],["Uscr",[119984]],["uscr",[120010]],["utdot",[8944]],["Utilde",[360]],["utilde",[361]],["utri",[9653]],["utrif",[9652]],["uuarr",[8648]],["Uuml",[220]],["uuml",[252]],["uwangle",[10663]],["vangrt",[10652]],["varepsilon",[1013]],["varkappa",[1008]],["varnothing",[8709]],["varphi",[981]],["varpi",[982]],["varpropto",[8733]],["varr",[8597]],["vArr",[8661]],["varrho",[1009]],["varsigma",[962]],["varsubsetneq",[8842,65024]],["varsubsetneqq",[10955,65024]],["varsupsetneq",[8843,65024]],["varsupsetneqq",[10956,65024]],["vartheta",[977]],["vartriangleleft",[8882]],["vartriangleright",[8883]],["vBar",[10984]],["Vbar",[10987]],["vBarv",[10985]],["Vcy",[1042]],["vcy",[1074]],["vdash",[8866]],["vDash",[8872]],["Vdash",[8873]],["VDash",[8875]],["Vdashl",[10982]],["veebar",[8891]],["vee",[8744]],["Vee",[8897]],["veeeq",[8794]],["vellip",[8942]],["verbar",[124]],["Verbar",[8214]],["vert",[124]],["Vert",[8214]],["VerticalBar",[8739]],["VerticalLine",[124]],["VerticalSeparator",[10072]],["VerticalTilde",[8768]],["VeryThinSpace",[8202]],["Vfr",[120089]],["vfr",[120115]],["vltri",[8882]],["vnsub",[8834,8402]],["vnsup",[8835,8402]],["Vopf",[120141]],["vopf",[120167]],["vprop",[8733]],["vrtri",[8883]],["Vscr",[119985]],["vscr",[120011]],["vsubnE",[10955,65024]],["vsubne",[8842,65024]],["vsupnE",[10956,65024]],["vsupne",[8843,65024]],["Vvdash",[8874]],["vzigzag",[10650]],["Wcirc",[372]],["wcirc",[373]],["wedbar",[10847]],["wedge",[8743]],["Wedge",[8896]],["wedgeq",[8793]],["weierp",[8472]],["Wfr",[120090]],["wfr",[120116]],["Wopf",[120142]],["wopf",[120168]],["wp",[8472]],["wr",[8768]],["wreath",[8768]],["Wscr",[119986]],["wscr",[120012]],["xcap",[8898]],["xcirc",[9711]],["xcup",[8899]],["xdtri",[9661]],["Xfr",[120091]],["xfr",[120117]],["xharr",[10231]],["xhArr",[10234]],["Xi",[926]],["xi",[958]],["xlarr",[10229]],["xlArr",[10232]],["xmap",[10236]],["xnis",[8955]],["xodot",[10752]],["Xopf",[120143]],["xopf",[120169]],["xoplus",[10753]],["xotime",[10754]],["xrarr",[10230]],["xrArr",[10233]],["Xscr",[119987]],["xscr",[120013]],["xsqcup",[10758]],["xuplus",[10756]],["xutri",[9651]],["xvee",[8897]],["xwedge",[8896]],["Yacute",[221]],["yacute",[253]],["YAcy",[1071]],["yacy",[1103]],["Ycirc",[374]],["ycirc",[375]],["Ycy",[1067]],["ycy",[1099]],["yen",[165]],["Yfr",[120092]],["yfr",[120118]],["YIcy",[1031]],["yicy",[1111]],["Yopf",[120144]],["yopf",[120170]],["Yscr",[119988]],["yscr",[120014]],["YUcy",[1070]],["yucy",[1102]],["yuml",[255]],["Yuml",[376]],["Zacute",[377]],["zacute",[378]],["Zcaron",[381]],["zcaron",[382]],["Zcy",[1047]],["zcy",[1079]],["Zdot",[379]],["zdot",[380]],["zeetrf",[8488]],["ZeroWidthSpace",[8203]],["Zeta",[918]],["zeta",[950]],["zfr",[120119]],["Zfr",[8488]],["ZHcy",[1046]],["zhcy",[1078]],["zigrarr",[8669]],["zopf",[120171]],["Zopf",[8484]],["Zscr",[119989]],["zscr",[120015]],["zwj",[8205]],["zwnj",[8204]]],o={},i={};!function(e,r){var t=n.length;for(;t--;){var o=n[t],i=o[0],a=o[1],s=a[0],l=s<32||s>126||62===s||60===s||38===s||34===s||39===s,c=void 0;if(l&&(c=r[s]=r[s]||{}),a[1]){var u=a[1];e[i]=String.fromCharCode(s)+String.fromCharCode(u),l&&(c[u]=i)}else e[i]=String.fromCharCode(s),l&&(c[""]=i)}}(o,i);var a=function(){function e(){}return e.prototype.decode=function(e){return e&&e.length?e.replace(/&(#?[\w\d]+);?/g,(function(e,r){var t;if("#"===r.charAt(0)){var n="x"===r.charAt(1)?parseInt(r.substr(2).toLowerCase(),16):parseInt(r.substr(1));isNaN(n)||n<-32768||n>65535||(t=String.fromCharCode(n))}else t=o[r];return t||e})):""},e.decode=function(r){return(new e).decode(r)},e.prototype.encode=function(e){if(!e||!e.length)return"";for(var r=e.length,t="",n=0;n<r;){var o=i[e.charCodeAt(n)];if(o){var a=o[e.charCodeAt(n+1)];if(a?n++:a=o[""],a){t+="&"+a+";",n++;continue}}t+=e.charAt(n),n++}return t},e.encode=function(r){return(new e).encode(r)},e.prototype.encodeNonUTF=function(e){if(!e||!e.length)return"";for(var r=e.length,t="",n=0;n<r;){var o=e.charCodeAt(n),a=i[o];if(a){var s=a[e.charCodeAt(n+1)];if(s?n++:s=a[""],s){t+="&"+s+";",n++;continue}}t+=o<32||o>126?"&#"+o+";":e.charAt(n),n++}return t},e.encodeNonUTF=function(r){return(new e).encodeNonUTF(r)},e.prototype.encodeNonASCII=function(e){if(!e||!e.length)return"";for(var r=e.length,t="",n=0;n<r;){var o=e.charCodeAt(n);o<=255?t+=e[n++]:(t+="&#"+o+";",n++)}return t},e.encodeNonASCII=function(r){return(new e).encodeNonASCII(r)},e}();r.Html5Entities=a},function(e,r,t){"use strict";t.r(r);let n=[];const o=["al","adj","assn","Ave","BSc","MSc","Cell","Ch","Co","cc","Corp","Dem","Dept","ed","eg","Eq","Eqs","est","est","etc","Ex","ext","Fig","fig","Figs","figs","i.e","ie","Inc","inc","Jan","Feb","Mar","Apr","Jun","Jul","Aug","Sep","Sept","Oct","Nov","Dec","jr","mi","Miss","Mrs","Mr","Ms","Mol","mt","mts","no","Nos","PhD","MD","BA","MA","MM","pl","pop","pp","Prof","Dr","pt","Ref","Refs","Rep","repr","rev","Sec","Secs","Sgt","Col","Gen","Rep","Sen","Gov","Lt","Maj","Capt","St","Sr","sr","Jr","jr","Rev","Sun","Mon","Tu","Tue","Tues","Wed","Th","Thu","Thur","Thurs","Fri","Sat","trans","Univ","Viz","Vol","vs","v"],i=e=>/^[A-Z][a-z].*/.test(e)||p(e),a=e=>i(e)||/``|"|'/.test(e.substring(0,2)),s=(e,r)=>{if("a.m."===e||"p.m."===e){if("day"===r.replace(/\W+/g,"").slice(-3).toLowerCase())return!0}return!1},l=e=>{const r=e.replace(/[()[\]{}]/g,"").match(/(.\.)*/);return r&&r[0].length>0},c=e=>e.length<=3||i(e),u=(e,r)=>{if(r.length>0){if(e<5&&r[0].length<6&&i(r[0]))return!0;return r.filter(e=>/[A-Z]/.test(e.charAt(0))).length>=3}return!1},p=(e,r)=>(r&&(e=e.slice(r-1,r+2)),!isNaN(e)),g=e=>e.match(/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/),h=e=>e.match(/[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/),d=e=>{let r=0;if((r=e.indexOf("."))>-1||(r=e.indexOf("!"))>-1||(r=e.indexOf("?"))>-1){if(e.charAt(r+1).match(/[a-zA-Z].*/))return[e.slice(0,r+1),e.slice(r+1)]}return!1},f=(e,r)=>r.length>1?r.indexOf(e.slice(-1))>-1:e.slice(-1)===r,m=(e,r)=>e.slice(e.length-r.length)===r;function b(e,r){const t=" @~@ ".trim(),i=new RegExp("\\S",""),b=new RegExp("\\n+|[-#=_+*]{4,}","g"),w=new RegExp("\\S+|\\n","g");if(!e||"string"!=typeof e||!e.length)return[];if(!i.test(e))return[];const v={newline_boundaries:!1,html_boundaries:!1,html_boundaries_tags:["p","div","ul","ol"],sanitize:!1,allowed_tags:!1,preserve_whitespace:!1,abbreviations:null};if("boolean"==typeof r)v.newline_boundaries=!0;else for(let e in r)v[e]=r[e];var q;if(q=v.abbreviations,n=q||o,v.newline_boundaries&&(e=e.replace(b," @~@ ")),v.html_boundaries){const r="(<br\\s*\\/?>|<\\/("+v.html_boundaries_tags.join("|")+")>)",t=new RegExp(r,"g");e=e.replace(t,"$1 @~@ ")}let y,L;(v.sanitize||v.allowed_tags)&&(v.allowed_tags||(v.allowed_tags=[""]),e=(e=>{if(("string"==typeof e||e instanceof String)&&"undefined"!=typeof document){const r=document.createElement("DIV");r.innerHTML=e,e=(r.textContent||"").trim()}else"object"==typeof e&&e.textContent&&(e=(e.textContent||"").trim());return e})(e,v.allowed_tags)),v.preserve_whitespace?(L=e.split(/(<br\s*\/?>|\S+|\n+)/),y=L.filter((e,r)=>r%2)):y=e.trim().match(w);let S=0,x=0,A=[],T=[],E=[];if(!y||!y.length)return[];let C=0;for(let e=0,r=y.length;e<r;e++){if(S++,E.push(y[e]),~y[e].indexOf(",")&&(S=0),"."===(k=y[e])||"!"===k||"?"===k||f(y[e],"?!")||y[e]===t){(v.newline_boundaries||v.html_boundaries)&&y[e]===t&&E.pop(),T.push(E),S=0,E=[];continue}if((f(y[e],'"')||f(y[e],"”"))&&(y[e]=y[e].slice(0,-1),x=2*e+1),f(y[e],".")){if(e+1<r){if(2===y[e].length&&isNaN(y[e].charAt(0)))continue;if(D=y[e],~n.indexOf(D.replace(/\W+/g,"")))continue;if(a(y[e+1])){if(s(y[e],y[e+1]))continue;if(u(S,y.slice(e,6)))continue;if(p(y[e+1])&&c(y[e]))continue}else{if(m(y[e],".."))continue;if(l(y[e]))continue;if(u(S,y.slice(e,5)))continue}}T.push(E),E=[],S=0;continue}if((x=y[e].indexOf("."))>-1){if(p(y[e],x))continue;if(l(y[e]))continue;if(h(y[e])||g(y[e]))continue}const o=d(y[e]);o&&(A=o,E.pop(),E.push(A[0]),T.push(E),v.preserve_whitespace&&(L.splice(2*e+1+C,1,A[0],"",A[1]),C+=2),E=[],S=0,E.push(A[1]))}var D,k;E.length&&T.push(E);const N=[];let R="";T=T.filter((function(e){return e.length>0}));for(let e=0;e<T.length;e++){if(!v.preserve_whitespace||v.newline_boundaries||v.html_boundaries)R=T[e].join(" ");else{let r=2*T[e].length;0===e&&(r+=1),R=L.splice(0,r).join("")}1===T[e].length&&T[e][0].length<4&&T[e][0].indexOf(".")>-1&&T[e+1]&&T[e+1][0].indexOf(".")<0&&(R+=" "+T[e+1].join(" "),e++),N.push(R)}return N}const w="undefined"!=typeof window&&void 0!==window.document,v=["address","article","aside","blockquote","canvas","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","noscript","ol","output","p","pre","section","table","tfoot","ul","video"];class q{constructor(e={}){const r=e.containerId,t=e.content,n=void 0===e.isHTML||e.isHTML;this.originalContent=w&&r?document.getElementById(r).innerHTML:t,this.isHTML=n,this.stripedHTML="",this.tagLocations=[],this.sentences=[],this.highlights=[],n&&this.stripAndStoreHTMLTags()}search(e,r={},t){let n=r.prefix||"",o=r.postfix||"";const i=r.directSearchOptions,a=r.fuzzySearchOptions,s=r.eagerSearchOptions;if(void 0===r.trim||r.trim){const r=q.trim(n,e,o);n=r.prefix,e=r.str,o=r.postfix}let l=-1;return l=this.directSearch(n,e,o,i,t),-1!==l||a&&(l=this.fuzzySearch(n,e,o,a),-1!==l)||w&&s&&(l=this.eagerSearch(n,e,o,s)),l}searchAll(e,r={}){const t=[],n=(e,r,o)=>{const i=this.search(e,r,o);-1!==i&&(t.push(i),n(e,r,i))};return n(e,r),t}highlight(e,r={}){const t=r.containerId;let n=r.content;const o=r.highlightClass||"highlight",i=r.highlightIdPattern||"highlight-",a=r.returnContent;w&&t&&(n=document.getElementById(t).innerHTML);const s=q.createOpenTag(i,e,o),l=this.adjustLoc(i,e,o);let c=q.insert(n,s,l[0]);if(c=q.insert(c,q.createCloseTag(),l[1]+s.length),this.highlights[e].highlighted=!0,!w||!t||a)return c;document.getElementById(t).innerHTML=c}highlightAll(e,r={}){const{containerId:t,content:n,returnContent:o}=r;let i=w&&t?document.getElementById(t).innerHTML:n;for(let t=0;t<e.length;t++){const n=Object.assign({},r);delete n.containerId,n.content=i,n.returnContent=!0,i=this.highlight(e[t],n)}if(!w||!t||o)return i;document.getElementById(t).innerHTML=i}searchAndHighlight(e,r){const t=this.search(e,r.searchOptions);if(-1!==t)return{highlightIndex:t,content:this.highlight(t,r.highlightOptions)}}unhighlight(e,r={}){const t=r.byStringOperation,n=r.containerId;let o=r.content;const i=r.highlightClass||"highlight",a=r.highlightIdPattern||"highlight-",s=r.returnContent;if(this.highlights[e].highlighted=!1,t){w&&n&&(o=document.getElementById(n).innerHTML);let r=o;const t=this.adjustLoc(a,e,i),l=q.getOpenTagLength(a,e,i),c=r.substring(t[0],t[1]+l+q.getCloseTagLength()),u=r.substring(t[0]+l,t[1]+l);if(r=r.replace(c,u),s)return r;document.getElementById(n).innerHTML=r}else if(w){const r=a+e;if(document.getElementById(r).outerHTML=document.getElementById(r).innerHTML,s)return document.getElementById(n).innerHTML}}stripAndStoreHTMLTags(){let e;this.stripedHTML=this.originalContent;const r=/<[^>]+>/;let t=0;for(;e=this.stripedHTML.match(r);){this.stripedHTML=this.stripedHTML.replace(e,"");const r=e[0].length;this.tagLocations.push([e.index,r,t]),t+=r}}directSearch(e,r,n,o={},i){const a=o.caseSensitive;let s=e+r+n,l=this.isHTML?this.stripedHTML:this.originalContent;a||(s=s.toLowerCase(),l=l.toLowerCase());let c=0;void 0!==i&&(c=this.highlights[i].loc[1]+1);let u=-1;const p=l.indexOf(s,c);if(-1===p){const n=new(0,t(1).AllHtmlEntities),o=n.encode(s),i=l.indexOf(o,c);if(-1!==i){const t=[];t[0]=i+n.encode(e).length,t[1]=t[0]+n.encode(r).length,u=this.highlights.push({loc:t})-1}}else{const t=[];t[0]=p+e.length,t[1]=t[0]+r.length,u=this.highlights.push({loc:t})-1}return u}eagerSearch(e,r,t,n={}){const o=n.caseSensitive,i=n.containerId,a=n.threshold||.74,s=e+r+t;let l=-1;if(window.find){document.designMode="on";const e=window.getSelection();for(e.collapse(document.body,0);window.find(s,o);){document.execCommand("hiliteColor",!0,"rgba(255, 255, 255, 0)"),e.collapseToEnd();const t=document.querySelector("#"+i+' [style="background-color: rgba(255, 255, 255, 0);"]');if(t){const e=t.innerHTML.replace(/<[^>]*>/g,""),n=q.getBestSubstring(e,r,a);if(n.similarity){const r=(this.isHTML?this.stripedHTML:this.originalContent).indexOf(e);-1!==r&&(l=this.highlights.push({loc:[r+n.loc[0],r+n.loc[1]]})-1)}break}}document.execCommand("undo"),document.designMode="off"}return l}fuzzySearch(e,r,t,n={}){const o=n.caseSensitive,i=n.tokenBased;let a=n.tbThreshold||.68;const s=void 0===n.sentenceBased||n.sentenceBased;let l=n.sbThreshold||.85;const c=n.maxLengthDiff||.1,u=n.lenRatio||2,p=n.processSentence;let g=-1;const h=this.isHTML?this.stripedHTML:this.originalContent;if(i||e||t){const n=[];let i=-1;for(;-1!==(i=h.indexOf(r,i+1));)n.push(i);let s=-1;const l=e+r+t;for(let i=0;i<n.length;i++){const c=n[i],u=h.substring(c-e.length,c)+r+h.substring(c+r.length,c+r.length+t.length),p=q.getSimilarity(u,l,o);p>=a&&(a=p,s=c)}-1!==s&&(g=this.highlights.push({loc:[s,s+r.length]})-1)}else if(s){let e=[];e=this.sentences.length?this.sentences:this.sentences=q.sentenize(h);const t=r.split(/\s/),n=[];for(let r=0;r<e.length;r++)for(let o=0;o<t.length;o++)if(e[r].raw.includes(t[o])){n.push(e[r]);break}if(p){let e=0;for(let r=0;r<n.length;r++){const t=n[r];let o=t.raw;const i=[t.index,t.index+o.length];let a=0;const s=this.tagLocations;for(let r=e;r<s.length;r++){const t=s[r];if(t[0]>=i[0]&&t[0]<=i[1]){const e=this.originalContent.substring(t[0]+t[2],t[0]+t[2]+t[1]),r=t[0]+a-i[0];o=o.slice(0,r)+e+o.slice(r),a+=t[1]}else if(t[0]>i[1]){e=r;break}}o=p(o),o=o.replace(/(<([^>]+)>)/gi,"");const l=t.raw;l!==o&&(t.raw=o,t.index=t.index+l.indexOf(o))}}let i=null;for(let e=0;e<n.length;e++){const t=n[e],a=q.getSimilarity(t.raw,r,o);if(a>=l)l=a,i=t;else if(e!==n.length-1){const a=t.raw+n[e+1].raw;if(Math.abs(a.length-r.length)/r.length<=c){const e=q.getSimilarity(a,r,o);e>=l&&(l=e,i={raw:a,index:t.index})}}}if(i){const e=q.getBestSubstring(i.raw,r,l,u,o,!0);if(e.loc){let r=i.index;g=this.highlights.push({loc:[r+e.loc[0],r+e.loc[1]]})-1}}}return g}includeRequiredTag(e,r,t){const n=t.startsWith("</"),o=n?t.split("</")[1].split(">")[0]:t.split(" ")[0].split("<")[1].split(">")[0];let i=!1,a=1,s=0;if(n)for(let t=e-1;t>=0;t--){const e=this.tagLocations[t];if(r[0]>e[0])break;{const r=this.originalContent.substring(e[0]+e[2],e[0]+e[2]+e[1]);if(r.startsWith("</"+o)?a++:r.startsWith("<"+o)&&s++,a===s){i=!0;break}}}else for(let t=e+1;t<this.tagLocations.length;t++){const e=this.tagLocations[t];if(r[1]<e[0])break;{const r=this.originalContent.substring(e[0]+e[2],e[0]+e[2]+e[1]);if(r.startsWith("<"+o)?a++:r.startsWith("</"+o)&&s++,a===s){i=!0;break}}}return i}adjustLoc(e,r,t){const n=this.highlights[r].loc,o=[0,0],i=this.tagLocations.length;for(let e=0;e<i;e++){const r=this.tagLocations[e];if(n[1]<r[0])break;if(n[1]===r[0]){const t=this.originalContent.substring(r[0]+r[2],r[0]+r[2]+r[1]);!t.endsWith("/>")&&t.startsWith("</")&&!v.includes(t.split("</")[1].split(">")[0])&&this.includeRequiredTag(e,n,t)&&(o[1]+=r[1])}else if(n[1]>r[0])if(o[1]+=r[1],n[0]===r[0]){const t=this.originalContent.substring(r[0]+r[2],r[0]+r[2]+r[1]);(t.startsWith("</")||t.endsWith("/>")||v.includes(t.split(" ")[0].split("<")[1].split(">")[0])||!this.includeRequiredTag(e,n,t))&&(o[0]+=r[1])}else n[0]>r[0]&&(o[0]+=r[1])}for(let r=0;r<this.highlights.length;r++){const i=this.highlights[r];if(i.highlighted){const a=q.getOpenTagLength(e,r,t),s=q.getCloseTagLength(),l=i.loc;n[0]>=l[1]?(o[0]+=a+s,o[1]+=a+s):n[0]<l[1]&&n[0]>l[0]&&n[1]>l[1]?(o[0]+=a,o[1]+=a+s):n[0]<=l[0]&&n[1]>=l[1]?o[1]+=a+s:n[0]<l[0]&&n[1]>l[0]&&n[1]<l[1]?o[1]+=a:n[0]>=l[0]&&n[1]<=l[1]&&(o[0]+=a,o[1]+=a)}}return[n[0]+o[0],n[1]+o[1]]}static createOpenTag(e,r,t){return`<span id="${e+r}" class="${t}">`}static createCloseTag(){return"</span>"}static getOpenTagLength(e,r,t){return q.createOpenTag(e,r,t).length}static getCloseTagLength(){return q.createCloseTag().length}static trim(e,r,t){return e=e.replace(/^\s+/,""),t=t.replace(/\s+$/,""),e||(r=r.replace(/^\s+/,"")),t||(r=r.replace(/\s+$/,"")),{prefix:e,str:r,postfix:t}}static insert(e,r,t){return e.slice(0,t)+r+e.slice(t)}static sentenize(e){return b(e,{newline_boundaries:!1,html_boundaries:!1,sanitize:!1,allowed_tags:!1,preserve_whitespace:!0,abbreviations:null}).map(r=>({raw:r,index:e.indexOf(r)}))}static getBestSubstring(e,r,t,n,o,i){let a={},s=i?t:q.getSimilarity(e,r,o);if(s>=t){const t=e.split(" ");for(;t.length;){const e=t.shift(),n=t.join(" ");let i=q.getSimilarity(n,r,o);if(i<s){t.unshift(e);const n=t.pop();if(i=q.getSimilarity(t.join(" "),r,o),i<s){t.push(n);break}s=i}else s=i}const i=t.join(" ");if(!n||i.length/r.length<=n){const r=[];r[0]=e.indexOf(i),r[1]=r[0]+i.length,a={similarity:s,loc:r}}}return a}static getSimilarity(e,r,t){return t||(e=e.toLowerCase(),r=r.toLowerCase()),e===r?1:q.lcsLength(e,r)/r.length}static lcsLength(e,r,t){var n=t?e:e.toLowerCase(),o=t?r:r.toLowerCase();if(n===o)return n;if(""===(n||o))return"";var i,a,s=n.length,l=o.length,c=function(e){for(var r=[],t=0;t<e;t++)r[t]=[];return r}(l+1);for(i=0;i<=s;i++)c[0][i]=0;for(i=0;i<=l;i++)c[i][0]=0;for(i=1;i<=l;i++)for(a=1;a<=s;a++)n[a-1]===o[i-1]?c[i][a]=c[i-1][a-1]+1:c[i][a]=Math.max(c[i-1][a],c[i][a-1]);var u="";for(i=l,a=s;i>0&&a>0;)n[a-1]===o[i-1]?(u=n[a-1]+u,i--,a--):Math.max(c[i-1][a],c[i][a-1])===c[i-1][a]?i--:a--;return u.length}}r.default=q}]); |
# text-annotator | ||
A JavaScript library for locating and annotating plain text in HTML | ||
A JavaScript library for locating and annotating plain text in the HTML<br /> | ||
The annotation process is: | ||
1. Search for the plain text in the HTML; if finding it, store the location identified by an index and then return the index | ||
2. Annotate the found text given its index | ||
It can be seen that to annotate a piece of text, the process is search -> annotate. The idea of decomposing the annotation process is to allow more flexibility, e.g., the user can search all necessary text first, and then annotate/highlight it when required (e.g., when clicking a button). There is a function for directly annotating the text | ||
## Examples | ||
## Import | ||
1. via npm | ||
`npm install --save text-annotator` | ||
```javascript | ||
import TextAnnotator from 'text-annotator' | ||
``` | ||
2. include into head tag | ||
``` | ||
<script src="public/js/text-annotator.min.js"></script> | ||
``` | ||
## Basic usage | ||
<p id="content">"I am <b><i>Zhan Huang</i></b>, a <b>frontend developer</b> in EMBL-EBI. I like <b>food</b> and <b>sports</b>. My favourite food is <b>udon noodles</b> and my favourite sports are <b>badminton</b> and <b>football</b>. Let us be friends!" - Zhan Huang</p> | ||
```javascript | ||
// create an instance of TextAnnotator | ||
// containerId is the id of the HTML container | ||
var containerObj = {containerId: 'content'} | ||
var annotator = new TextAnnotator(containerObj) | ||
// search for the text in HTML | ||
// if found, store the location of the text and then return the index; otherwise return -1 | ||
var highlightIndex = annotator.search('frontend developer') | ||
// annotate | ||
if (highlightIndex !== -1) { | ||
annotator.highlight(highlightIndex, containerObj) | ||
} | ||
// search all occurances of the text | ||
var indexes = annotator.search('Zhan Huang') | ||
if (highlightIndexes.length) { | ||
// show all annotations given their indexes | ||
annotator.highlightAll(highlightIndexes, containerObj) | ||
} | ||
// search and annotate | ||
annotator.searchAndHighlight('badminton and football', {highlightOptions: containerObj}) | ||
// remove the annotation by the index | ||
annotator.unhighlight(highlightIndex) | ||
``` | ||
## Options | ||
## Examples from Europe PMC | ||
text-annotator has been widely used in [Europe PMC](https://europepmc.org "Europe PMC"), an open science platform that enables access to a worldwide collection of life science publications. Here is a list of examples: | ||
@@ -6,0 +54,0 @@ 1. Article title highlighting: https://europepmc.org/search?query=cancer |
@@ -324,3 +324,15 @@ import getSentences from './ext/sbd' | ||
const index = text.indexOf(strWithFixes, offset) | ||
if (index !== -1) { | ||
// experiment feature: if the text to be searched does not work, try to encode it | ||
if (index === -1) { | ||
const Entities = require('html-entities').AllHtmlEntities | ||
const entities = new Entities() | ||
const encodedStrWithFixes = entities.encode(strWithFixes) | ||
const index = text.indexOf(encodedStrWithFixes, offset) | ||
if (index !== -1) { | ||
const loc = [] | ||
loc[0] = index + entities.encode(prefix).length | ||
loc[1] = loc[0] + entities.encode(str).length | ||
highlightIndex = this.highlights.push({ loc }) - 1 | ||
} | ||
} else { | ||
const loc = [] | ||
@@ -327,0 +339,0 @@ loc[0] = index + prefix.length |
163682
2392
65
1
+ Addedhtml-entities@^1.3.1
+ Addedhtml-entities@1.4.0(transitive)