Autoría | Ultima modificación | Ver Log |
!function(e,t){t.rangy=e()}(function(){var l,d,u,h,o,f,a,t,m,r,i,s,e,c,R="object",C="function",n="undefined",v=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],N=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],E=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],y=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"];function g(e,t){var n=typeof e[t];return n==C||!(n!=R||!e[t])||"unknown"==n}function S(e,t){return!(typeof e[t]!=R||!e[t])}function T(e,t){return typeof e[t]!=n}function w(r){return function(e,t){for(var n=t.length;n--;)if(!r(e,t[n]))return!1;return!0}}function A(e){return e&&l(e,y)&&d(e,E)}function x(e){return S(e,"body")?e.bod
y:e.getElementsByTagName("body")[0]}function O(e){typeof console!=n&&g(console,"log")&&console.log(e)}function b(e,t){(h&&t?alert:O)(e)}function p(e){f.initialized=!0,f.supported=!1,b("Rangy is not supported in this environment. Reason: "+e,f.config.alertOnFail)}if(l=w(g),e=w(S),d=w(T),u={},h=typeof window!=n&&typeof document!=n,(f={version:"1.3.1",initialized:!(o={isHostMethod:g,isHostObject:S,isHostProperty:T,areHostMethods:l,areHostObjects:e,areHostProperties:d,isTextRange:A,getBody:x,forEach:[].forEach?function(e,t){e.forEach(t)}:function(e,t){for(var n=0,r=e.length;n<r;++n)t(e[n],n)}}),isBrowser:h,supported:!0,util:o,features:{},modules:u,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==n||rangyAutoInitialize}}).fail=p,f.warn=function(e){b("Rangy warning: "+e,f.config.alertOnWarn)},!{}.hasOwnProperty?p("hasOwnProperty not supported"):(o.extend=a=function(e,t,n){var r,o,i;for(i in t)t.hasOwnProperty(i)&&(r=e[i],o=t[i],n&&null!==r&&"object"==typeof r&&nul
l!==o&&"object"==typeof o&&a(r,o,!0),e[i]=o);return t.hasOwnProperty("toString")&&(e.toString=t.toString),e},o.createOptions=function(e,t){var n={};return a(n,t),e&&a(n,e),n}),h||p("Rangy can only run in a browser"),h){(e=document.createElement("div")).appendChild(document.createElement("span")),c=[].slice;try{1==c.call(e.childNodes,0)[0].nodeType&&(s=function(e){return c.call(e,0)})}catch(M){}}function P(e){return e.message||e.description||String(e)}function I(){var e,t,n,r,o,i,a,s;if(h&&!f.initialized)if(n=t=!1,g(document,"createRange")&&(e=document.createRange(),l(e,N)&&d(e,v)&&(t=!0)),(r=x(document))&&"body"==r.nodeName.toLowerCase())if(r&&g(r,"createTextRange")&&A(e=r.createTextRange())&&(n=!0),t||n){for(i in f.initialized=!0,f.features={implementsDomRange:t,implementsTextRange:n},u)(o=u[i])instanceof B&&o.init(o,f);for(a=0,s=m.length;a<s;++a)try{m[a](f)}catch(c){O("Rangy init listener threw an exception. Continuing. Detail: "+P(c))}}else p("Neither Range nor TextRange are available");else p("No body el
ement found")}function _(e,t,n){n&&(e+=" in module "+n.name),f.warn("DEPRECATED: "+e+" is deprecated. Please use "+t+" instead.")}function D(e,t,n,r){e[t]=function(){return _(t,n,r),e[n].apply(e,o.toArray(arguments))}}function B(e,t,n){this.name=e,this.dependencies=t,this.initialized=!1,this.supported=!1,this.initializer=n}function k(n,e,r){e=new B(n,e,function(e){if(!e.initialized){e.initialized=!0;try{r(f,e),e.supported=!0}catch(t){O("Module '"+n+"' failed to load: "+P(t)),t.stack&&O(t.stack)}}});return u[n]=e}function L(){}return o.toArray=s=s||function(e){for(var t=[],n=0,r=e.length;n<r;++n)t[n]=e[n];return t},h&&(g(document,"addEventListener")?t=function(e,t,n){e.addEventListener(t,n,!1)}:g(document,"attachEvent")?t=function(e,t,n){e.attachEvent("on"+t,n)}:p("Document does not have required addEventListener or attachEvent method"),o.addListener=t),m=[],o.deprecationNotice=_,o.createAliasForDeprecatedMethod=D,f.init=I,f.addInitListener=function(e){f.initialized?e(f):m.push(e)},r=[],f.addShimListener=func
tion(e){r.push(e)},h&&(f.shim=f.createMissingNativeApi=function(e){e=e||window,I();for(var t=0,n=r.length;t<n;++t)r[t](e)},D(f,"createMissingNativeApi","shim")),B.prototype={init:function(){for(var e,t,n=this.dependencies||[],r=0,o=n.length;r<o;++r){if(t=n[r],!((e=u[t])&&e instanceof B))throw new Error("required module '"+t+"' not found");if(e.init(),!e.supported)throw new Error("required module '"+t+"' not supported")}this.initializer(this)},fail:function(e){throw this.initialized=!0,this.supported=!1,new Error(e)},warn:function(e){f.warn("Module "+this.name+": "+e)},deprecationNotice:function(e,t){f.warn("DEPRECATED: "+e+" in module "+this.name+" is deprecated. Please use "+t+" instead")},createError:function(e){return new Error("Error in Rangy "+this.name+" module: "+e)}},f.createModule=function(e){var t,n=2==arguments.length?(t=arguments[1],[]):(t=arguments[2],arguments[1]),n=k(e,n,t);f.initialized&&f.supported&&n.init()},f.createCoreModule=function(e,t,n){k(e,t,n)},f.RangePrototype=L,f.rangePrototype=ne
w L,f.selectionPrototype=new function(){},f.createCoreModule("DomUtil",[],function(e,c){var o,n,s,u,t,r="undefined",i=e.util,h=i.getBody;function l(e){for(var t=0;e=e.previousSibling;)++t;return t}function f(e,t){for(var n=[],r=e;r;r=r.parentNode)n.push(r);for(r=t;r;r=r.parentNode)if(o(n,r))return r;return null}function g(e,t,n){for(var r=n?t:t.parentNode;r;){if(r===e)return!0;r=r.parentNode}return!1}function d(e,t,n){for(var r,o=n?e:e.parentNode;o;){if((r=o.parentNode)===t)return o;o=r}return null}function p(e){e=e.nodeType;return 3==e||4==e||8==e}function m(e,t){var n=t.nextSibling,t=t.parentNode;return n?t.insertBefore(e,n):t.appendChild(e),e}function a(e){if(9==e.nodeType)return e;if(typeof e.ownerDocument!=r)return e.ownerDocument;if(typeof e.document!=r)return e.document;if(e.parentNode)return a(e.parentNode);throw c.createError(
"getDocument: no document found for node")}function R(e){e=a(e);if(typeof e.defaultView!=r)return e.defaultView;if(typeof e.parentWindow!=r)return e.parentWindow;throw c.createError("Cannot get a window object for node")}function C(e){if(typeof e.contentDocument!=r)return e.contentDocument;if(typeof e.contentWindow!=r)return e.contentWindow.document;throw c.createError("getIframeDocument: No Document object found for iframe element")}function v(e){return e&&i.isHostMethod(e,"setTimeout")&&i.isHostObject(e,"document")}function N(e){try{return e.parentNode,!1}catch(t){return!0}}function E(e){return e?n&&N(e)?"[Broken node]":p(e)?'"'+e.data+'"':1==e.nodeType?(t=e.id?' id="'+e.id+'"':"","<"+e.nodeName+t+">[index:"+l(e)+",length:"+e.childNodes.length+"]["+(e.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"):e.nodeName:"[No node]";var t}function y(e){this.root=e,this._next=e}function S(e,t){this.node=e,this.offset=t}function T(e){this.code=this[e],this.codeName=e,this.message="DOMException: "+this.codeName}
i.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||c.fail("document missing a Node creation method"),i.isHostMethod(document,"getElementsByTagName")||c.fail("document missing getElementsByTagName method"),t=document.createElement("div"),i.areHostMethods(t,["insertBefore","appendChild","cloneNode"])||c.fail("Incomplete Element implementation"),i.isHostProperty(t,"innerHTML")||c.fail("Element is missing innerHTML property"),t=document.createTextNode("test"),i.areHostMethods(t,["splitText","deleteData","insertData","appendData","cloneNode"])||c.fail("Incomplete Text Node implementation"),o=function(e,t){for(var n=e.length;n--;)if(e[n]===t)return!0;return!1},(t=document.createElement("b")).innerHTML="1",u=t.firstChild,t.innerHTML="<br />",n=N(u),e.features.crashyTextNodes=n,typeof window.getComputedStyle!=r?s=function(e,t){return R(e).getComputedStyle(e,null)[t]}:typeof document.documentElement.currentStyle!=r?s=function(e,t){return e.currentStyle?e.currentStyle[t]:""}:c.fail
("No means of obtaining computed style properties found"),y.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var e,t,n=this._current=this._next;if(this._current)if(e=n.firstChild)this._next=e;else{for(t=null;n!==this.root&&!(t=n.nextSibling);)n=n.parentNode;this._next=t}return this._current},detach:function(){this._current=this._next=this.root=null}},S.prototype={equals:function(e){return!!e&&this.node===e.node&&this.offset==e.offset},inspect:function(){return"[DomPosition("+E(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},(T.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24}).toString=function(){return this.message},e.dom={arrayContains:o,isHtmlNamespace:function(e){var t;return typeof e.namespaceURI==r||null===(t=e.namespaceURI)||"http://www.w3.org/1999/xhtml"==t},parentElement:function(e){return 1==(e=e.parentNod
e).nodeType?e:null},getNodeIndex:l,getNodeLength:function(e){switch(e.nodeType){case 7:case 10:return 0;case 3:case 8:return e.length;default:return e.childNodes.length}},getCommonAncestor:f,isAncestorOf:g,isOrIsAncestorOf:function(e,t){return g(e,t,!0)},getClosestAncestorIn:d,isCharacterDataNode:p,isTextOrCommentNode:function(e){return!!e&&(3==(e=e.nodeType)||8==e)},insertAfter:m,splitDataNode:function(e,t,n){var r,o,i=e.cloneNode(!1);if(i.deleteData(0,t),e.deleteData(t,e.length-t),m(i,e),n)for(r=0;o=n[r++];)o.node==e&&o.offset>t?(o.node=i,o.offset-=t):o.node==e.parentNode&&o.offset>l(e)&&++o.offset;return i},getDocument:a,getWindow:R,getIframeWindow:function(e){if(typeof e.contentWindow!=r)return e.contentWindow;if(typeof e.contentDocument!=r)return e.contentDocument.defaultView;throw c.createError("getIframeWindow: No Window object found for iframe element")},getIframeDocument:C,getBody:h,isWindow:v,getContentDocument:function(e,t,n){var r;if(e?i.isHostProperty(e,"nodeType")?r=(1==e.nodeType&&"iframe"==e.
tagName.toLowerCase()?C:a)(e):v(e)&&(r=e.document):r=document,!r)throw t.createError(n+"(): Parameter must be a Window object or DOM node");return r},getRootContainer:function(e){for(var t;t=e.parentNode;)e=t;return e},comparePoints:function(e,t,n,r){var o,i,a,s;if(e==n)return t===r?0:t<r?-1:1;if(o=d(n,e,!0))return t<=l(o)?-1:1;if(o=d(e,n,!0))return l(o)<r?-1:1;if(!(t=f(e,n)))throw new Error("comparePoints error: nodes have no common ancestor");if((i=e===t?t:d(e,t,!0))===(a=n===t?t:d(n,t,!0)))throw c.createError("comparePoints got to case 4 and childA and childB are the same!");for(s=t.firstChild;s;){if(s===i)return-1;if(s===a)return 1;s=s.nextSibling}},isBrokenNode:N,inspectNode:E,getComputedStyleProperty:s,createTestElement:function(e,t,n){var r=h(e);return(e=e.createElement("div")).contentEditable=""+!!n,t&&(e.innerHTML=t),(n=r.firstChild)?r.insertBefore(e,n):r.appendChild(e),e},removeNode:function(e){return e.parentNode.removeChild(e)},fragmentFromNodeChildren:function(e){for(var t,n=a(e).createDocumentF
ragment();t=e.firstChild;)n.appendChild(t);return n},createIterator:function(e){return new y(e)},DomPosition:S},e.DOMException=T}),f.createCoreModule("DomRange",["DomUtil"],function(i,e){var p,m,t,n,r,o,R,C,v,N,E,y,S,T,w,A,x,O,b,s=i.dom,P=i.util,I=s.DomPosition,a=i.DOMException,u=s.isCharacterDataNode,_=s.getNodeIndex,D=s.isOrIsAncestorOf,B=s.getDocument,c=s.comparePoints,k=s.splitDataNode,L=s.getClosestAncestorIn,M=s.getNodeLength,H=s.arrayContains,l=s.getRootContainer,W=i.features.crashyTextNodes,z=s.removeNode;function F(e,t){return 3!=e.nodeType&&(D(e,t.startContainer)||D(e,t.endContainer))}function d(e){return e.document||B(e.startContainer)}function V(e){return new I(e.parentNode,_(e))}function j(e){return new I(e.parentNode,_(e)+1)}function U(e,t,n){var r=11==e.nodeType?e.firstChild:e;return u(t)?n==t.length?s.insertAfter(e,t):t.parentNode.insertBefore(e,0==n?t:k(t,
n)):n>=t.childNodes.length?t.appendChild(e):t.insertBefore(e,t.childNodes[n]),r}function $(e,t,n){if(g(e),g(t),d(t)!=d(e))throw new a("WRONG_DOCUMENT_ERR");var r=c(e.startContainer,e.startOffset,t.endContainer,t.endOffset),e=c(e.endContainer,e.endOffset,t.startContainer,t.startOffset);return n?r<=0&&0<=e:r<0&&0<e}function q(e,t,n){var r,o,i,a;for(n=n||{stop:!1};i=e.next();)if(e.isPartiallySelectedSubtree()){if(!1===t(i))return void(n.stop=!0);if(q(a=e.getSubtreeIterator(),t,n),a.detach(),n.stop)return}else for(r=s.createIterator(i);o=r.next();)if(!1===t(o))return void(n.stop=!0)}function Y(e){for(var t;e.next();)e.isPartiallySelectedSubtree()?(Y(t=e.getSubtreeIterator()),t.detach()):e.remove()}function G(e){for(var t,n,r=d(e.range).createDocumentFragment();t=e.next();){if(e.isPartiallySelectedSubtree()?(t=t.cloneNode(!1),n=e.getSubtreeIterator(),t.appendChild(G(n)),n.detach()):e.remove(),10==t.nodeType)throw new a("HIERARCHY_REQUEST_ERR");r.appendChild(t)}return r}function Q(e){return"["+("undefined"==typeof
e.getName?"Range":e.getName())+"("+s.inspectNode(e.startContainer)+":"+e.startOffset+", "+s.inspectNode(e.endContainer)+":"+e.endOffset+")]"}function h(e,t){this.range=e,this.clonePartiallySelectedTextNodes=t,e.collapsed||(this.sc=e.startContainer,this.so=e.startOffset,this.ec=e.endContainer,this.eo=e.endOffset,t=e.commonAncestorContainer,this.sc===this.ec&&u(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==t||u(this.sc)?L(this.sc,t,!0):this.sc.childNodes[this.so],this._last=this.ec!==t||u(this.ec)?L(this.ec,t,!0):this.ec.childNodes[this.eo-1]))}function K(o){return function(e,t){for(var n,r=t?e:e.parentNode;r;){if(n=r.nodeType,H(o,n))return r;r=r.parentNode}return null}}function f(e,t){if(R(e,t))throw new a("INVALID_NODE_TYPE_ERR")}function X(e,t){if(!H(t,e.nodeType))throw new a("INVALID_NODE_TYPE_ERR")}function Z(e,t){if(t<0||t>(u(e)?e:e.childNodes).length)throw new a("INDEX_SIZE_ERR")}function J(e,t){if(r(e,!0)!==r(t,!0))throw new a(
"WRONG_DOCUMENT_ERR")}function ee(e){if(o(e,!0))throw new a("NO_MODIFICATION_ALLOWED_ERR")}function te(e,t){if(!e)throw new a(t)}function ne(e,t){return t<=(u(e)?e:e.childNodes).length}function re(e){return!!e.startContainer&&!!e.endContainer&&!(W&&(s.isBrokenNode(e.startContainer)||s.isBrokenNode(e.endContainer)))&&l(e.startContainer)==l(e.endContainer)&&ne(e.startContainer,e.startOffset)&&ne(e.endContainer,e.endOffset)}function g(e){if(!re(e))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+e.inspect()+")")}h.prototype={_current:null,_next:null,_first:null,_last:null,isSingleCharacterDataNode:!1,reset:function(){this._current=null,this._next=this._first},hasNext:function(){return!!this._next},next:function(){var e=this._current=this._next;return e&&(this._next=e!==this._last?e.nextSibling:null,u(e)&&this.clonePartiallySelectedTextNodes&&(e===this.ec&&(e=e.cloneNode(!0)).deleteData(this.eo,e.length-this.eo),this._current===this.sc&&(e=e.cloneNode(!0)).dele
teData(0,this.so))),e},remove:function(){var e,t,n=this._current;!u(n)||n!==this.sc&&n!==this.ec?n.parentNode&&z(n):(e=n===this.sc?this.so:0)!=(t=n===this.ec?this.eo:n.length)&&n.deleteData(e,t-e)},isPartiallySelectedSubtree:function(){return F(this._current,this.range)},getSubtreeIterator:function(){var e,t,n,r,o,i;return this.isSingleCharacterDataNode?(e=this.range.cloneRange()).collapse(!1):(e=new ue(d(this.range)),t=this._current,r=0,i=M(o=n=t),D(t,this.sc)&&(n=this.sc,r=this.so),D(t,this.ec)&&(o=this.ec,i=this.eo),de(e,n,r,o,i)),new h(e,this.clonePartiallySelectedTextNodes)},detach:function(){this.range=this._current=this._next=this._first=this._last=this.sc=this.so=this.ec=this.eo=null}},p=[1,3,4,5,7,8,10],m=[2,9,11],t=[1,3,4,5,7,8,10,11],n=[1,3,4,5,7,8],r=K([9,11]),o=K([5,6,10,12]),R=K([6,10,12]),C=K([1]),v=document.createElement("style"),N=!1;try{v.innerHTML="<b>x</b>",N=3==v.firstChild.nodeType}catch(he){}function oe(e,t){var n,r,o,i,a;g(e),n=e.startContainer,r=e.startOffset,o=e.endContainer,i=e.end
Offset,a=n===o,u(o)&&0<i&&i<o.length&&k(o,i,t),u(n)&&0<r&&r<n.length&&(n=k(n,r,t),a?(i-=r,o=n):o==n.parentNode&&i>=_(n)&&i++,r=0),e.setStartAndEnd(n,r,o,i)}function ie(e){g(e);var t=e.commonAncestorContainer.parentNode.cloneNode(!1);return t.appendChild(e.cloneContents()),t.innerHTML}function ae(e){e.START_TO_START=y,e.START_TO_END=S,e.END_TO_END=T,e.END_TO_START=w,e.NODE_BEFORE=A,e.NODE_AFTER=x,e.NODE_BEFORE_AND_AFTER=O,e.NODE_INSIDE=b}function se(e){ae(e),ae(e.prototype)}function ce(o,i){return function(){var e,t,n,r;return g(this),e=this.startContainer,t=this.startOffset,r=this.commonAncestorContainer,n=new h(this,!0),e!==r&&(e=(r=j(L(e,r,!0))).node,t=r.offset),q(n,ee),n.reset(),r=o(n),n.detach(),i(this,e,t,e,t),r}}function le(e,d){function t(t,n){return function(e){X(e,p),X(l(e),m);e=(t?V:j)(e);(n?r:o)(this,e.node,e.offset)}}function r(e,t,n){var r=e.endContainer,o=e.endOffset;t===e.startContainer&&n===e.startOffset||(l(t)==l(r)&&1!=c(t,n,r,o)||(r=t,o=n),d(e,t,n,r,o))}function o(e,t,n){var r=e.startConta
iner,o=e.startOffset;t===e.endContainer&&n===e.endOffset||(l(t)==l(r)&&-1!=c(t,n,r,o)||(r=t,o=n),d(e,r,o,t,n))}var n=function(){};n.prototype=i.rangePrototype,e.prototype=new n,P.extend(e.prototype,{setStart:function(e,t){f(e,!0),Z(e,t),r(this,e,t)},setEnd:function(e,t){f(e,!0),Z(e,t),o(this,e,t)},setStartAndEnd:function(){var e=arguments,t=e[0],n=e[1],r=t,o=n;switch(e.length){case 3:o=e[2];break;case 4:r=e[2],o=e[3]}f(t,!0),Z(t,n),f(r,!0),Z(r,o),d(this,t,n,r,o)},setBoundary:function(e,t,n){this["set"+(n?"Start":"End")](e,t)},setStartBefore:t(!0,!0),setStartAfter:t(!1,!0),setEndBefore:t(!0,!1),setEndAfter:t(!1,!1),collapse:function(e){g(this),e?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(e){f(e,!0),d(this,e,0,e,M(e))},
selectNode:function(e){f(e,!1),X(e,p);var t=V(e),e=j(e);d(this,t.node,t.offset,e.node,e.offset)},extractContents:ce(G,d),deleteContents:ce(Y,d),canSurroundContents:function(){var e,t;return g(this),ee(this.startContainer),ee(this.endContainer),t=(e=new h(this,!0))._first&&F(e._first,this)||e._last&&F(e._last,this),e.detach(),!t},splitBoundaries:function(){oe(this)},splitBoundariesPreservingPositions:function(e){oe(this,e)},normalizeBoundaries:function(){var r,o,i,a,e,t,n,s,c,l;g(this),r=this.startContainer,o=this.startOffset,i=this.endContainer,a=this.endOffset,e=function(e){var t=e.nextSibling;t&&t.nodeType==e.nodeType&&(a=(i=e).length,e.appendData(t.data),z(t))},t=function(e){var t,n=e.previousSibling;n&&n.nodeType==e.nodeType&&(t=(r=e).length,o=n.length,e.insertData(0,n.data),z(n),r==i?(a+=o,i=r):i==e.parentNode&&(n=_(e),a==n?(i=e,a=t):n<a&&a--))},n=!0,u(i)?a==i.length?e(i):0==a&&(s=i.previousSibling)&&s.nodeType==i.nodeType&&(a=s.length,r==i&&(n=!1),s.appendData(i.data),z(i),i=s):(0<a&&(c=i.childNodes[a-
1])&&u(c)&&e(c),n=!this.collapsed),n?u(r)?0==o?t(r):o==r.length&&(s=r.nextSibling)&&s.nodeType==r.nodeType&&(i==s&&(a+=(i=r).length),r.appendData(s.data),z(s)):o<r.childNodes.length&&(l=r.childNodes[o])&&u(l)&&t(l):(r=i,o=a),d(this,r,o,i,a)},collapseToPoint:function(e,t){f(e,!0),Z(e,t),this.setStartAndEnd(e,t)},parentElement:function(){return g(this),this.commonAncestorContainer?C(this.commonAncestorContainer,!0):null}}),se(e)}function de(e,t,n,r,o){e.startContainer=t,e.startOffset=n,e.endContainer=r,e.endOffset=o,e.document=s.getDocument(t),(n=e).collapsed=n.startContainer===n.endContainer&&n.startOffset===n.endOffset,n.commonAncestorContainer=n.collapsed?n.startContainer:s.getCommonAncestor(n.startContainer,n.endContainer)}function ue(e){de(this,e,0,e,0)}i.features.htmlParsingConforms=N,E=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],A=y=0,x=S=1,O=T=2,b=w=3,P.extend(i.rangePrototype,{compareBoundaryPoints:function(e,t){var n,r,o;return g(this),J(this.star
tContainer,t.startContainer),o=e==S||e==y?"start":"end",n=this[(e=e==w||e==y?"start":"end")+"Container"],e=this[e+"Offset"],r=t[o+"Container"],o=t[o+"Offset"],c(n,e,r,o)},insertNode:function(e){if(g(this),X(e,t),ee(this.startContainer),D(e,this.startContainer))throw new a("HIERARCHY_REQUEST_ERR");e=U(e,this.startContainer,this.startOffset);this.setStartBefore(e)},cloneContents:function(){var e,t;return g(this),this.collapsed?d(this).createDocumentFragment():this.startContainer===this.endContainer&&u(this.startContainer)?((e=this.startContainer.cloneNode(!0)).data=e.data.slice(this.startOffset,this.endOffset),(t=d(this).createDocumentFragment()).appendChild(e),t):(e=function o(e){for(var t,n,r=d(e.range).createDocumentFragment();t=e.next();){if(n=e.isPartiallySelectedSubtree(),t=t.cloneNode(!n),n&&(n=e.getSubtreeIterator(),t.appendChild(o(n)),n.detach()),10==t.nodeType)throw new a("HIERARCHY_REQUEST_ERR");r.appendChild(t)}return r}(t=new h(this,!0)),t.detach(),e)},canSurroundContents:function(){var e,t;return
g(this),ee(this.startContainer),ee(this.endContainer),t=(e=new h(this,!0))._first&&F(e._first,this)||e._last&&F(e._last,this),e.detach(),!t},surroundContents:function(e){if(X(e,n),!this.canSurroundContents())throw new a("INVALID_STATE_ERR");var t=this.extractContents();if(e.hasChildNodes())for(;e.lastChild;)e.removeChild(e.lastChild);U(e,this.startContainer,this.startOffset),e.appendChild(t),this.selectNode(e)},cloneRange:function(){var e,t,n;for(g(this),e=new ue(d(this)),t=E.length;t--;)e[n=E[t]]=this[n];return e},toString:function(){var t,e;return g(this),(e=this.startContainer)===this.endContainer&&u(e)?3==e.nodeType||4==e.nodeType?e.data.slice(this.startOffset,this.endOffset):"":(t=[],q(e=new h(this,!0),function(e){3!=e.nodeType&&4!=e.nodeType||t.push(e.data)}),e.detach(),t.join(""))},compareNode:function(e){var t,n;if(g(this),n=e.parentNode,e=_(e),!n)throw new a("NOT_FOUND_ERR");return t=this.comparePoint(n,e),n=this.comparePoint(n,e+1),t<0?0<n?O:A:0<n?x:b},comparePoint:function(e,t){return g(this),te(
e,"HIERARCHY_REQUEST_ERR"),J(e,this.startContainer),c(e,t,this.startContainer,this.startOffset)<0?-1:0<c(e,t,this.endContainer,this.endOffset)?1:0},createContextualFragment:N?function(e){var t,n=this.startContainer,r=B(n);if(!n)throw new a("INVALID_STATE_ERR");return t=null,1==n.nodeType?t=n:u(n)&&(t=s.parentElement(n)),(t=null===t||"HTML"==t.nodeName&&s.isHtmlNamespace(B(t).documentElement)&&s.isHtmlNamespace(t)?r.createElement("body"):t.cloneNode(!1)).innerHTML=e,s.fragmentFromNodeChildren(t)}:function(e){var t=d(this),t=t.createElement("body");return t.innerHTML=e,s.fragmentFromNodeChildren(t)},toHtml:function(){return ie(this)},intersectsNode:function(e,t){var n,r;return g(this),l(e)==l(this.startContainer)&&(r=e.parentNode,e=_(e),!r||(n=c(r,e,this.endContainer,this.endOffset),r=c(r,e+1,this.startContainer,this.startOffset),t?n<=0&&0<=r:n<0&&0<r))},isPointInRange:function(e,t){return g(this),te(e,"HIERARCHY_REQUEST_ERR"),J(e,this.startContainer),0<=c(e,t,this.startContainer,this.startOffset)&&c(e,t,this.
endContainer,this.endOffset)<=0},intersectsRange:function(e){return $(this,e,!1)},intersectsOrTouchesRange:function(e){return $(this,e,!0)},intersection:function(e){var t,n,r;return this.intersectsRange(e)?(t=c(this.startContainer,this.startOffset,e.startContainer,e.startOffset),n=c(this.endContainer,this.endOffset,e.endContainer,e.endOffset),r=this.cloneRange(),-1==t&&r.setStart(e.startContainer,e.startOffset),1==n&&r.setEnd(e.endContainer,e.endOffset),r):null},union:function(e){var t;if(this.intersectsOrTouchesRange(e))return t=this.cloneRange(),-1==c(e.startContainer,e.startOffset,this.startContainer,this.startOffset)&&t.setStart(e.startContainer,e.startOffset),1==c(e.endContainer,e.endOffset,this.endContainer,this.endOffset)&&t.setEnd(e.endContainer,e.endOffset),t;throw new a("Ranges do not intersect")},containsNode:function(e,t){return t?this.intersectsNode(e,!1
):this.compareNode(e)==b},containsNodeContents:function(e){return 0<=this.comparePoint(e,0)&&this.comparePoint(e,M(e))<=0},containsRange:function(e){var t=this.intersection(e);return null!==t&&e.equals(t)},containsNodeText:function(e){var t,n=this.cloneRange();return n.selectNode(e),0<(t=n.getNodes([3])).length?(n.setStart(t[0],0),t=t.pop(),n.setEnd(t,t.length),this.containsRange(n)):this.containsNodeContents(e)},getNodes:function(e,t){return g(this),n=this,r=t,a=!(!(t=e)||!t.length),s=!!r,a&&(o=new RegExp("^("+t.join("|")+")$")),q(new h(n,!(i=[])),function(e){var t;a&&!o.test(e.nodeType)||s&&!r(e)||e==(t=n.startContainer)&&u(t)&&n.startOffset==t.length||e==(t=n.endContainer)&&u(t)&&0==n.endOffset||i.push(e)}),i;var n,r,o,i,a,s},getDocument:function(){return d(this)},collapseBefore:function(e){this.setEndBefore(e),this.collapse(!1)},collapseAfter:function(e){this.setStartAfter(e),this.collapse(!0)},getBookmark:function(e){var t,n,r=d(this),o=i.createRange(r);return e=e||s.getBody(r),o.selectNodeContents(e),n
=r=0,(t=this.intersection(o))&&(o.setEnd(t.startContainer,t.startOffset),n=(r=o.toString().length)+t.toString().length),{start:r,end:n,containerNode:e}},moveToBookmark:function(e){var t,n,r,o,i,a,s,c=e.containerNode,l=0;for(this.setStart(c,0),this.collapse(!0),o=r=!(t=[c]);!o&&(n=t.pop());)if(3==n.nodeType)i=l+n.length,!r&&e.start>=l&&e.start<=i&&(this.setStart(n,e.start-l),r=!0),r&&e.end>=l&&e.end<=i&&(this.setEnd(n,e.end-l),o=!0),l=i;else for(a=(s=n.childNodes).length;a--;)t.push(s[a])},getName:function(){return"DomRange"},equals:function(e){return ue.rangesEqual(this,e)},isValid:function(){return re(this)},inspect:function(){return Q(this)},detach:function(){}}),le(ue,de),P.extend(ue,{rangeProperties:E,RangeIterator:h,copyComparisonConstants:se,createPrototypeRange:le,inspect:Q,toHtml:ie,getRangeDocument:d,rangesEqual:function(e,t){return e.startContainer===t.startContainer&&e.startOffset===t.startOffset&&e.endContainer===t.endContainer&&e.endOffset===t.endOffset}}),i.DomRange=ue}),f.createCoreModule("Wra
ppedRange",["DomRange"],function(n,c){var l,d,u,h,f,g,R=n.dom,p=n.util,C=R.DomPosition,m=n.DomRange,v=R.getBody,N=R.getContentDocument,E=R.isCharacterDataNode;if(n.features.implementsDomRange){var e,t,r,o,i,y,S=m.rangeProperties;function a(e){for(var t,n=S.length;n--;)e[t=S[n]]=e.nativeRange[t];e.collapsed=e.startContainer===e.endContainer&&e.startOffset===e.endOffset}m.createPrototypeRange(l=function(e){if(!e)throw c.createError("WrappedRange: Range must be specified");this.nativeRange=e,a(this)},function(e,t,n,r,o){var i=e.startContainer!==t||e.startOffset!=n,a=e.endContainer!==r||e.endOffset!=o,s=!e.equals(e.nativeRange);(i||a||s)&&(e.setEnd(r,o),e.setStart(t,n))}),(e=l.prototype).selectNode=function(e){this.nativeRange.selectNode(e),a(this)},e.cloneContents=function(){return this.nativeRange.cloneContents()},e.surroundContents=function(e){this.nativeRange.surroundContents(e),a(this)},e.collapse=function(e){this.nativeRange.collapse(e),a(this)},e.cloneRange=function(){return new l(this.nativeRange.cloneRa
nge())},e.refresh=function(){a(this)},e.toString=function(){return this.nativeRange.toString()},t=document.createTextNode("test"),v(document).appendChild(t),(r=document.createRange()).setStart(t,0),r.setEnd(t,0);try{r.setStart(t,1),e.setStart=function(e,t){this.nativeRange.setStart(e,t),a(this)},e.setEnd=function(e,t){this.nativeRange.setEnd(e,t),a(this)},o=function(t){return function(e){this.nativeRange[t](e),a(this)}}}catch(s){e.setStart=function(e,t){try{this.nativeRange.setStart(e,t)}catch(s){this.nativeRange.setEnd(e,t),this.nativeRange.setStart(e,t)}a(this)},e.setEnd=function(e,t){try{this.nativeRange.setEnd(e,t)}catch(s){this.nativeRange.setStart(e,t),this.nativeRange.setEnd(e,t)}a(this)},o=function(t,n){return function(e){try{this.nativeRange[t](e)}catch(s){this.nativeRange[n](e),this.nativeRange[t](e)}a(this)}}}e.setStartBefore=o("setStartBefore","setEndBefore"),e.setStartAfter=o("setStartAfter","setEndAfter"),e.setEndBefore=o("setEndBefore","setStartBefore"),e.setEndAfter=o("setEndAfter","setStartA
fter"),e.selectNodeContents=function(e){this.setStartAndEnd(e,0,R.getNodeLength(e))},r.selectNodeContents(t),r.setEnd(t,3),(o=document.createRange()).selectNodeContents(t),o.setEnd(t,4),o.setStart(t,2),-1==r.compareBoundaryPoints(r.START_TO_END,o)&&1==r.compareBoundaryPoints(r.END_TO_START,o)?e.compareBoundaryPoints=function(e,t){return e==(t=t.nativeRange||t).START_TO_END?e=t.END_TO_START:e==t.END_TO_START&&(e=t.START_TO_END),this.nativeRange.compareBoundaryPoints(e,t)}:e.compareBoundaryPoints=function(e,t){return this.nativeRange.compareBoundaryPoints(e,t.nativeRange||t)},(o=document.createElement("div")).innerHTML="123",i=o.firstChild,(y=v(document)).appendChild(o),r.setStart(i,1),r.setEnd(i,2),r.deleteContents(),"13"==i.data&&(e.deleteContents=function(){this.nativeRange.deleteContents(),a(this)},e.extractContents=function(){var e=this.nativeRange.extractContents();return a(this),e}),y.removeChild(o),y=null,p.isHostMethod(r,"createContextualFragment")&&(e.createContextualFragment=function(e){return this.
nativeRange.createContextualFragment(e)}),v(document).removeChild(t),e.getName=function(){return"WrappedRange"},n.WrappedRange=l,n.createNativeRange=function(e){return(e=N(e,c,"createNativeRange")).createRange()}}n.features.implementsTextRange&&(d=function(e){var t,n=e.parentElement(),r=e.duplicate();return r.collapse(!0),t=r.parentElement(),(r=e.duplicate()).collapse(!1),(r=t==(e=r.parentElement())?t:R.getCommonAncestor(t,e))==n?r:R.getCommonAncestor(n,r)},u=function(e){return 0==e.compareEndPoints("StartToEnd",e)},h=function(d,e,t,u,n){var r,o,h,f,g,i,p,a,s,m,c,l=d.duplicate();if(l.collapse(t),r=l.parentElement(),!(r=R.isOrIsAncestorOf(e,r)?r:e).canHaveHTML)return{boundaryPosition:e=new C(r.parentNode,R.getNodeIndex(r)),nodeInfo:{nodeIndex:e.offset,containerElement:e.node}};for((o=R.getDocument(r).createElement("span")).parentNode&&R.removeNode(o),
f=t?"StartToStart":"StartToEnd",i=n&&n.containerElement==r?n.nodeIndex:0,s=a=p=r.childNodes.length;;){if(s==p?r.appendChild(o):r.insertBefore(o,r.childNodes[s]),l.moveToElementText(o),0==(h=l.compareEndPoints(f,d))||i==a)break;if(-1==h){if(a==i+1)break;i=s}else a=a==i+1?i:s;s=Math.floor((i+a)/2),r.removeChild(o)}if(e=o.nextSibling,-1==h&&e&&E(e)){if(l.setEndPoint(t?"EndToStart":"EndToEnd",d),/[\r\n]/.test(e.data))for(n=(c=l.duplicate()).text.replace(/\r\n/g,"\r").length,m=c.moveStart("character",n);-1==(h=c.compareEndPoints("StartToEnd",c));)m++,c.moveStart("character",1);else m=l.text.length;g=new C(e,m)}else n=(u||!t)&&o.previousSibling,g=(e=(u||t)&&o.nextSibling)&&E(e)?new C(e,0):n&&E(n)?new C(n,n.data.length):new C(r,R.getNodeIndex(o));return R.removeNode(o),{boundaryPosition:g,nodeInfo:{nodeIndex:s,containerElement:r}}},f=function(e,t){var n,r=e.offset,o=R.getDocument(e.node),i=v(o).createTextRange(),a=E(e.node),s=a?(n=e.node).parentNode:(n=r<(s=e.node.childNodes).length?s[r]:null,e.node),e=o.createElem
ent("span");return e.innerHTML="&#feff;",n?s.insertBefore(e,n):s.appendChild(e),i.moveToElementText(e),i.collapse(!t),s.removeChild(e),a&&i[t?"moveStart":"moveEnd"]("character",r),i},((i=function(e){this.textRange=e,this.refresh()}).prototype=new m(document)).refresh=function(){var e,t,n=d(this.textRange),n=u(this.textRange)?e=h(this.textRange,n,!0,!0).boundaryPosition:(e=(t=h(this.textRange,n,!0,!1)).boundaryPosition,h(this.textRange,n,!1,!1,t.nodeInfo).boundaryPosition);this.setStart(e.node,e.offset),this.setEnd(n.node,n.offset)},i.prototype.getName=function(){return"WrappedTextRange"},m.copyComparisonConstants(i),i.rangeToTextRange=g=function(e){var t,n;return e.collapsed?f(new C(e.startContainer,e.startOffset),!0):(t=f(new C(e.startContainer,e.startOffset),!0),n=f(new C(e.endContainer,e.endOffset),!1),(e=v(m.getRangeDocument(e)).createTextRange()).setEndPoint("StartToStart",t),e.setEndPoint("EndToEnd",n),e)},i.prototype.toTextRange=function(){return g(this)},n.WrappedTextRange=i,n.features.implementsDomR
ange&&!n.config.preferTextRange||("undefined"==typeof(o=Function("return this;")()).Range&&(o.Range=i),n.createNativeRange=function(e){return e=N(e,c,"createNativeRange"),v(e).createTextRange()},n.WrappedRange=i)),n.createRange=function(e){return e=N(e,c,"createRange"),new n.WrappedRange(n.createNativeRange(e))},n.createRangyRange=function(e){return e=N(e,c,"createRangyRange"),new m(e)},p.createAliasForDeprecatedMethod(n,"createIframeRange","createRange"),p.createAliasForDeprecatedMethod(n,"createIframeRangyRange","createRangyRange"),n.addShimListener(function(e){var t=e.document;"undefined"==typeof t.createRange&&(t.createRange=function(){return n.createRange(t)}),t=null})}),f.createCoreModule("WrappedSelection",["DomRange","WrappedRange"],function(a,c){var d,u,s,h,e,f,g,p,m,R,C,n,v,l,N,E,y,S,t,T,w,A,x,O,b,P,I,_,D,B,k,L,M,H,W,z;function F(e){return"string"==typeof e?/^backward(s)?$/i.test(e):!!e}function V(e,t){return e?s.isWindow(e)?e:e instanceof ae?e.win:(e=s.getContentDocument(e,c,t),s.getWindow(e)):win
dow}function j(e){return V(e,"getDocSelection").document.selection}function U(e){var t=!1;return t=e.anchorNode?1==s.comparePoints(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset):t}if(a.config.checkSelectionRanges=!0,d="boolean",u="number",s=a.dom,e=(h=a.util).isHostMethod,f=a.DomRange,g=a.WrappedRange,p=a.DOMException,m=s.DomPosition,n=a.features,v="Control",l=s.getDocument,N=s.getBody,E=f.rangesEqual,t=e(window,"getSelection"),y=h.isHostObject(document,"selection"),n.implementsWinGetSelection=t,S=(n.implementsDocSelection=y)&&(!t||a.config.preferTextRange))R=j,a.isSelectionValid=function(e){var e=V(e,"isSelectionValid").document,t=e.selection;return"None"!=t.type||l(t.createRange().parentElement())==e};else{if(!t)return c.fail("Neither document.selection or window.getSelection() detected."),!1;R=function(e){return V(e,"getWinSelection").getSelection()},a.isSelectionValid=function(){return!0}}if(!(t=(a.getNativeSelection=R)()))return c.fail("Native selection was null (possibly issue 138?)"),!1;if(T=a
.createNativeRange(document),w=N(document),A=h.areHostProperties(t,["anchorNode","focusNode","anchorOffset","focusOffset"]),n.selectionHasAnchorAndFocus=A,x=e(t,"extend"),n.selectionHasExtend=x,O=e(t,"setBaseAndExtent"),n.selectionHasSetBaseAndExtent=O,b=typeof t.rangeCount==u,n.selectionHasRangeCount=b,I=!(P=!1),_=x?function(e,t){var n=f.getRangeDocument(t),n=a.createRange(n);n.collapseToPoint(t.endContainer,t.endOffset),e.addRange(ee(n)),e.extend(t.startContainer,t.startOffset)}:null,h.areHostMethods(t,["addRange","getRangeAt","removeAllRanges"])&&typeof t.rangeCount==u&&n.implementsDomRange){var $,q,Y,r,G,Q,o,K,i=window.getSelection();if(i){for(K=1<($=i.rangeCount),q=[],Y=U(i),r=0;r<$;++r)q[r]=i.getRangeAt(r);for(Q=(G=s.createTestElement(document,"",!1)).appendChild(document.createTextNode(" ")),(o=document.createRange()).setStart(Q,1),o.collapse(!0),i.removeAllRanges(),i.addRange(o),I=1==i.rangeCount,i.removeAllRanges(),K||(K=window.navigator.appVersion.match(/Chrome\/(.*?) /),P=!(K&&36<=parseInt(K[
1]))&&(K=o.cloneRange(),o.setStart(Q,0),K.setEnd(Q,3),K.setStart(Q,2),i.addRange(o),i.addRange(K),2==i.rangeCount)),s.removeNode(G),i.removeAllRanges(),r=0;r<$;++r)0==r&&Y?_?_(i,q[r]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),i.addRange(q[r])):i.addRange(q[r])}}function X(e,t,n){var r=n?"end":"start",n=n?"start":"end";e.anchorNode=t[r+"Container"],e.anchorOffset=t[r+"Offset"],e.focusNode=t[n+"Container"],e.focusOffset=t[n+"Offset"]}function Z(e){e.anchorNode=e.focusNode=null,e.anchorOffset=e.focusOffset=0,e.rangeCount=0,e.isCollapsed=!0,e._ranges.length=0,J(e)}function J(e){e.type=0==e.rangeCount?"None":C(e)?"Caret":"Range"}function ee(e){var t;return e instanceof f?((t=a.createNativeRange(e.getDocument())).setEnd(e.endContainer,e.endOffset),t.setStart(
e.startContainer,e.startOffset)):e instanceof g?t=e.nativeRange:n.implementsDomRange&&e instanceof s.getWindow(e.startContainer).Range&&(t=e),t}function te(e){var t=e.getNodes();if(!function(e){if(e.length&&1==e[0].nodeType){for(var t=1,n=e.length;t<n;++t)if(!s.isAncestorOf(e[0],e[t]))return;return 1}}(t))throw c.createError("getSingleElementFromRange: range "+e.inspect()+" did not consist of a single element");return t[0]}function ne(e){return e&&"undefined"!=typeof e.text}function re(e,t){t=new g(t);e._ranges=[t],X(e,t,!1),e.rangeCount=1,e.isCollapsed=t.collapsed,J(e)}function oe(e){var t,n,r,o;if(e._ranges.length=0,"None"==e.docSelection.type)Z(e);else if(ne(t=e.docSelection.createRange()))re(e,t);else{for(e.rangeCount=t.length,r=l(t.item(0)),o=0;o<e.rangeCount;++o)(n=a.createRange(r)).selectNode(t.item(o)),e._ranges.push(n);e.isCollapsed=1==e.rangeCount&&e._ranges[0].collapsed,X(e,e._ranges[e.rangeCount-1],!1),J(e)}}function ie(e,t){for(var n=e.docSelection.createRange(),t=te(t),r=l(n.item(0)),o=N(r).cre
ateControlRange(),i=0,a=n.length;i<a;++i)o.add(n.item(i));try{o.add(t)}catch(s){throw c.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}o.select(),oe(e)}function ae(e,t,n){this.nativeSelection=e,this.docSelection=t,this._ranges=[],this.win=n,this.refresh()}function se(e){e.win=e.anchorNode=e.focusNode=e._ranges=null,e.rangeCount=e.anchorOffset=e.focusOffset=0,e.detached=!0,J(e)}function ce(e,t){for(var n,r,o=k.length;o--;)if(r=(n=k[o]).selection,"deleteAll"==t)se(r);else if(n.win==e)return"delete"==t?(k.splice(o,1),!0):r;return"deleteAll"==t&&(k.length=0),null}function le(e,t){for(var n,r=l(t[0].startContainer),o=N(r).createControlRange(),i=0,a=t.length;i<a;++i){n=te(t[i]);try{o.add(n)}catch(s){throw c.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}o.select(),oe(e)}if(n.selectionSupportsMultipleRanges=P,n.collapsedNonEditableSelectionsSupported=I
,D=!1,w&&e(w,"createControlRange")&&(Q=w.createControlRange(),h.areHostProperties(Q,["item","add"])&&(D=!0)),n.implementsControlRange=D,C=A?function(e){return e.anchorNode===e.focusNode&&e.anchorOffset===e.focusOffset}:function(e){return!!e.rangeCount&&e.getRangeAt(e.rangeCount-1).collapsed},e(t,"getRangeAt")?B=function(e,t){try{return e.getRangeAt(t)}catch(n){return null}}:A&&(B=function(e){var t=l(e.anchorNode),t=a.createRange(t);return t.setStartAndEnd(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset),t.collapsed!==this.isCollapsed&&t.setStartAndEnd(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset),t}),ae.prototype=a.selectionPrototype,k=[],a.getSelection=L=function(e){var t,n,r;return e&&e instanceof ae?(e.refresh(),e):(t=ce(e=V(e,"getNativeSelection")),n=R(e),r=y?j(e):null,t?(t.nativeSelection=n,t.docSelection=r,t.refresh()):(t=new ae(n,r,e),k.push({win:e,selection:t})),t)},h.createAliasForDeprecatedMethod(a,"getIframeSelection","getSelection"),o=ae.prototype,!S&&A&&h.areHostMethods(t,["remove
AllRanges","addRange"]))o.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),Z(this)},M=function(e,t){_(e.nativeSelection,t),e.refresh()},o.addRange=b?function(e,t){var n,r;if(D&&y&&this.docSelection.type==v)ie(this,e);else if(F(t)&&x)M(this,e);else{t=P?this.rangeCount:(this.removeAllRanges(),0),n=ee(e).cloneRange();try{this.nativeSelection.addRange(n)}catch(o){}this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==t+1?(a.config.checkSelectionRanges&&(r=B(this.nativeSelection,this.rangeCount-1))&&!E(r,e)&&(e=new g(r)),this._ranges[this.rangeCount-1]=e,X(this,e,z(this.nativeSelection)),this.isCollapsed=C(this),J(this)):this.refresh()}}:function(e,t){F(t)&&x?M(this,e):(this.nativeSelection.addRange(ee(e)),this.refresh())},o.setRanges=function(e){if(D&&y&&1<e.length)le(this,e);else{this.removeAllRanges();for(var t=0,n=e.length;t<n;++t)this.addRange(e[t])}};else{if(!(e(t,"empty")&&e(T,"select")&&D&&S))return c.fail("No means of selecting a Range or TextRange was found"),!1;o.removeAllRa
nges=function(){var e,t;try{this.docSelection.empty(),"None"!=this.docSelection.type&&(this.anchorNode?e=l(this.anchorNode):this.docSelection.type==v&&(t=this.docSelection.createRange()).length&&(e=l(t.item(0))),e&&(N(e).createTextRange().select(),this.docSelection.empty()))}catch(n){}Z(this)},o.addRange=function(e){this.docSelection.type==v?ie(this,e):(a.WrappedTextRange.rangeToTextRange(e).select(),this._ranges[0]=e,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,X(this,e,!1),J(this))},o.setRanges=function(e){this.removeAllRanges();var t=e.length;1<t?le(this,e):t&&this.addRange(e[0])}}if(o.getRangeAt=function(e){if(e<0||e>=this.rangeCount)throw new p("INDEX_SIZE_ERR");return this._ranges[e].cloneRange()},S)H=function(e){var t;a.isSelectionValid(e.win)?t=e.docSelection.createRange():(t=N(e.win.document).createTextRange()).collapse(!0),e.docSelection.type==v?oe(e):ne(t)?re(e,t):Z(e)};else if(e(t,"getRangeAt")&&typeof t.rangeCount==u)H=function(e){if(D&&y&&e.docSelection.type==v)oe(e);else if(e._
ranges.length=e.rangeCount=e.nativeSelection.rangeCount,e.rangeCount){for(var t=0,n=e.rangeCount;t<n;++t)e._ranges[t]=new a.WrappedRange(e.nativeSelection.getRangeAt(t));X(e,e._ranges[e.rangeCount-1],z(e.nativeSelection)),e.isCollapsed=C(e),J(e)}else Z(e)};else{if(!A||typeof t.isCollapsed!=d||typeof T.collapsed!=d||!n.implementsDomRange)return c.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;H=function(e){var t,n=e.nativeSelection;n.anchorNode?(n=B(n,0),e._ranges=[n],e.rangeCount=1,t=(n=e).nativeSelection,n.anchorNode=t.anchorNode,n.anchorOffset=t.anchorOffset,n.focusNode=t.focusNode,n.focusOffset=t.focusOffset,e.isCollapsed=C(e),J(e)):Z(e)}}function de(e,t){if(e.win.document!=l(t))throw new p("WRONG_DOCUMENT_ERR")}function ue(e,t){if(t<0||t>(s.isCharacterDataNode(e)?e:e.childNodes).length)throw new p("INDEX_SIZE_ERR")}
function he(r){return function(e,t){var n;this.rangeCount?(n=this.getRangeAt(0))["set"+(r?"Start":"End")](e,t):(n=a.createRange(this.win.document)).setStartAndEnd(e,t),this.setSingleRange(n,this.isBackward())}}function fe(e){var t,n,r=[],o=new m(e.anchorNode,e.anchorOffset),i=new m(e.focusNode,e.focusOffset),a="function"==typeof e.getName?e.getName():"Selection";if("undefined"!=typeof e.rangeCount)for(t=0,n=e.rangeCount;t<n;++t)r[t]=f.inspect(e.getRangeAt(t));return"["+a+"(Ranges: "+r.join(", ")+")(anchor: "+o.inspect()+", focus: "+i.inspect()+"]"}o.refresh=function(e){var t,n=e?this._ranges.slice(0):null,r=this.anchorNode,o=this.anchorOffset;if(H(this),e){if((t=n.length)!=this._ranges.length)return!0;if(this.anchorNode!=r||this.anchorOffset!=o)return!0;for(;t--;)if(!E(n[t],this._ranges[t]))return!0;return!1}},W=function(e,t){var n,r,o=e.getAllRanges();for(e.removeAllRanges(),n=0,r=o.length;n<r;++n)E(t,o[n])||e.addRange(o[n]);e.rangeCount||Z(e)},o.removeRange=D&&y?function(e){var t,n,r,o,i,a,s;if(this.docSel
ection.type==v){for(t=this.docSelection.createRange(),n=te(e),r=l(t.item(0)),o=N(r).createControlRange(),i=!1,a=0,s=t.length;a<s;++a)t.item(a)!==n||i?o.add(t.item(a)):i=!0;o.select(),oe(this)}else W(this,e)}:function(e){W(this,e)},!S&&A&&n.implementsDomRange?(z=U,o.isBackward=function(){return z(this)}):z=o.isBackward=function(){return!1},o.isBackwards=o.isBackward,o.toString=function(){for(var e=[],t=0,n=this.rangeCount;t<n;++t)e[t]=""+this._ranges[t];return e.join("")},o.collapse=function(e,t){de(this,e);var n=a.createRange(e);n.collapseToPoint(e,t),this.setSingleRange(n),this.isCollapsed=!0},o.collapseToStart=function(){if(!this.rangeCount)throw new p("INVALID_STATE_ERR");var e=this._ranges[0];this.collapse(e.startContainer,e.startOffset)},o.collapseToEnd=function(){if(!this.rangeCount)throw new p("INVALID_STATE_ERR");var e=this._ranges[this.rangeCount-1];this.collapse(e.endContainer,e.endOffset)},o.selectAllChildren=function(e){de(this,e);var t=a.createRange(e);t.selectNodeContents(e),this.setSingleRange
(t)},O?o.setBaseAndExtent=function(e,t,n,r){this.nativeSelection.setBaseAndExtent(e,t,n,r),this.refresh()}:x&&(o.setBaseAndExtent=function(e,t,n,r){var o,i;ue(e,t),ue(n,r),de(this,e),de(this,n),o=a.createRange(node),(i=-1==s.comparePoints(e,t,n,r))?o.setStartAndEnd(n,r,e,t):o.setStartAndEnd(e,t,n,r),this.setSingleRange(o,i)}),o.deleteFromDocument=function(){var e,t,n,r,o;if(D&&y&&this.docSelection.type==v){for(e=this.docSelection.createRange();e.length;)t=e.item(0),e.remove(t),s.removeNode(t);this.refresh()}else if(this.rangeCount&&(n=this.getAllRanges()).length){for(this.removeAllRanges(),r=0,o=n.length;r<o;++r)n[r].deleteContents();this.addRange(n[o-1])}},o.eachRange=function(e,t){for(var n=0,r=this._ranges.length;n<r;++n)if(e(this.getRangeAt(n)))return t},o.getAllRanges=function(){var t=[];return this.eachRange(function(e){t.push(e)}),t},o.setSingleRange=function(e,t){this.removeAllRanges(),this.addRange(e,t)},o.callMethodOnEachRange=function(t,n){var r=[];return this.eachRange(function(e){r.push(e[t].app
ly(e,n||[]))}),r},o.setStart=he(!0),o.setEnd=he(!1),a.rangePrototype.select=function(e){L(this.getDocument()).setSingleRange(this,e)},o.changeEachRange=function(t){var n=[],e=this.isBackward();this.eachRange(function(e){t(e),n.push(e)}),this.removeAllRanges(),e&&1==n.length?this.addRange(n[0],"backward"):this.setRanges(n)},o.containsNode=function(t,n){return this.eachRange(function(e){return e.containsNode(t,n)},!0)||!1},o.getBookmark=function(e){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[e])}},o.moveToBookmark=function(e){for(var t,n,r=[],o=0;t=e.rangeBookmarks[o++];)(n=a.createRange(this.win)).moveToBookmark(t),r.push(n);e.backward?this.setSingleRange(r[0],"backward"):this.setRanges(r)},o.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},o.restoreRanges=function(e){this.removeAllRanges();for(var t,n=0;t=e.ranges[n];++n)this.addRange(t,e.backward&&0==n)},o.toHtml=function(){var t=[];return this.eachRange(
function(e){t.push(f.toHtml(e))}),t.join("")},n.implementsTextRange&&(o.getNativeTextRange=function(){var e;if(e=this.docSelection){if(ne(e=e.createRange()))return e;throw c.createError("getNativeTextRange: selection is a control selection")}if(0<this.rangeCount)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw c.createError("getNativeTextRange: selection contains no range")}),o.getName=function(){return"WrappedSelection"},o.inspect=function(){return fe(this)},o.detach=function(){ce(this.win,"delete"),se(this)},ae.detachAll=function(){ce(null,"deleteAll")},ae.inspect=fe,ae.isDirectionBackward=F,a.Selection=ae,a.selectionPrototype=o,a.addShimListener(function(e){"undefined"==typeof e.getSelection&&(e.getSelection=function(){return L(e)}),e=null})}),i=!1,e=function(e){i||(i=!0,!f.initialized&&f.config.autoInitialize&&I())},h&&("complete"==document.readyState?e():(g(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",e,!1),t(window,"load",e))),f},this),function(e){e.ran
gy.createModule("SaveRestore",["WrappedSelection"],function(c,a){var o=c.dom,s=o.removeNode,l=c.Selection.isDirectionBackward,g="\ufeff";function d(e,t){return(t||document).getElementById(e)}function i(e,t){var n="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),r=o.getDocument(e.startContainer),e=e.cloneRange();return e.collapse(t),(t=r.createElement("span")).id=n,t.style.lineHeight="0",t.style.display="none",t.className="rangySelectionBoundary",t.appendChild(r.createTextNode(g)),e.insertNode(t),t}function u(e,t,n,r){n=d(n,e);n?(t[r?"setStartBefore":"setEndBefore"](n),s(n)):a.warn("Marker element has been removed. Cannot restore selection.")}function p(e,t){return t.compareBoundaryPoints(e.START_TO_START,e)}function h(e,t){var n,r=c.DomRange.getRangeDocument(e),o=e.toString(),t=l(t);return e.collapsed?{document:r,markerId:(n=i(e,!1)).id,collapsed:!0}:(n=i(e,
!1),{document:r,startMarkerId:i(e,!0).id,endMarkerId:n.id,collapsed:!1,backward:t,toString:function(){return"original text: '"+o+"', new text: '"+e.toString()+"'"}})}function m(e,t){var n,r,o,i=e.document;return void 0===t&&(t=!0),n=c.createRange(i),e.collapsed?(r=d(e.markerId,i))?(r.style.display="inline",(o=r.previousSibling)&&3==o.nodeType?(s(r),n.collapseToPoint(o,o.length)):(n.collapseBefore(r),s(r))):a.warn("Marker element has been removed. Cannot restore selection."):(u(i,n,e.startMarkerId,!0),u(i,n,e.endMarkerId,!1)),t&&n.normalizeBoundaries(),n}function R(e,t){var n,r,o,i,a=[],s=l(t);for((e=e.slice(0)).sort(p),o=0,i=e.length;o<i;++o)a[o]=h(e[o],s);for(o=i-1;0<=o;--o)n=e[o],r=c.DomRange.getRangeDocument(n),n.collapsed?n.collapseAfter(d(a[o].markerId,r)):(n.setEndBefore(d(a[o].endMarkerId,r)),n.setStartAfter(d(a[o].startMarkerId,r)));return a}function C(e){for(var t=[],n=e.length,r=n-1;0<=r;r--)t[r]=m(e[r],!0);return t}function f(e,t){t=d(t,e);t&&s(t)}c.util.extend(c,{saveRange:h,restoreRange:m,saveRa
nges:R,restoreRanges:C,saveSelection:function(e){var t,n,r,o;return c.isSelectionValid(e)?(o=R(n=(t=c.getSelection(e)).getAllRanges(),r=1==n.length&&t.isBackward()),r?t.setSingleRange(n[0],r):t.setRanges(n),{win:e,rangeInfos:o,restored:!1}):(a.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null)},restoreSelection:function(e,t){var n,r,o;e.restored||(n=e.rangeInfos,r=c.getSelection(e.win),o=C(n),1==n.length&&t&&c.features.selectionHasExtend&&n[0].backward?(r.removeAllRanges(),r.addRange(o[0],!0)):r.setRanges(o),e.restored=!0)},removeMarkerElement:f,removeMarkers:function(e){for(var t,n=e.rangeInfos,r=0,o=n.length;r<o;++r)(t=n[r]).collapsed?f(e.doc,t.markerId):(f(e.doc,t.startMarkerId),f(e.doc,t.endMarkerId))}})})}(this),function(e){e.rangy.createModule("Serializer",["WrappedSelection"],function(s,c){var t,l,i,a,e,n="undefined",o=s.util;function h(){return e=e||function(){for(var e,t,n=[],r=0;r<256;++r){for(t=r,e=8;e--;)1==(1&t)?t=
t>>>1^3988292384:t>>>=1;n[r]=t>>>0}return n}()}function f(e){return e.replace(/</g,"<").replace(/>/g,">")}function d(e,t){var n,r,o,i,a,s,c;switch(t=t||[],n=e.nodeType,o=(r=e.childNodes).length,i=[n,e.nodeName,o].join(":"),s=a="",n){case 3:a=f(e.nodeValue);break;case 8:a="\x3c!--"+f(e.nodeValue)+"--\x3e";break;default:a="<"+i+">",s="</>"}for(a&&t.push(a),c=0;c<o;++c)d(r[c],t);return s&&t.push(s),t}function u(e){e=d(e).join("");return t(e).toString(16)}function r(e,t,n){var r=[],o=e;for(n=n||l.getDocument(e).documentElement;o&&o!=n;)r.push(l.getNodeIndex(o,!0)),o=o.parentNode;return r.join("/")+":"+t}function g(e,t,n){for(var r,o,i=t=t||(n||document).documentElement,a=(r=(n=e.split(":"))[0]?n[0].split("/"):[]).length;a--;){if(!((o=parseInt(r[a],10))<i.childNodes.length))throw c.createError("deserializePosition() failed: node "+l.inspectNode(i)+" has no child with index "+o+", "+a);i=i.childNodes[o]}return new l.DomPosition(i,parseInt(n[1],10))}function p(e,t,n){if(n=n||s.DomRange.getRangeDocument(e).doc
umentElement,!l.isOrIsAncestorOf(n,e.commonAncestorContainer))throw c.createError("serializeRange(): range "+e.inspect()+" is not wholly contained within specified root node "+l.inspectNode(n));e=r(e.startContainer,e.startOffset,n)+","+r(e.endContainer,e.endOffset,n);return t||(e+="{"+u(n)+"}"),e}function m(e,t,n){var r,o;if(t?n=n||l.getDocument(t):t=(n=n||document).documentElement,(r=(e=i.exec(e))[4])&&r!==(o=u(t)))throw c.createError("deserializeRange(): checksums of serialized range root node ("+r+") and target root node ("+o+") do not match");return r=g(e[1],t,n),o=g(e[2],t,n),(e=s.createRange(n)).setStartAndEnd(r.node,r.offset,o.node,o.offset),e}function R(e,t,n){return t=t||(n||document).documentElement,!(n=i.exec(e)[3])||n===u(t)}function C(e,t,n){for(var r,o=[],i=0,a=(r=(e=s.getSelection(e)).getAllRanges()).length;i<a;++i)o[i]=p(r[i],t,n);return o.join("|")}function v(e,t,n){var r,o,i,a;for(t?n=n||l.getWindow(t):t=(n=n||window).document.documentElement,r=e.split("|"),e=s.getSelection(n),o=[],i=0,a=r.
length;i<a;++i)o[i]=m(r[i],t,n.document);return e.setRanges(o),e}typeof encodeURIComponent!=n&&typeof decodeURIComponent!=n||c.fail("encodeURIComponent and/or decodeURIComponent method is missing"),e=null,t=function(e){for(var t=function(e){for(var t,n=[],r=0,o=e.length;r<o;++r)(t=e.charCodeAt(r))<128?n.push(t):t<2048?n.push(t>>6|192,63&t|128):n.push(t>>12|224,t>>6&63|128,63&t|128);return n}(e),n=-1,r=h(),o=0,i=t.length;o<i;++o)n=n>>>8^r[255&(n^t[o])];return(-1^n)>>>0},l=s.dom,i=/^([^,]+),([^,\{]+)(\{([^}]+)\})?$/,a="rangySerializedSelection",o.extend(s,{serializePosition:r,deserializePosition:g,serializeRange:p,deserializeRange:m,canDeserializeRange:R,serializeSelection:C,deserializeSelection:v,canDeserializeSelection:function(e,t,n){var r,o,i,a;for(t?r=n?n.document:l.getDocument(t):t=(n=n||window).document.documentElement,i=0,a=(o=e.split("|")).length;i<a;++i)if(!R(o[i],t,r))return!1;return!0},restoreSelectionFromCookie:function(e){var t=function(e){for(var t,n,r=e.split(/[;,]/),o=0,i=r.length;o<i;++o)if((
t=r[o].split("="))[0].replace(/^\s+/,"")==a&&(n=t[1]))return decodeURIComponent(n.replace(/\s+$/,""));return null}((e=e||window).document.cookie);t&&v(t,e.doc)},saveSelectionCookie:function(e,t){var n,r,o,i;e=e||window,n=(t="object"==typeof t?t:{}).expires?";expires="+t.expires.toUTCString():"",r=t.path?";path="+t.path:"",o=t.domain?";domain="+t.domain:"",t=t.secure?";secure":"",i=C(s.getSelection(e)),e.document.cookie=encodeURIComponent(a)+"="+encodeURIComponent(i)+n+r+o+t},getElementChecksum:u,nodeToInfoString:d}),o.crc32=t})}(this),function(e){e.rangy.createModule("ClassApplier",["WrappedSelection"],function(n,m){var d,a,r,t,i,R,C,v,u,h=n.dom,s=h.DomPosition,c=h.arrayContains,e=n.util,p=e.forEach,l=e.isHostMethod(document,"createElementNS");function N(e,t){for(var n in e)if(e.hasOwnProperty(n)&&!1===t(n,e[n]))return!1;return!0}function E(e){return e.replace(/^\s\s*/,""
).replace(/\s\s*$/,"")}function y(e,t){return!!e&&new RegExp("(?:^|\\s)"+t+"(?:\\s|$)").test(e)}function S(e,t){return"object"==typeof e.classList?e.classList.contains(t):y("string"==typeof e.className?e.className:e.getAttribute("class"),t)}function f(e,t){var n,r;"object"==typeof e.classList?e.classList.add(t):((r=(n="string"==typeof e.className)?e.className:e.getAttribute("class"))?y(r,t)||(r+=" "+t):r=t,n?e.className=r:e.setAttribute("class",r))}function T(e,t,n){return t&&n?" ":""}function w(e){return"string"==typeof e.className?e.className:e.getAttribute("class")}function A(e){return e&&e.split(/\s+/).sort().join(" ")}function x(e){return A(w(e))}function O(e,t){return x(e)==x(t)}function b(e,t){for(var n=t.split(/\s+/),r=0,o=n.length;r<o;++r)if(!S(e,E(n[r])))return!1;return!0}function P(e,c,l,t){var d,u;-1==l&&(l=c.childNodes.length),d=e.parentNode,u=h.getNodeIndex(e),p(t,function(e){var t,n,r,o,i,a,s;t=u,n=c,r=l,o=(e=e).node,i=e.offset,s=i,(a=o)==n&&r<i&&++s,o!=d||i!=t&&i!=t+1||(a=n,s+=r-t),o==d&&t+1<
i&&--s,e.node=a,e.offset=s}),c.childNodes.length==l?c.appendChild(e):c.insertBefore(e,c.childNodes[l])}function I(e,t){var n=e.parentNode,r=h.getNodeIndex(e);p(t,function(e){var t;t=r,(e=e).node==n&&e.offset>t&&--e.offset}),h.removeNode(e)}function _(e,t){for(var n,r=e,o=e.parentNode,i=h.getNodeIndex(e),e=!0,a=t,s=[];n=r.firstChild;)P(n,o,i++,a),s.push(n);return e&&I(r,a),s}function D(e,t){var n=e.cloneRange();return n.selectNodeContents(t),""!=((t=n.intersection(e))?t.toString():"")}function B(e){for(var t,n,r=e.getNodes([3]),o=0;(t=r[o])&&!D(e,t);)++o;for(n=r.length-1;(t=r[n])&&!D(e,t);)--n;return r.slice(o,n+1)}function k(e,t){if(e.attributes.length!=t.attributes.length)return!1;for(var n,r,o=0,i=e.attributes.length;o<i;++o)if("class"!=(r=(n=e.attributes[o]).name)){if(null===n!=(null===(r=t.attributes.getNamedItem(r))))return!1;if(n.specified!=r.specified)return!1;if(n.specified&&n.nodeValue!==r.nodeValue)return!1}return!0}function L(e,t){for(var n,r=0,o=e.attributes.length;r<o;++r)if(n=e.attributes[r].na
me,(!t||!c(t,n))&&e.attributes[r].specified&&"class"!=n)return!0;return!1}function M(e){var t;return e&&1==e.nodeType&&((t=e.parentNode)&&9==t.nodeType&&"on"==t.designMode||r(e)&&!r(e.parentNode))}function H(e){return(r(e)||1!=e.nodeType&&r(e.parentNode))&&!M(e)}function W(e){return e&&1==e.nodeType&&!t.test(a(e,"display"))}function z(e){for(var t,n=[],r=0;t=e[r++];)n.push(new s(t.startContainer,t.startOffset),new s(t.endContainer,t.endOffset));return n}function F(e,t){for(var n,r,o,i=0,a=e.length;i<a;++i)n=e[i],r=t[2*i],o=t[2*i+1],n.setStartAndEnd(r.node,r.offset,o.node,o.offset)}function g(e,t,n,r){var o,i,a,s,c,l=0==n;if(h.isAncestorOf(t,e))return e;if(h.isCharacterDataNode(t)){if(s=h.getNodeIndex(t),0==n)n=s;else{if(n!=t.length)throw m.createError("splitNodeAt() should not be called with offset in the middle of a data node ("+n+" in "+t.data);n=s+1}t=t.parentNode}if(s=t,c=n,h.isCharacterDataNode(s)?0==c?s.previousSibling:c!=s.length||s.nextSibling:0<c&&c<s.childNodes.length){for(o=t.cloneNode(!1),c=t.par
entNode,o.id&&o.removeAttribute("id"),a=0;i=t.childNodes[n];)P(i,o,a++,r);return P(o,c,h.getNodeIndex(t)+1,r),t==e?o:g(e,c,h.getNodeIndex(o),r)}return e!=t?(o=t.parentNode,c=h.getNodeIndex(t),l||c++,g(e,o,c,r)):e}function V(o){var i=o?"nextSibling":"previousSibling";return function(e,t){var n,r=e.parentNode,e=e[i];if(e){if(3==e.nodeType)return e}else if(t&&(e=r[i])&&1==e.nodeType&&(t=e,(r=r).namespaceURI==t.namespaceURI&&r.tagName.toLowerCase()==t.tagName.toLowerCase()&&O(r,t)&&k(r,t)&&"inline"==a(r,"display")&&"inline"==a(t,"display"))&&(n=e[o?"firstChild":"lastChild"])&&3==n.nodeType)return n;return null}}function j(e){this.isElementMerge=1==e.nodeType,this.textNodes=[];e=this.isElementMerge?e.lastChild:e;e&&(this.textNodes[0]=e)}function o(e,t,n){var r,o,i,a,s,c,l=this;if(l.cssClass=l.className=e,c=null,a={},"object"==typeof t&&null!==t){for("undefined"!=typeof t.elementTagName&&(t.elementTagName=t.elementTagName.toLowerCase()),n=t.tagNames,c=t.elementProperties,a=t.elementAttributes,r=0;i=v[r++];)t.hasOw
nProperty(i)&&(l[i]=t[i]);s=t.normalize}else s=t;if(l.normalize=void 0===s||s,l.attrExceptions=[],s=document.createElement(l.elementTagName),l.elementProperties=l.copyPropertiesToElement(c,s,!0),N(a,function(e,t){l.attrExceptions.push(e),a[e]=""+t}),l.elementAttributes=a,l.elementSortedClassName=l.elementProperties.hasOwnProperty("className")?A(l.elementProperties.className+" "+e):e,l.applyToAnyTagName=!1,"string"==(c=typeof n))"*"==n?l.applyToAnyTagName=!0:l.tagNames=E(n.toLowerCase()).split(/\s*,\s*/);else if("object"==c&&"number"==typeof n.length)for(l.tagNames=[],r=0,o=n.length;r<o;++r)"*"==n[r]?l.applyToAnyTagName=!0:l.tagNames.push(n[r].toLowerCase());else l.tagNames=[l.elementTagName]}d=function(e,t){var n,r;"object"==typeof e.classList?e.classList.remove(t):(r=(r=(n="string"==typeof e.className)?e.className:e.getAttribute("class")).replace(new RegExp("(^|\\s)"+t+"(\\s|$)"),T),n?e.className=r:e.setAttribute("class",r))},a=h.getComputedStyleProperty,r="boolean"==typeof document.createElement("div").isC
ontentEditable?function(e){return e&&1==e.nodeType&&e.isContentEditable}:function(e){return!(!e||1!=e.nodeType||"false"==e.contentEditable)&&("true"==e.contentEditable||r(e.parentNode))},t=/^inline(-block|-table)?$/i,R=V(!(i=/[^\r\n\t\f \u200B]/)),C=V(!0),j.prototype={doMerge:function(e){var r,o,i,a,s=this.textNodes,c=s[0];return 1<s.length&&(r=h.getNodeIndex(c),o=[],i=0,p(s,function(t,n){a=t.parentNode,0<n&&(a.removeChild(t),a.hasChildNodes()||h.removeNode(a),e&&p(e,function(e){e.node==t&&(e.node=c,e.offset+=i),e.node==a&&e.offset>r&&(--e.offset,e.offset==r+1&&n<s.length-1&&(e.node=c,e.offset=i))})),o[n]=t.data,i+=t.data.length}),c.data=o.join("")),c.data},getLength:function(){for(var e=this.textNodes.length,t=0;e--;)t+=this.textNodes[e].length;return t},toString:function(){var n=[];return p(this.textNodes,function(e,t){n[t]="'"+e.data+"'"}),"[Merge("+n.join(",")+")]"}},
u={},o.prototype={elementTagName:"span",elementProperties:{},elementAttributes:{},ignoreWhiteSpace:!0,applyToEditableOnly:!(v=["elementTagName","ignoreWhiteSpace","applyToEditableOnly","useExistingElements","removeEmptyElements","onElementCreate"]),useExistingElements:!0,removeEmptyElements:!0,onElementCreate:null,copyPropertiesToElement:function(e,t,n){var r,o,i,a,s,c,l={};for(c in e)if(e.hasOwnProperty(c))if(a=e[c],s=t[c],"className"==c)f(t,a),f(t,this.className),t[c]=A(t[c]),n&&(l[c]=a);else if("style"==c){for(r in o=s,n&&(l[c]=i={}),e[c])e[c].hasOwnProperty(r)&&(o[r]=a[r],n&&(i[r]=o[r]));this.attrExceptions.push(c)}else t[c]=a,n&&(l[c]=t[c],s=u.hasOwnProperty(c)?u[c]:c,this.attrExceptions.push(s));return n?l:""},copyAttributesToElement:function(e,t){for(var n in e)e.hasOwnProperty(n)&&!/^class(?:Name)?$/i.test(n)&&t.setAttribute(n,e[n])},appliesToElement:function(e){return c(this.tagNames,e.tagName.toLowerCase())},getEmptyElements:function(e){var t=this;return e.getNodes([1],function(e){return t.appliesT
oElement(e)&&!e.hasChildNodes()})},hasClass:function(e){return 1==e.nodeType&&(this.applyToAnyTagName||this.appliesToElement(e))&&S(e,this.className)},getSelfOrAncestorWithClass:function(e){for(;e;){if(this.hasClass(e))return e;e=e.parentNode}return null},isModifiable:function(e){return!this.applyToEditableOnly||H(e)},isIgnorableWhiteSpaceNode:function(e){return this.ignoreWhiteSpace&&e&&3==e.nodeType&&function(e){if(0==e.data.length)return!0;if(i.test(e.data))return!1;switch(a(e.parentNode,"whiteSpace")){case"pre":case"pre-wrap":case"-moz-pre-wrap":return!1;case"pre-line":if(/[\r\n]/.test(e.data))return!1}return W(e.previousSibling)||W(e.nextSibling)}(e)},postApply:function(e,d,u,t){var n,r,o,i,a=e[0],s=e[e.length-1],c=[],l=a,h=s,f=0,g=s.length;if(p(e,function(e){(r=R(e,!t))?(n||(n=new j(r),c.push(n)),n.textNodes.push(e),e===a&&(l=n.textNodes[0],f=l.length),e===s&&(h=n.textNodes[0],g=n.getLength())):n=null}),(e=C(s,!t))&&(n||(n=new j(s),c.push(n)),n.textNodes.push(e)),c.length){for(o=0,i=c.length;o<i;++o)c[
o].doMerge(u);d.setStartAndEnd(l,f,h,g)}},createContainer:function(e){var t=h.getDocument(e),e=l&&!h.isHtmlNamespace(e)&&e.namespaceURI?t.createElementNS(e.namespaceURI,this.elementTagName):t.createElement(this.elementTagName);return this.copyPropertiesToElement(this.elementProperties,e,!1),this.copyAttributesToElement(this.elementAttributes,e),f(e,this.className),this.onElementCreate&&this.onElementCreate(e,this),e},elementHasProperties:function(n,e){var r=this;return N(e,function(e,t){if("className"==e)return b(n,t);if("object"==typeof t){if(!r.elementHasProperties(n[e],t))return!1}else if(n[e]!==t)return!1})},elementHasAttributes:function(n,e){return N(e,function(e,t){if(n.getAttribute(e)!==t)return!1})},applyToTextNode:function(e,t){var n,r;(r=(r=e).parentNode)&&1==r.nodeType&&!/^(textarea|style|script|select|iframe)$/i.test(r.nodeName)&&(1==(r=e.parentNode).childNodes.length&&this.useExistingElements&&this.appliesToElement(r)&&this.elementHasProperties(r,this.elementProperties)&&this.elementHasAttribute
s(r,this.elementAttributes)?f(r,this.className):(r=e.parentNode,n=this.createContainer(r),r.insertBefore(n,e),n.appendChild(e)))},isRemovable:function(e){return e.tagName.toLowerCase()==this.elementTagName&&x(e)==this.elementSortedClassName&&this.elementHasProperties(e,this.elementProperties)&&!L(e,this.attrExceptions)&&this.elementHasAttributes(e,this.elementAttributes)&&this.isModifiable(e)},isEmptyContainer:function(e){var t=e.childNodes.length;return 1==e.nodeType&&this.isRemovable(e)&&(0==t||1==t&&this.isEmptyContainer(e.firstChild))},removeEmptyContainers:function(e){var t=this,n=e.getNodes([1],function(e){return t.isEmptyContainer(e)}),e=[e],r=z(e);p(n,function(e){I(e,r)}),F(e,r)},undoToTextNode:function(e,t,n,r){var o;t.containsNode(n)||((o=t.cloneRange()).selectNode(n),o.isPointInRange(t.endContainer,t.endOffset)&&(g(n,t.endContainer,t.endOffset,r),t.setEndAfter(n)),o.isPointInRange(t.startContainer,t.startOffset)&&(n=g(n,t.startContainer,t.startOffset,r))),this.isRemovable(n)?_(n,r):d(n,this.classN
ame)},splitAncestorWithClass:function(e,t,n){var r=this.getSelfOrAncestorWithClass(e);r&&g(r,e,t,n)},undoToAncestor:function(e,t){this.isRemovable(e)?_(e,t):d(e,this.className)},applyToRange:function(e,t){var n,r,o=this,i=z((t=t||[])||[]);e.splitBoundariesPreservingPositions(i),o.removeEmptyElements&&o.removeEmptyContainers(e),(n=B(e)).length&&(p(n,function(e){o.isIgnorableWhiteSpaceNode(e)||o.getSelfOrAncestorWithClass(e)||!o.isModifiable(e)||o.applyToTextNode(e,i)}),r=n[n.length-1],e.setStartAndEnd(n[0],0,r,r.length),o.normalize&&o.postApply(n,e,i,!1),F(t,i)),r=o.getEmptyElements(e),p(r,function(e){f(e,o.className)})},applyToRanges:function(e){for(var t=e.length;t--;)this.applyToRange(e[t],e);return e},applyToSelection:function(e){e=n.getSelection(e);e.setRanges(this.applyToRanges(e.getAllRanges()))},undoToRange:function(e,t){var n,r,o,i,a,s,c=this,l=z(t=t||[]);if(e.splitBoundariesPreservingPositions(l),c.removeEmptyElements&&c.removeEmptyContainers(e,l),s=(n=B(e))[n.length-1],n.length){for(c.splitAncestor
WithClass(e.endContainer,e.endOffset,l),c.splitAncestorWithClass(e.startContainer,e.startOffset,l),i=0,a=n.length;i<a;++i)r=n[i],(o=c.getSelfOrAncestorWithClass(r))&&c.isModifiable(r)&&c.undoToAncestor(o,l);e.setStartAndEnd(n[0],0,s,s.length),c.normalize&&c.postApply(n,e,l,!0),F(t,l)}s=c.getEmptyElements(e),p(s,function(e){d(e,c.className)})},undoToRanges:function(e){for(var t=e.length;t--;)this.undoToRange(e[t],e);return e},undoToSelection:function(e){var t=n.getSelection(e),e=n.getSelection(e).getAllRanges();this.undoToRanges(e),t.setRanges(e)},isAppliedToRange:function(e){var t,n,r;if(e.collapsed||""==e.toString())return!!this.getSelfOrAncestorWithClass(e.commonAncestorContainer);if((t=e.getNodes([3])).length)for(n=0;r=t[n++];)if(!this.isIgnorableWhiteSpaceNode(r)&&D(e,r)&&this.isModifiable(r)&&!this.getSelfOrAncestorWithClass(r))return!1;return!0},
isAppliedToRanges:function(e){var t=e.length;if(0==t)return!1;for(;t--;)if(!this.isAppliedToRange(e[t]))return!1;return!0},isAppliedToSelection:function(e){e=n.getSelection(e);return this.isAppliedToRanges(e.getAllRanges())},toggleRange:function(e){this.isAppliedToRange(e)?this.undoToRange(e):this.applyToRange(e)},toggleSelection:function(e){this.isAppliedToSelection(e)?this.undoToSelection(e):this.applyToSelection(e)},getElementsWithClassIntersectingRange:function(e){var t=[],n=this;return e.getNodes([3],function(e){e=n.getSelfOrAncestorWithClass(e);e&&!c(t,e)&&t.push(e)}),t},detach:function(){}},o.util={hasClass:S,addClass:f,removeClass:d,getClass:w,hasSameClasses:O,hasAllClasses:b,replaceWithOwnChildren:_,elementsHaveSameNonClassAttributes:k,elementHasNonClassAttributes:L,splitNodeAt:g,isEditableElement:r,isEditingHost:M,isEditable:H},n.CssClassApplier=n.ClassApplier=o,n.createClassApplier=function(e,t,n){return new o(e,t,n)},e.createAliasForDeprecatedMethod(n,"createCssClassApplier","createClassApplier",
m)})}(this),function(e){e.rangy.createModule("Highlighter",["ClassApplier"],function(y,e){var n,o,t,i=y.dom,s=i.arrayContains,c=i.getBody,S=y.util.createOptions,T=y.util.forEach,a=1;function l(e,t){return e.characterRange.start-t.characterRange.start}function u(e,t){return t?e.getElementById(t):c(e)}function r(e,t){this.type=e,this.converterCreator=t}function d(e,t){n[e]=new r(e,t)}function h(e){var t=n[e];if(t instanceof r)return t.create();throw new Error("Highlighter type '"+e+"' is not valid")}function w(e,t){this.start=e,this.end=t}function A(e,t,n,r,o,i){o?(this.id=o,a=Math.max(a,o+1)):this.id=a++,this.characterRange=t,this.doc=e,this.classApplier=n,this.converter=r,this.containerElementId=i||null,this.applied=!1}function f(e,t){t=t||"textContent",this.doc=e||document,this.classAppliers={},this.highlights=[],this.converter=h(t)}n={},r.prototype.create=function(){var e=this.converterCreator();return e.type=this.type,e},y.registerHighlighterType=d,w.prototype={intersects:function(e){return this.start<e.e
nd&&this.end>e.start},isContiguousWith:function(e){return this.start==e.end||this.end==e.start},union:function(e){return new w(Math.min(this.start,e.start),Math.max(this.end,e.end))},intersection:function(e){return new w(Math.max(this.start,e.start),Math.min(this.end,e.end))},getComplements:function(e){var t=[];if(this.start>=e.start){if(this.end<=e.end)return[];t.push(new w(e.end,this.end))}else t.push(new w(this.start,Math.min(this.end,e.start))),this.end>e.end&&t.push(new w(e.end,this.end));return t},toString:function(){return"[CharacterRange("+this.start+", "+this.end+")]"}},w.fromCharacterRange=function(e){return new w(e.start,e.end)},o={rangeToCharacterRange:function(e,t){t=e.getBookmark(t);return new w(t.start,t.end)},characterRangeToRange:function(e,t,n){e=y.createRange(e);return e.moveToBookmark({start:t.start,end:t.end,containerNode:n}),e},serializeSelection:function(e,t){for(var n=e.getAllRanges(),r=n.length,o=[],i=1==r&&e.isBackward(),a=0,s=n.length;a<s;++a)o[a]={characterRange:this.rangeToCharac
terRange(n[a],t),backward:i};return o},restoreSelection:function(e,t,n){var r,o,i,a,s;for(e.removeAllRanges(),r=e.win.document,o=0,i=t.length;o<i;++o)(s=t[o]).characterRange,a=this.characterRangeToRange(r,s.characterRange,n),e.addRange(a,s.backward)}},d("textContent",function(){return o}),d("TextRange",function(){if(!t){var e=y.modules.TextRange;if(!e)throw new Error("TextRange module is missing.");if(!e.supported)throw new Error("TextRange module is present but not supported.");t={rangeToCharacterRange:function(e,t){return w.fromCharacterRange(e.toCharacterRange(t))},characterRangeToRange:function(e,t,n){e=y.createRange(e);return e.selectCharacters(n,t.start,t.end),e},serializeSelection:function(e,t){return e.saveCharacterRanges(t)},restoreSelection:function(e,t,n){e.restoreCharacterRanges(n,t)}}}return t}),A.prototype={getContainerElement:function(){return u(this.doc,this.containerElementId)},getRange:function(){return this.converter.characterRangeToRange(this.doc,this.characterRange,this.getContainerEleme
nt())},fromRange:function(e){this.characterRange=this.converter.rangeToCharacterRange(e,this.getContainerElement())},getText:function(){return this.getRange().toString()},containsElement:function(e){return this.getRange().containsNodeContents(e.firstChild)},unapply:function(){this.classApplier.undoToRange(this.getRange()),this.applied=!1},apply:function(){this.classApplier.applyToRange(this.getRange()),this.applied=!0},getHighlightElements:function(){return this.classApplier.getElementsWithClassIntersectingRange(this.getRange())},toString:function(){return"[Highlight(ID: "+this.id+", class: "+this.classApplier.className+", character range: "+this.characterRange.start+" - "+this.characterRange.end+")]"}},f.prototype={addClassApplier:function(e){this.classAppliers[e.className]=e},getHighlightForElement:function(e){for(var t=this.highlights,n=0,r=t.length;n<r;++n)if(t[n].containsElement(e))return t[n];return null},removeHighlights:function(e){for(var t,n=0,r=this.highlights.length;n<r;++n)t=this.highlights[n],s
(e,t)&&(t.unapply(),this.highlights.splice(n--,1))},removeAllHighlights:function(){this.removeHighlights(this.highlights)},getIntersectingHighlights:function(e){var n=[],r=this.highlights;return T(e,function(t){T(r,function(e){t.intersectsRange(e.getRange())&&!s(n,e)&&n.push(e)})}),n},highlightCharacterRanges:function(e,d,t){var n,u,r,o,h,f,g,i,a,p,m,s,R,C,c=this.highlights,v=this.converter,N=this.doc,E=[],l=e?this.classAppliers[e]:null;for(t=S(t,{containerElementId:null,exclusive:!0}),o=t.containerElementId,h=t.exclusive,o&&(f=this.doc.getElementById(o))&&((e=y.createRange(this.doc)).selectNodeContents(f),g=new w(0,e.toString().length)),n=0,u=d.length;n<u;++n)if(i=d[n],s=[],(i=g?i.intersection(g):i).start!=i.end){for(r=0;r<c.length;++r)p=!1,o==c[r].containerElementId&&(a=c[r].characterRange,R=!(m=l==c[r].classApplier)&&h,(a.intersects(i)||a.isContiguousWith(i))&&(m||R)&&(
R&&T(a.getComplements(i),function(e){s.push(new A(N,e,c[r].classApplier,v,null,o))}),p=!0,m&&(i=a.union(i)))),p?(E.push(c[r]),c[r]=new A(N,a.union(i),l,v,null,o)):s.push(c[r]);l&&s.push(new A(N,i,l,v,null,o)),this.highlights=c=s}return T(E,function(e){e.unapply()}),C=[],T(c,function(e){e.applied||(e.apply(),C.push(e))}),C},highlightRanges:function(e,t,n){var r,o,i,a=[],s=this.converter;return n=S(n,{containerElement:null,exclusive:!0}),o=(r=n.containerElement)?r.id:null,r&&(i=y.createRange(r)).selectNodeContents(r),T(t,function(e){var t=r?i.intersection(e):e;a.push(s.rangeToCharacterRange(t,r||c(e.getDocument())))}),this.highlightCharacterRanges(e,a,{containerElementId:o,exclusive:n.exclusive})},highlightSelection:function(e,t){var n,r=this.converter,o=!!e&&this.classAppliers[e],i=(t=S(t,{containerElementId:null,exclusive:!0})).containerElementId,a=t.exclusive,s=u((t=t.selection||y.getSelection(this.doc)).win.document,i);if(!o&&!1!==e)throw new Error("No class applier found for class '"+e+"'");return o=r.ser
ializeSelection(t,s),n=[],T(o,function(e){n.push(w.fromCharacterRange(e.characterRange))}),e=this.highlightCharacterRanges(e,n,{containerElementId:i,exclusive:a}),r.restoreSelection(t,o,s),e},unhighlightSelection:function(e){e=e||y.getSelection(this.doc);var t=this.getIntersectingHighlights(e.getAllRanges());return this.removeHighlights(t),e.removeAllRanges(),t},getHighlightsInSelection:function(e){return e=e||y.getSelection(this.doc),this.getIntersectingHighlights(e.getAllRanges())},selectionOverlapsHighlight:function(e){return 0<this.getHighlightsInSelection(e).length},serialize:function(r){var e,o,i,a,s=this,t=s.highlights;return t.sort(l),e=(r=S(r,{serializeHighlightText:!1,type:s.converter.type})).type,(i=e!=s.converter.type)&&(a=h(e)),o=["type:"+e],T(t,function(e){var t,n=e.characterRange;i&&(t=e.getContainerElement(),n=a.rangeToCharacterRange(s.converter.characterRangeToRange(s.doc,n,t),t)),t=[n.start,n.end,e.id,e.classApplier.className,e.containerElementId],r.serializeHighlightText&&t.push(e.getText(
)),o.push(t.join("$"))}),o.join("|")},deserialize:function(e){var t,n,r,o,i,a,s,c=e.split("|"),l=[],e=c[0],d=!1;if(!e||!(t=/^type:(\w+)$/.exec(e)))throw new Error("Serialized highlights are invalid.");for((e=t[1])!=this.converter.type&&(n=h(e),d=!0),c.shift(),a=c.length;0<a--;){if(r=new w(+(s=c[a].split("$"))[0],+s[1]),o=s[4]||null,d&&(i=u(this.doc,o),r=this.converter.rangeToCharacterRange(n.characterRangeToRange(this.doc,r,i),i)),!(i=this.classAppliers[s[3]]))throw new Error("No class applier found for class '"+s[3]+"'");(r=new A(this.doc,r,i,this.converter,parseInt(s[2]),o)).apply(),l.push(r)}this.highlights=l}},y.Highlighter=f,y.createHighlighter=function(e,t){return new f(e,t)}})}(this),function(e){e.rangy.createModule("TextRange",["WrappedSelection"],function(m,c){var l,u,h,f,g,p,R,i,C,v,N,E,d,y,S,T,w,A,r,x,O,b,P,e,t,I,_="character",D="word",a=m.dom,B=m.util,s=B.extend,k=B.createOptions,L=a.getBody,M=/^[ \t\f\r\n]+$/,H=/^[ \t\f\r]+$/,W=/^[\t-\r \u0085\u00A0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u20
5F\u3000]+$/,z=/^[\t \u00A0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000]+$/,F="en",V=m.Selection.isDirectionBackward;function j(e,t,n){for(var r,o=n(e,t),i=[],a=0;r=o[a++];)i.push(function(e,t){for(var n=e.slice(t.start,t.end),r={isWord:t.isWord,chars:n,toString:function(){return n.join("")}},o=0,i=n.length;o<i;++o)n[o].token=r;return r}(e,r));return i}function U(e,t){var n,r,o,e=k(e,t);return t.hasOwnProperty("wordOptions")&&(e.wordOptions=(n=e.wordOptions)?(r=n.language||F,s(o={},h[r]||h[F]),s(o,n),o):h[F]),t.hasOwnProperty("characterOptions")&&(e.characterOptions=k(e.characterOptions,l)),e}function $(e,t){t=i(e,"display",t),e=e.tagName.toLowerCase();return"block"==t&&C&&v.hasOwnProperty(e)?v[e]:t}function q(e){for(var t=function(e){var t=[];for(;e.parentNode;)t.unshift(e.parentNode),e=e.parentNode;return t}(e=e).concat([e]),n=0,r=t.length;n<r;++n)if(1==t[n].nodeType&&"none"==$(t[n]))return!0;return!1}function Y(e,t){if(!t&&e.hasChildNodes())return e.firstChild;for(var n=e;n&&!n.nextSibling;)n=n.parentNode;
return n?n.nextSibling:null}function G(e){var t=e.previousSibling;if(t){for(e=t;e.hasChildNodes();)e=e.lastChild;return e}return(t=e.parentNode)&&1==t.nodeType?t:null}function Q(e){var t,n;return!(!e||3!=e.nodeType)&&(""===(t=e.data)||!(!(n=e.parentNode)||1!=n.nodeType)&&(n=i(e.parentNode,"whiteSpace"),/^[\t\n\r ]+$/.test(t)&&/^(normal|nowrap)$/.test(n)||/^[\t\r ]+$/.test(t)&&"pre-line"==n))}function K(e){return""===e.data||!!Q(e)&&(!e.parentNode||!!q(e))}function X(e){var t,n=e.nodeType;return 7==n||8==n||q(e)||/^(script|style)$/i.test(e.nodeName)||3==(n=e).nodeType&&(t=n.parentNode)&&"hidden"==i(t,"visibility")||K(e)}function Z(e,t){var n=e.nodeType;return 7==n||8==n||1==n&&"none"==$(e,t)}function J(){this.store={}}function n(n,r,o){return function(e){var t=this.cache;return t.hasOwnProperty(n)?t[n]:(e=r.call(this,o?this[o]:this,e),t[n]=e)}}function ee(e,t){this.node=e,this.session=t,this.cache=new J,this.positions=new J}function te(e,t){this.offset=t,this.nodeWrapper=e,this.node=e.node,this.session=e.sess
ion,this.cache=new J}function ne(o){var i=new J;return{get:function(e){var t,n,r=i.get(e[o]);if(r)for(t=0;n=r[t++];)if(n.node===e)return n;return null},set:function(e){var t=e.node[o],t=i.get(t)||i.set(t,[]);t.push(e)}}}function re(){this.initCaches()}function oe(){return r||(ie(),r=new x)}function ie(){r&&r.detach(),r=null}function ae(e,t,n,r){var o,i,a,s;return n&&(t?X(n.node)&&(n=e.previousVisible()):X(n.node)&&(n=n.nextVisible())),o=e,s=i=!1,{next:function(){if(s)return s=!1,a;for(var e;e=null,t?(e=o,i||(o=o.previousVisible(),i=!o||n&&o.equals(n))):i||(e=o=o.nextVisible(),i=!o||n&&o.equals(n)),i&&(o=null),e=e;)if(e.getCharacter(r))return a=e;return null},rewind:function(){if(!a)throw c.createError("createCharacterIterator: cannot rewind. Only one position can be rewound.");s=!0},dispose:function(){e=n=null}}}function se(e,t,n){var r,o,i,s=ae(e,!1,null,t),c=ae(e,!0,null
,t),a=n.tokenizer;function l(e){for(var t,n,r=[],o=e?s:c,i=!1,a=!1;t=o.next();){if(n=t.character,W.test(n))a&&(i=!(a=!1));else{if(i){o.rewind();break}a=!0}r.push(t)}return r}return e=l(!0),r=j((t=l(!1).reverse()).concat(e),n,a),o=e.length?r.slice(O(r,e[0].token)):[],i=t.length?r.slice(0,O(r,t.pop().token)+1):[],{nextEndToken:function(){for(var e,t;1==o.length&&!(e=o[0]).isWord&&0<(t=l(!0)).length;)o=j(e.chars.concat(t),n,a);return o.shift()},previousStartToken:function(){for(var e,t;1==i.length&&!(e=i[0]).isWord&&0<(t=l(!1)).length;)i=j(t.reverse().concat(e.chars),n,a);return i.pop()},dispose:function(){s.dispose(),c.dispose(),o=i=null}}}function ce(e,t,n,r){var o=e.getRangeBoundaryPosition(t,!0),t=e.getRangeBoundaryPosition(t,!1),e=r?t:o,o=r?o:t;return ae(e,!!r,o,n)}function le(d,e,u,h,a){var t,n,r,o,f,i=V(a.direction),g=ae(d,i,d.session.getRangeBoundaryPosition(h,i),a.characterOptions),s="",c=[],l=null;function p(e,t){var n,r,o,e=c[e].previousVisible(),t=c[t-1],i=!a.wholeWordsOnly||(i=e,n=t,r=a.wordOptions
,(o=m.createRange(i.node)).setStartAndEnd(i.node,i.offset,n.node,n.offset),!o.expand("word",{wordOptions:r}));return{startPos:e,endPos:t,valid:i}}for(;o=g.next();)if(t=o.character,u||a.caseSensitive||(t=t.toLowerCase()),i?(c.unshift(o),s=t+s):(c.push(o),s+=t),u){if(o=e.exec(s))if(r=(n=o.index)+o[0].length,f){if(!i&&r<s.length||i&&0<n){l=p(n,r);break}}else f=!0}else if(-1!=(n=s.indexOf(e))){l=p(n,n+e.length);break}return f&&(l=p(n,r)),g.dispose(),l}function o(n){return function(){var e=!!r,t=oe(),t=[t].concat(B.toArray(arguments)),t=n.apply(this,t);return e||ie(),t}}function de(i,a){return o(function(e,t,n,r){var o;return void 0===n&&(n=t,t=_),r=U(r,g),o=i,a&&this.collapse(!(o=0<=n)),t=(e=function(e,t,n,r,d){var u,o,i,a,s,h,f,c=0,l=e,g=Math.abs(n);if(0!==n){switch(s=n<0,t){case _:for(o=ae(e,s,null,r);(u=o.next())&&c<g;)++c,l=u;i=u,o.dispose();break;case D:for(h=se(e,r,d),f=s?h.previousStartToken:h.nextEndToken;(a=f())&&c<g;)a.isWord&&(++c,l=s?a.chars[0]:a.chars[a.chars.length-1]);break;default:throw new Error
("movePositionBy: unit '"+t+"' not implemented")}s?(l=l.previousVisible(),c=-c):l&&l.isLeadingSpace&&!l.isTrailingSpace&&(t==D&&(i=(o=ae(e,!1,null,r)).next(),o.dispose()),i&&(l=i.previousVisible()))}return{position:l,unitsMoved:c}}(e.getRangeBoundaryPosition(this,o),t,n,r.characterOptions,r.wordOptions)).position,this[o?"setStart":"setEnd"](t.node,t.offset),e.unitsMoved})}function ue(i){return o(function(e,t){for(var n,r=ce(e,this,t=k(t,l),!i),o=0;(n=r.next())&&W.test(n.character);)++o;return r.dispose(),(e=0<o)&&this[i?"moveStart":"moveEnd"]("character",i?o:-o,{characterOptions:t}),e})}function he(r){return o(function(e,t){var n=!1;return this.changeEachRange(function(e){n=e[r](t)||n}),n})}e=a.createTestElement(document,"<p>1 </p><p></p>",!0),P=e.firstChild,(t=m.getSelection()).collapse(P.lastChild,2),t.setStart(P.firstChild,0),e.innerHTML="1 <br />",t.collapse(e,2),t.setStart(e.firstChild,0),P=1==(""+t).length,e.innerHTML="1 <p>1</p>",t.collapse(e,2),t.setStart(e.firstChild,0),b=1==(""+t).length,a.removeNo
de(e),t.removeAllRanges(),f={caseSensitive:!(h={en:{wordRegex:/[a-z0-9]+('[a-z0-9]+)*/gi,includeTrailingSpace:!(u={includeBlockContentTrailingSpace:!(l={includeBlockContentTrailingSpace:!0,includeSpaceBeforeBr:!0,includeSpaceBeforeBlock:!0,includePreLineTrailingSpace:!0,ignoreCharacters:""}),includeSpaceBeforeBr:!P,includeSpaceBeforeBlock:!b,includePreLineTrailingSpace:!0}),tokenizer:function(e,t){var n,r,o,i,a=e.join(""),s=[];function c(e,t,n){s.push({start:e,end:t,isWord:n})}for(r=0;n=t.wordRegex.exec(a);){if(i=(o=n.index)+n[0].length,r<o&&c(r,o,!1),t.includeTrailingSpace)for(;z.test(e[i]);)++i;c(o,i,!0),r=i}return r<e.length&&c(r,e.length,!1),s}}}),withinRange:null,wholeWordsOnly:!1,wrap:!1,direction:"forward",wordOptions:null,characterOptions:null},p={wordOptions:null,characterOptions:null,trim:!(g={wordOptions:null,characterOptions:null}),trimStart:!0,trimEnd:!0},R={wordOptions:null,characterOptions:null,direction:"forward"},i=a.getComputedStyleProperty,e=document.createElement("table"),(t=L(document)).
appendChild(e),C="block"==i(e,"display"),t.removeChild(e),v={table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell"},J.prototype={get:function(e){return this.store.hasOwnProperty(e)?this.store[e]:null},set:function(e,t){return this.store[e]=t}},N="NON_SPACE",E="UNCOLLAPSIBLE_SPACE",d="COLLAPSIBLE_SPACE",y="TRAILING_SPACE_BEFORE_BLOCK",S="TRAILING_SPACE_IN_BLOCK",T="TRAILING_SPACE_BEFORE_BR",w="PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK",A="INCLUDED_TRAILING_LINE_BREAK_AFTER_BR",s(ee.prototype={getPosition:function(e){var t=this.positions;return t.get(e)||t.set(e,new te(this,e))},toString:function(){return"[NodeWrapper("+a.inspectNode(this.node)+")]"}},{isCharacterDataNode:n("isCharacterDataNode",a.isCharacterDataNode,"node"),getNodeIndex:n("nodeIndex",a.getNodeIndex,"node"),getLength:n("nodeLength",a.getNodeLength,"node"),containsPositions:n("containsPosi
tions",function(e){return a.isCharacterDataNode(e)||!/^(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)$/i.test(e.nodeName)},"node"),isWhitespace:n("isWhitespace",Q,"node"),isCollapsedWhitespace:n("isCollapsedWhitespace",K,"node"),getComputedDisplay:n("computedDisplay",$,"node"),isCollapsed:n("collapsed",X,"node"),isIgnored:n("ignored",Z,"node"),next:n("nextPos",Y,"node"),previous:n("previous",G,"node"),getTextNodeInfo:n("textNodeInfo",function(e){var t=null,n=!1,r=i(e.parentNode,"whiteSpace"),o="pre-line"==r;return o?(t=H,n=!0):"normal"!=r&&"nowrap"!=r||(t=M,n=!0),{node:e,text:e.data,spaceRegex:t,collapseSpaces:n,preLine:o}},"node"),hasInnerText:n("hasInnerText",function(e,t){for(var n=this.session,r=n.getPosition(e.parentNode,this.getNodeIndex()+1),e=n.getPosition(e,0),o=t?r:e,i=t?e:r;o!==i;){if(o.prepopulateChar(),o.isDefinitelyNonEmpty())return!0;
o=t?o.previousVisible():o.nextVisible()}return!1},"node"),isRenderedBlock:n("isRenderedBlock",function(e){for(var t=e.getElementsByTagName("br"),n=0,r=t.length;n<r;++n)if(!X(t[n]))return!0;return this.hasInnerText()},"node"),getTrailingSpace:n("trailingSpace",function(e){if("br"==e.tagName.toLowerCase())return"";switch(this.getComputedDisplay()){case"inline":for(var t=e.lastChild;t;){if(!Z(t))return 1==t.nodeType?this.session.getNodeWrapper(t).getTrailingSpace():"";t=t.previousSibling}break;case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":break;case"table-cell":return"\t";default:return this.isRenderedBlock(!0)?"\n":""}return""},"node"),getLeadingSpace:n("leadingSpace",function(e){switch(this.getComputedDisplay()){case"inline":case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":case"table-cell":break;default:return this.isRenderedBlock(!1)?"\n":""}return""},"node")}),s(te.prototype={character:"",characterType:"EMPTY",isBr:!1
,prepopulateChar:function(){var e,t,n,r,o,i,a,s,c,l=this;l.prepopulatedChar||(e=l.node,n="",o=!(r="EMPTY"),0<(t=l.offset)&&(3==e.nodeType?(a=(i=e.data).charAt(t-1),s=(c=l.nodeWrapper.getTextNodeInfo()).spaceRegex,c.collapseSpaces?s.test(a)?1<t&&s.test(i.charAt(t-2))||(r=c.preLine&&"\n"===i.charAt(t)?(n=" ",w):(n=" ",d)):(n=a,r=N,o=!0):(n=a,r=E,o=!0)):((s=e.childNodes[t-1])&&1==s.nodeType&&!X(s)&&("br"==s.tagName.toLowerCase()?(n="\n",l.isBr=!0,o=!(r=d)):l.checkForTrailingSpace=!0),n||(c=e.childNodes[t])&&1==c.nodeType&&!X(c)&&(l.checkForLeadingSpace=!0))),l.prepopulatedChar=!0,l.character=n,l.characterType=r,l.isCharInvariant=o)},isDefinitelyNonEmpty:function(){var e=this.characterType;return e==N||e==E},resolveLeadingAndTrailingSpaces:function(){var e;this.prepopulatedChar||this.prepopulateChar(),this.checkForTrailingSpace&&((e=this.session.getNodeWrapper(this.node.childNodes[this.offset-1]).getTrailingSpace())&&(this.isTrailingSpace=!0,this.character=e,this.characterType=d),this.checkForTrailingSpace=!1),t
his.checkForLeadingSpace&&((e=this.session.getNodeWrapper(this.node.childNodes[this.offset]).getLeadingSpace())&&(this.isLeadingSpace=!0,this.character=e,this.characterType=d),this.checkForLeadingSpace=!1)},getPrecedingUncollapsedPosition:function(e){for(var t=this;t=t.previousVisible();)if(""!==t.getCharacter(e))return t;return null},getCharacter:function(e){var t,n,r,o,i,a,s,c;return this.resolveLeadingAndTrailingSpaces(),t=this.character,(c="string"==typeof(c=(c=e.ignoreCharacters)||"")?c.split(""):c).sort(function(e,t){return e.charCodeAt(0)-t.charCodeAt(0)}),c=c.join("").replace(/(.)\1+/g,"$1"),n=""!==t&&-1<c.indexOf(t),this.isCharInvariant?n?"":t:(n=["character",e.includeSpaceBeforeBr,e.includeBlockContentTrailingSpace,e.includePreLineTrailingSpace,c].join("_"),null!==(r=this.cache.get(n))?r:(r="",o=this.characterType==d,a=!1,s=this,o&&(this.type==A?r="\n":" "==t&&(!l()||i.isTrailingSpace||"\n"==i.character||" "==i.character&&i.characterType==d)||("\n"==t&&this.isLeadingSpace?l()&&"\n"!=i.character&&(r
="\n"):(o=this.nextUncollapsed())&&(o.isBr?this.type=T:o.isTrailingSpace&&"\n"==o.character?this.type=S:o.isLeadingSpace&&"\n"==o.character&&(this.type=y),"\n"==o.character?this.type==T&&!e.includeSpaceBeforeBr||this.type==y&&!e.includeSpaceBeforeBlock||this.type==S&&o.isTrailingSpace&&!e.includeBlockContentTrailingSpace||this.type==w&&o.type==N&&!e.includePreLineTrailingSpace||("\n"==t?o.isTrailingSpace?this.isTrailingSpace||this.isBr&&(o.type="TRAILING_LINE_BREAK_AFTER_BR",l()&&i.isLeadingSpace&&!i.isTrailingSpace&&"\n"==i.character?o.character="":o.type=A):r="\n":" "==t&&(r=" ")):r=t))),-1<c.indexOf(r)&&(r=""),this.cache.set(n,r),r));function l(){return a||(i=s.getPrecedingUncollapsedPosition(e),a=!0),i}},equals:function(e){return!!e&&this.node===e.node&&this.offset===e.offset},inspect:function(){return"[Position("+a.inspectNode(this.node)+":"+this.offset+")]"},toString:function(){return this.character}},{next:n("nextPos",function(e){var t,n=e.nodeWrapper,r=e.node,e=e.offset,o=n.session;return r?(n=e==n.g
etLength()?(t=r.parentNode)?n.getNodeIndex()+1:0:n.isCharacterDataNode()?(t=r,e+1):(n=r.childNodes[e],o.getNodeWrapper(n).containsPositions()?(t=n,0):(t=r,e+1)),t?o.getPosition(t,n):null):null}),previous:n("previous",function(e){var t,n=e.nodeWrapper,r=e.node,e=e.offset,o=n.session,n=0==e?(t=r.parentNode)?n.getNodeIndex():0:n.isCharacterDataNode()?(t=r,e-1):(n=r.childNodes[e-1],o.getNodeWrapper(n).containsPositions()?a.getNodeLength(t=n):(t=r,e-1));return t?o.getPosition(t,n):null}),nextVisible:n("nextVisible",function(e){var t,n,e=e.next();return e?(t=e.nodeWrapper,n=e.node,e=e,t.isCollapsed()?t.session.getPosition(n.parentNode,t.getNodeIndex()+1):e):null}),nextUncollapsed:n("nextUncollapsed",function(e){for(var t=e;t=t.nextVisible();)if(t.resolveLeadingAndTrailingSpaces(),""!==t.character)return t;return null}),previousVisible:n("previousVisible",function(e){var t,n,e=e.previous();return e?(t=e.nodeWrapper,n=e.node,e=e,t.isCollapsed()?t.session.getPosition(n.parentNode,t.getNodeIndex()):e):null})}),r=null,
I=B.isHostProperty(document.documentElement,"uniqueID"),re.prototype={initCaches:function(){var t;this.elementCache=I?(t=new J,{get:function(e){return t.get(e.uniqueID)},set:function(e){t.set(e.node.uniqueID,e)}}):ne("tagName"),this.textNodeCache=ne("data"),this.otherNodeCache=ne("nodeName")},getNodeWrapper:function(e){var t,n;switch(e.nodeType){case 1:t=this.elementCache;break;case 3:t=this.textNodeCache;break;default:t=this.otherNodeCache}return(n=t.get(e))||(n=new ee(e,this),t.set(n)),n},getPosition:function(e,t){return this.getNodeWrapper(e).getPosition(t)},getRangeBoundaryPosition:function(e,t){t=t?"start":"end";return this.getPosition(e[t+"Container"],e[t+"Offset"])},detach:function(){this.elementCache=this.textNodeCache=this.otherNodeCache=null}},x=re,s(a,{nextNode:Y,previousNode:G}),O=Array.prototype.indexOf?function(e,t){return e.indexOf(t)}:function(e,t){for(
var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},s(m.rangePrototype,{moveStart:de(!0,!1),moveEnd:de(!1,!1),move:de(!0,!0),trimStart:ue(!0),trimEnd:ue(!1),trim:o(function(e,t){var n=this.trimStart(t),t=this.trimEnd(t);return n||t}),expand:o(function(e,t,n){var r,o,i,a=!1,s=(n=U(n,p)).characterOptions;return(t=t||_)==D?(t=n.wordOptions,r=e.getRangeBoundaryPosition(this,!0),e=e.getRangeBoundaryPosition(this,!1),o=(i=se(r,s,t).nextEndToken()).chars[0].previousVisible(),t=(i=this.collapsed?i:se(e,s,t).previousStartToken()).chars[i.chars.length-1],o.equals(r)||(this.setStart(o.node,o.offset),a=!0),t&&!t.equals(e)&&(this.setEnd(t.node,t.offset),a=!0),n.trim&&(n.trimStart&&(a=this.trimStart(s)||a),n.trimEnd&&(a=this.trimEnd(s)||a)),a):this.moveEnd(_,1,n)}),text:o(function(e,t){return this.collapsed?"":function(e,t,n){for(var r,o=[],i=ce(e,t,n);r=i.next();)o.push(r);return i.dispose(),o}(e,this,k(t,l)).join("")}),selectCharacters:o(function(e,t,n,r,o){o={characterOptions:o};t=t||L(this.getDocument()),this.se
lectNodeContents(t),this.collapse(!0),this.moveStart("character",n,o),this.collapse(!0),this.moveEnd("character",r-n,o)}),toCharacterRange:o(function(e,t,n){var r=(t=t||L(this.getDocument())).parentNode,t=a.getNodeIndex(t),o=-1==a.comparePoints(this.startContainer,this.endContainer,r,t),i=this.cloneRange();return{start:o=o?(i.setStartAndEnd(this.startContainer,this.startOffset,r,t),-i.text(n).length):(i.setStartAndEnd(r,t,this.startContainer,this.startOffset),i.text(n).length),end:o+this.text(n).length}}),findText:o(function(e,t,n){var r,o,i,a,s,c,d,l;for((n=U(n,f)).wholeWordsOnly&&(n.wordOptions.includeTrailingSpace=!1),r=V(n.direction),(o=n.withinRange)||(o=m.createRange()).selectNodeContents(this.getDocument()),a=!1,"string"==typeof(i=t)?n.caseSensitive||(i=t.toLowerCase()):a=!0,s=e.getRangeBoundaryPosition(this,!r),-1===(t=o.comparePoint(s.node,s.offset))?s=e.getRangeBoundaryPosition(o,!0):1===t&&(s=e.getRangeBoundaryPosition(o,!1)),c=s,d=!1;;)if(l=le(c,i,a,o,n)){if(l.valid)return this.setStartAndEnd(l.s
tartPos.node,l.startPos.offset,l.endPos.node,l.endPos.offset),!0;c=r?l.startPos:l.endPos}else{if(!n.wrap||d)return!1;o=o.cloneRange(),c=e.getRangeBoundaryPosition(o,!r),o.setBoundary(s.node,s.offset,r),d=!0}}),pasteHtml:function(e){var t;this.deleteContents(),e&&(t=(e=this.createContextualFragment(e)).lastChild,this.insertNode(e),this.collapseAfter(t))}}),s(m.selectionPrototype,{expand:o(function(e,t,n){this.changeEachRange(function(e){e.expand(t,n)})}),move:o(function(e,t,n,r){var o,i=0;return this.focusNode&&(this.collapse(this.focusNode,this.focusOffset),o=this.getRangeAt(0),(r=r||{}).characterOptions=k(r.characterOptions,u),i=o.move(t,n,r),this.setSingleRange(o)),i}),trimStart:he("trimStart"),trimEnd:he("trimEnd"),trim:he("trim"),selectCharacters:o(function(e,t,n,r,o,i){var a=m.createRange(t);a.selectCharacters(t,n,r,i),this.setSingleRange(a,o)}),saveCharacterRanges:o(function(e,t,n){for(var r=this.getAllRanges(),o=r.length,i=[],a=1==o&&this.isBackward(),s=0,c=r.length;s<c;++s)i[s]={characterRange:r[s].t
oCharacterRange(t,n),backward:a,characterOptions:n};return i}),restoreCharacterRanges:o(function(e,t,n){this.removeAllRanges();for(var r,o,i,a=0,s=n.length;a<s;++a)i=(o=n[a]).characterRange,(r=m.createRange(t)).selectCharacters(t,i.start,i.end,o.characterOptions),this.addRange(r,o.backward)}),text:o(function(e,t){for(var n=[],r=0,o=this.rangeCount;r<o;++r)n[r]=this.getRangeAt(r).text(t);return n.join("")})}),m.innerText=function(e,t){var n=m.createRange(e);return n.selectNodeContents(e),n.text(t)},m.createWordIterator=function(e,t,n){var r,o,i=oe();return n=U(n,R),e=i.getPosition(e,t),r=se(e,n.characterOptions,n.wordOptions),o=V(n.direction),{next:function(){return o?r.previousStartToken():r.nextEndToken()},dispose:function(){r.dispose(),this.next=function(){}}}},m.noMutation=function(e){e(oe()),ie()},m.noMutation.createEntryPointFunction=o,m.textRange={isBlockNode:function(e){return e&&(1==e.nodeType&&!/^(inline(-block|-table)?|none)$/.test($(e))||9==e.nodeType||11==e.nodeType)},isCollapsedWhitespaceNode:K,
createPosition:o(function(e,t,n){return e.getPosition(t,n)})}})}(this),YUI.add("moodle-editor_atto-rangy",function(e,t){rangy.initialized||rangy.init()},"@VERSION@",{requires:[]});