!function(n,t){t["true"]=n,function(t,i){"function"==typeof define&&define.amd?define(t):"undefined"!=typeof module&&"object"==typeof n?module.exports=t():i.rangy=t()}(function(){function t(n,t){var i=typeof n[t];return i==at||!(i!=st||!n[t])||"unknown"==i}function y(n,t){return!(typeof n[t]!=st||!n[t])}function g(n,t){return typeof n[t]!=f}function p(n){return function(t,i){for(var r=i.length;r--;)if(!n(t,i[r]))return!1;return!0}}function nt(n){return n&&b(n,wt)&&k(n,pt)}function tt(n){return y(n,"body")?n.body:n.getElementsByTagName("body")[0]}function o(n){typeof console!=f&&t(console,"log")&&console.log(n)}function it(n,t){i&&t?alert(n):o(n)}function u(t){n.initialized=!0;n.supported=!1;it("Rangy is not supported in this environment. Reason: "+t,n.config.alertOnFail)}function ht(t){it("Rangy warning: "+t,n.config.alertOnWarn)}function rt(n){return n.message||n.description||String(n)}function w(){var f,h,c,r,v,y,p,a,w;if(i&&!n.initialized){if(h=!1,c=!1,t(document,"createRange")&&(f=document.createRange(),b(f,yt)&&k(f,vt)&&(h=!0)),r=tt(document),!r||"body"!=r.nodeName.toLowerCase())return void u("No body element found");if(r&&t(r,"createTextRange")&&(f=r.createTextRange(),nt(f)&&(c=!0)),!h&&!c)return void u("Neither Range nor TextRange are available");n.initialized=!0;n.features={implementsDomRange:h,implementsTextRange:c};for(p in e)(v=e[p])instanceof s&&v.init(v,n);for(a=0,w=l.length;w>a;++a)try{l[a](n)}catch(d){y="Rangy init listener threw an exception. Continuing. Detail: "+rt(d);o(y)}}}function ut(t,i,r){r&&(t+=" in module "+r.name);n.warn("DEPRECATED: "+t+" is deprecated. Please use "+i+" instead.")}function ft(n,t,i,u){n[t]=function(){return ut(t,i,u),n[i].apply(n,r.toArray(arguments))}}function ct(n){n=n||window;w();for(var t=0,i=a.length;i>t;++t)a[t](n)}function s(n,t,i){this.name=n;this.dependencies=t;this.initialized=!1;this.supported=!1;this.initializer=i}function et(t,i,r){var u=new s(t,i,function(i){if(!i.initialized){i.initialized=!0;try{r(n,i);i.supported=!0}catch(u){var f="Module '"+t+"' failed to load: "+rt(u);o(f);u.stack&&o(u.stack)}}});return e[t]=u,u}function ot(){}function lt(){}var st="object",at="function",f="undefined",vt=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],yt=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],pt=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],wt=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],b=p(t),bt=p(y),k=p(g),kt=[].forEach?function(n,t){n.forEach(t)}:function(n,t){for(var i=0,r=n.length;r>i;++i)t(n[i],i)},e={},i=typeof window!=f&&typeof document!=f,r={isHostMethod:t,isHostObject:y,isHostProperty:g,areHostMethods:b,areHostObjects:bt,areHostProperties:k,isTextRange:nt,getBody:tt,forEach:kt},n={version:"1.3.0",initialized:!1,isBrowser:i,supported:!0,util:r,features:{},modules:e,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==f?!0:rangyAutoInitialize}},h,c,l,a,d,v;return n.fail=u,n.warn=ht,{}.hasOwnProperty?(r.extend=h=function(n,t,i){var u,r;for(var f in t)t.hasOwnProperty(f)&&(u=n[f],r=t[f],i&&null!==u&&"object"==typeof u&&null!==r&&"object"==typeof r&&h(u,r,!0),n[f]=r);return t.hasOwnProperty("toString")&&(n.toString=t.toString),n},r.createOptions=function(n,t){var i={};return h(i,t),n&&h(i,n),i}):u("hasOwnProperty not supported"),i||u("Rangy can only run in a browser"),function(){var n,t,u;if(i){t=document.createElement("div");t.appendChild(document.createElement("span"));u=[].slice;try{1==u.call(t.childNodes,0)[0].nodeType&&(n=function(n){return u.call(n,0)})}catch(f){}}n||(n=function(n){for(var i=[],t=0,r=n.length;r>t;++t)i[t]=n[t];return i});r.toArray=n}(),i&&(t(document,"addEventListener")?c=function(n,t,i){n.addEventListener(t,i,!1)}:t(document,"attachEvent")?c=function(n,t,i){n.attachEvent("on"+t,i)}:u("Document does not have required addEventListener or attachEvent method"),r.addListener=c),l=[],r.deprecationNotice=ut,r.createAliasForDeprecatedMethod=ft,n.init=w,n.addInitListener=function(t){n.initialized?t(n):l.push(t)},a=[],n.addShimListener=function(n){a.push(n)},i&&(n.shim=n.createMissingNativeApi=ct,ft(n,"createMissingNativeApi","shim")),s.prototype={init:function(){for(var n,t,r=this.dependencies||[],i=0,u=r.length;u>i;++i){if(t=r[i],n=e[t],!(n&&n instanceof s))throw new Error("required module '"+t+"' not found");if(n.init(),!n.supported)throw new Error("required module '"+t+"' not supported");}this.initializer(this)},fail:function(n){throw this.initialized=!0,this.supported=!1,new Error(n);},warn:function(t){n.warn("Module "+this.name+": "+t)},deprecationNotice:function(t,i){n.warn("DEPRECATED: "+t+" in module "+this.name+" is deprecated. Please use "+i+" instead")},createError:function(n){return new Error("Error in Rangy "+this.name+" module: "+n)}},n.createModule=function(t){var i,r,u;2==arguments.length?(i=arguments[1],r=[]):(i=arguments[2],r=arguments[1]);u=et(t,r,i);n.initialized&&n.supported&&u.init()},n.createCoreModule=function(n,t,i){et(n,t,i)},n.RangePrototype=ot,n.rangePrototype=new ot,n.selectionPrototype=new lt,n.createCoreModule("DomUtil",[],function(n,t){function ut(n){var t;return typeof n.namespaceURI==r||null===(t=n.namespaceURI)||"http://www.w3.org/1999/xhtml"==t}function ft(n){var t=n.parentNode;return 1==t.nodeType?t:null}function u(n){for(var t=0;n=n.previousSibling;)++t;return t}function et(n){switch(n.nodeType){case 7:case 10:return 0;case 3:case 8:return n.length;default:return n.childNodes.length}}function y(n,t){for(var r=[],i=n;i;i=i.parentNode)r.push(i);for(i=t;i;i=i.parentNode)if(a(r,i))return i;return null}function p(n,t,i){for(var r=i?t:t.parentNode;r;){if(r===n)return!0;r=r.parentNode}return!1}function ot(n,t){return p(n,t,!0)}function f(n,t,i){for(var u,r=i?n:n.parentNode;r;){if(u=r.parentNode,u===t)return r;r=u}return null}function w(n){var t=n.nodeType;return 3==t||4==t||8==t}function st(n){if(!n)return!1;var t=n.nodeType;return 3==t||8==t}function b(n,t){var i=t.nextSibling,r=t.parentNode;return i?r.insertBefore(n,i):r.appendChild(n),n}function ht(n,t,i){var f=n.cloneNode(!1),r,e;if(f.deleteData(0,t),n.deleteData(t,n.length-t),b(f,n),i)for(e=0;r=i[e++];)r.node==n&&r.offset>t?(r.node=f,r.offset-=t):r.node==n.parentNode&&r.offset>u(n)&&++r.offset;return f}function e(n){if(9==n.nodeType)return n;if(typeof n.ownerDocument!=r)return n.ownerDocument;if(typeof n.document!=r)return n.document;if(n.parentNode)return e(n.parentNode);throw t.createError("getDocument: no document found for node");}function k(n){var i=e(n);if(typeof i.defaultView!=r)return i.defaultView;if(typeof i.parentWindow!=r)return i.parentWindow;throw t.createError("Cannot get a window object for node");}function d(n){if(typeof n.contentDocument!=r)return n.contentDocument;if(typeof n.contentWindow!=r)return n.contentWindow.document;throw t.createError("getIframeDocument: No Document object found for iframe element");}function ct(n){if(typeof n.contentWindow!=r)return n.contentWindow;if(typeof n.contentDocument!=r)return n.contentDocument.defaultView;throw t.createError("getIframeWindow: No Window object found for iframe element");}function g(n){return n&&i.isHostMethod(n,"setTimeout")&&i.isHostObject(n,"document")}function lt(n,t,r){var u;if(n?i.isHostProperty(n,"nodeType")?u=1==n.nodeType&&"iframe"==n.tagName.toLowerCase()?d(n):e(n):g(n)&&(u=n.document):u=document,!u)throw t.createError(r+"(): Parameter must be a Window object or DOM node");return u}function at(n){for(var t;t=n.parentNode;)n=t;return n}function vt(n,i,r,e){var h,o,c,l,s;if(n==r)return i===e?0:e>i?-1:1;if(h=f(r,n,!0))return i<=u(h)?-1:1;if(h=f(n,r,!0))return u(h)<e?-1:1;if(o=y(n,r),!o)throw new Error("comparePoints error: nodes have no common ancestor");if(c=n===o?o:f(n,o,!0),l=r===o?o:f(r,o,!0),c===l)throw t.createError("comparePoints got to case 4 and childA and childB are the same!");for(s=o.firstChild;s;){if(s===c)return-1;if(s===l)return 1;s=s.nextSibling}}function h(n){var t;try{return t=n.parentNode,!1}catch(i){return!0}}function nt(n){if(!n)return"[No node]";if(s&&h(n))return"[Broken node]";if(w(n))return'"'+n.data+'"';if(1==n.nodeType){var t=n.id?' id="'+n.id+'"':"";return"<"+n.nodeName+t+">[index:"+u(n)+",length:"+n.childNodes.length+"]["+(n.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return n.nodeName}function yt(n){for(var t,i=e(n).createDocumentFragment();t=n.firstChild;)i.appendChild(t);return i}function pt(n,t,i){var u=rt(n),r=n.createElement("div"),f;return r.contentEditable=""+!!i,t&&(r.innerHTML=t),f=u.firstChild,f?u.insertBefore(r,f):u.appendChild(r),r}function wt(n){return n.parentNode.removeChild(n)}function tt(n){this.root=n;this._next=n}function bt(n){return new tt(n)}function it(n,t){this.node=n;this.offset=t}function c(n){this.code=this[n];this.codeName=n;this.message="DOMException: "+this.codeName}var r="undefined",i=n.util,rt=i.getBody,o,l,a,s,v;i.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||t.fail("document missing a Node creation method");i.isHostMethod(document,"getElementsByTagName")||t.fail("document missing getElementsByTagName method");o=document.createElement("div");i.areHostMethods(o,["insertBefore","appendChild","cloneNode"]||!i.areHostObjects(o,["previousSibling","nextSibling","childNodes","parentNode"]))||t.fail("Incomplete Element implementation");i.isHostProperty(o,"innerHTML")||t.fail("Element is missing innerHTML property");l=document.createTextNode("test");i.areHostMethods(l,["splitText","deleteData","insertData","appendData","cloneNode"]||!i.areHostObjects(o,["previousSibling","nextSibling","childNodes","parentNode"])||!i.areHostProperties(l,["data"]))||t.fail("Incomplete Text Node implementation");a=function(n,t){for(var i=n.length;i--;)if(n[i]===t)return!0;return!1};s=!1;!function(){var t=document.createElement("b"),i;t.innerHTML="1";i=t.firstChild;t.innerHTML="<br />";s=h(i);n.features.crashyTextNodes=s}();typeof getComputedStyle!=r?v=function(n,t){return k(n).getComputedStyle(n,null)[t]}:typeof document.documentElement.currentStyle!=r?v=function(n,t){return n.currentStyle?n.currentStyle[t]:""}:t.fail("No means of obtaining computed style properties found");tt.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var i,t,n=this._current=this._next;if(this._current)if(i=n.firstChild)this._next=i;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}};it.prototype={equals:function(n){return!!n&&this.node===n.node&&this.offset==n.offset},inspect:function(){return"[DomPosition("+nt(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}};c.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};c.prototype.toString=function(){return this.message};n.dom={arrayContains:a,isHtmlNamespace:ut,parentElement:ft,getNodeIndex:u,getNodeLength:et,getCommonAncestor:y,isAncestorOf:p,isOrIsAncestorOf:ot,getClosestAncestorIn:f,isCharacterDataNode:w,isTextOrCommentNode:st,insertAfter:b,splitDataNode:ht,getDocument:e,getWindow:k,getIframeWindow:ct,getIframeDocument:d,getBody:rt,isWindow:g,getContentDocument:lt,getRootContainer:at,comparePoints:vt,isBrokenNode:h,inspectNode:nt,getComputedStyleProperty:v,createTestElement:pt,removeNode:wt,fragmentFromNodeChildren:yt,createIterator:bt,DomPosition:it};n.DOMException=c}),n.createCoreModule("DomRange",["DomUtil"],function(n){function a(n,t){return 3!=n.nodeType&&(p(n,t.startContainer)||p(n,t.endContainer))}function e(n){return n.document||it(n.startContainer)}function bi(n){return s(n.startContainer)}function ct(n){return new oi(n.parentNode,l(n))}function k(n){return new oi(n.parentNode,l(n)+1)}function lt(n,i,u){var f=11==n.nodeType?n.firstChild:n;return r(i)?u==i.length?t.insertAfter(n,i):i.parentNode.insertBefore(n,0==u?i:rt(i,u)):u>=i.childNodes.length?i.appendChild(n):i.insertBefore(n,i.childNodes[u]),f}function at(n,t,r){if(i(n),i(t),e(t)!=e(n))throw new f("WRONG_DOCUMENT_ERR");var o=u(n.startContainer,n.startOffset,t.endContainer,t.endOffset),s=u(n.endContainer,n.endOffset,t.startContainer,t.startOffset);return r?0>=o&&s>=0:0>o&&s>0}function vt(n){for(var i,t,r,u=e(n.range).createDocumentFragment();t=n.next();){if(i=n.isPartiallySelectedSubtree(),t=t.cloneNode(!i),i&&(r=n.getSubtreeIterator(),t.appendChild(vt(r)),r.detach()),10==t.nodeType)throw new f("HIERARCHY_REQUEST_ERR");u.appendChild(t)}return u}function b(n,i,r){var e,o,u,f;for(r=r||{stop:!1};u=n.next();)if(n.isPartiallySelectedSubtree()){if(i(u)===!1)return void(r.stop=!0);if(f=n.getSubtreeIterator(),b(f,i,r),f.detach(),r.stop)return}else for(e=t.createIterator(u);o=e.next();)if(i(o)===!1)return void(r.stop=!0)}function yt(n){for(var t;n.next();)n.isPartiallySelectedSubtree()?(t=n.getSubtreeIterator(),yt(t),t.detach()):n.remove()}function pt(n){for(var t,i,r=e(n.range).createDocumentFragment();t=n.next();){if(n.isPartiallySelectedSubtree()?(t=t.cloneNode(!1),i=n.getSubtreeIterator(),t.appendChild(pt(i)),i.detach()):n.remove(),10==t.nodeType)throw new f("HIERARCHY_REQUEST_ERR");r.appendChild(t)}return r}function ki(n,t,i){var f,e=!(!t||!t.length),s=!!i,u;return e&&(f=new RegExp("^("+t.join("|")+")$")),u=[],b(new o(n,!1),function(t){var o,h;e&&!f.test(t.nodeType)||s&&!i(t)||(o=n.startContainer,t==o&&r(o)&&n.startOffset==o.length||(h=n.endContainer,t==h&&r(h)&&0==n.endOffset||u.push(t)))}),u}function wt(n){var i="undefined"==typeof n.getName?"Range":n.getName();return"["+i+"("+t.inspectNode(n.startContainer)+":"+n.startOffset+", "+t.inspectNode(n.endContainer)+":"+n.endOffset+")]"}function o(n,t){if(this.range=n,this.clonePartiallySelectedTextNodes=t,!n.collapsed){this.sc=n.startContainer;this.so=n.startOffset;this.ec=n.endContainer;this.eo=n.endOffset;var i=n.commonAncestorContainer;this.sc===this.ec&&r(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==i||r(this.sc)?ut(this.sc,i,!0):this.sc.childNodes[this.so],this._last=this.ec!==i||r(this.ec)?ut(this.ec,i,!0):this.ec.childNodes[this.eo-1])}}function d(n){return function(t,i){for(var u,r=i?t:t.parentNode;r;){if(u=r.nodeType,si(n,u))return r;r=r.parentNode}return null}}function v(n,t){if(rr(n,t))throw new f("INVALID_NODE_TYPE_ERR");}function y(n,t){if(!si(t,n.nodeType))throw new f("INVALID_NODE_TYPE_ERR");}function g(n,t){if(0>t||t>(r(n)?n.length:n.childNodes.length))throw new f("INDEX_SIZE_ERR");}function nt(n,t){if(ci(n,!0)!==ci(t,!0))throw new f("WRONG_DOCUMENT_ERR");}function h(n){if(ir(n,!0))throw new f("NO_MODIFICATION_ALLOWED_ERR");}function bt(n,t){if(!n)throw new f(t);}function kt(n,t){return t<=(r(n)?n.length:n.childNodes.length)}function dt(n){return!!n.startContainer&&!!n.endContainer&&!(di&&(t.isBrokenNode(n.startContainer)||t.isBrokenNode(n.endContainer)))&&s(n.startContainer)==s(n.endContainer)&&kt(n.startContainer,n.startOffset)&&kt(n.endContainer,n.endOffset)}function i(n){if(!dt(n))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+n.inspect()+")");}function gt(n,t){i(n);var u=n.startContainer,o=n.startOffset,f=n.endContainer,e=n.endOffset,s=u===f;r(f)&&e>0&&e<f.length&&rt(f,e,t);r(u)&&o>0&&o<u.length&&(u=rt(u,o,t),s?(e-=o,f=u):f==u.parentNode&&e>=l(u)&&e++,o=0);n.setStartAndEnd(u,o,f,e)}function ni(n){i(n);var t=n.commonAncestorContainer.parentNode.cloneNode(!1);return t.appendChild(n.cloneContents()),t.innerHTML}function ti(n){n.START_TO_START=st;n.START_TO_END=ai;n.END_TO_END=fr;n.END_TO_START=vi;n.NODE_BEFORE=yi;n.NODE_AFTER=pi;n.NODE_BEFORE_AND_AFTER=wi;n.NODE_INSIDE=ht}function ii(n){ti(n);ti(n.prototype)}function ri(n,t){return function(){var l;i(this);var s,f,r=this.startContainer,e=this.startOffset,c=this.commonAncestorContainer,u=new o(this,!0);return r!==c&&(s=ut(r,c,!0),f=k(s),r=f.node,e=f.offset),b(u,h),u.reset(),l=n(u),u.detach(),t(this,r,e,r,e),l}}function ui(t,f){function e(n,t){return function(i){y(i,hi);y(s(i),gi);var r=(n?ct:k)(i);(t?c:p)(this,r.node,r.offset)}}function c(n,t,i){var r=n.endContainer,e=n.endOffset;(t!==n.startContainer||i!==n.startOffset)&&((s(t)!=s(r)||1==u(t,i,r,e))&&(r=t,e=i),f(n,t,i,r,e))}function p(n,t,i){var r=n.startContainer,e=n.startOffset;(t!==n.endContainer||i!==n.endOffset)&&((s(t)!=s(r)||-1==u(t,i,r,e))&&(r=t,e=i),f(n,r,e,t,i))}var b=function(){};b.prototype=n.rangePrototype;t.prototype=new b;tt.extend(t.prototype,{setStart:function(n,t){v(n,!0);g(n,t);c(this,n,t)},setEnd:function(n,t){v(n,!0);g(n,t);p(this,n,t)},setStartAndEnd:function(){var n=arguments,i=n[0],r=n[1],u=i,t=r;switch(n.length){case 3:t=n[2];break;case 4:u=n[2];t=n[3]}f(this,i,r,u,t)},setBoundary:function(n,t,i){this["set"+(i?"Start":"End")](n,t)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(n){i(this);n?f(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):f(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(n){v(n,!0);f(this,n,0,n,ft(n))},selectNode:function(n){v(n,!1);y(n,hi);var t=ct(n),i=k(n);f(this,t.node,t.offset,i.node,i.offset)},extractContents:ri(pt,f),deleteContents:ri(yt,f),canSurroundContents:function(){i(this);h(this.startContainer);h(this.endContainer);var n=new o(this,!0),t=n._first&&a(n._first,this)||n._last&&a(n._last,this);return n.detach(),!t},splitBoundaries:function(){gt(this)},splitBoundariesPreservingPositions:function(n){gt(this,n)},normalizeBoundaries:function(){var s,h;i(this);var e,t=this.startContainer,o=this.startOffset,n=this.endContainer,u=this.endOffset,a=function(t){var i=t.nextSibling;i&&i.nodeType==t.nodeType&&(n=t,u=t.length,t.appendData(i.data),w(i))},v=function(i){var r=i.previousSibling,e,f;r&&r.nodeType==i.nodeType&&(t=i,e=i.length,(o=r.length,i.insertData(0,r.data),w(r),t==n)?(u+=o,n=t):n==i.parentNode&&(f=l(i),u==f?(n=i,u=e):u>f&&u--))},c=!0;r(n)?u==n.length?a(n):0==u&&(e=n.previousSibling,e&&e.nodeType==n.nodeType&&(u=e.length,t==n&&(c=!1),e.appendData(n.data),w(n),n=e)):(u>0&&(s=n.childNodes[u-1],s&&r(s)&&a(s)),c=!this.collapsed);c?r(t)?0==o?v(t):o==t.length&&(e=t.nextSibling,e&&e.nodeType==t.nodeType&&(n==e&&(n=t,u+=t.length),t.appendData(e.data),w(e))):o<t.childNodes.length&&(h=t.childNodes[o],h&&r(h)&&v(h)):(t=n,o=u);f(this,t,o,n,u)},collapseToPoint:function(n,t){v(n,!0);g(n,t);this.setStartAndEnd(n,t)}});ii(t)}function fi(n){n.collapsed=n.startContainer===n.endContainer&&n.startOffset===n.endOffset;n.commonAncestorContainer=n.collapsed?n.startContainer:t.getCommonAncestor(n.startContainer,n.endContainer)}function ei(n,i,r,u,f){n.startContainer=i;n.startOffset=r;n.endContainer=u;n.endOffset=f;n.document=t.getDocument(i);fi(n)}function c(n){this.startContainer=n;this.startOffset=0;this.endContainer=n;this.endOffset=0;this.document=n;fi(this)}var t=n.dom,tt=n.util,oi=t.DomPosition,f=n.DOMException,r=t.isCharacterDataNode,l=t.getNodeIndex,p=t.isOrIsAncestorOf,it=t.getDocument,u=t.comparePoints,rt=t.splitDataNode,ut=t.getClosestAncestorIn,ft=t.getNodeLength,si=t.arrayContains,s=t.getRootContainer,di=n.features.crashyTextNodes,w=t.removeNode;o.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 n=this._current=this._next;return n&&(this._next=n!==this._last?n.nextSibling:null,r(n)&&this.clonePartiallySelectedTextNodes&&(n===this.ec&&(n=n.cloneNode(!0)).deleteData(this.eo,n.length-this.eo),this._current===this.sc&&(n=n.cloneNode(!0)).deleteData(0,this.so))),n},remove:function(){var t,i,n=this._current;!r(n)||n!==this.sc&&n!==this.ec?n.parentNode&&w(n):(t=n===this.sc?this.so:0,i=n===this.ec?this.eo:n.length,t!=i&&n.deleteData(t,i-t))},isPartiallySelectedSubtree:function(){var n=this._current;return a(n,this.range)},getSubtreeIterator:function(){var n;if(this.isSingleCharacterDataNode)n=this.range.cloneRange(),n.collapse(!1);else{n=new c(e(this.range));var t=this._current,i=t,r=0,u=t,f=ft(t);p(t,this.sc)&&(i=this.sc,r=this.so);p(t,this.ec)&&(u=this.ec,f=this.eo);ei(n,i,r,u,f)}return new o(n,this.clonePartiallySelectedTextNodes)},detach:function(){this.range=this._current=this._next=this._first=this._last=this.sc=this.so=this.ec=this.eo=null}};var hi=[1,3,4,5,7,8,10],gi=[2,9,11],nr=[1,3,4,5,7,8,10,11],tr=[1,3,4,5,7,8],ci=d([9,11]),ir=d([5,6,10,12]),rr=d([6,10,12]),li=document.createElement("style"),et=!1;try{li.innerHTML="<b>x<\/b>";et=3==li.firstChild.nodeType}catch(er){}n.features.htmlParsingConforms=et;var ur=et?function(n){var u=this.startContainer,e=it(u),i;if(!u)throw new f("INVALID_STATE_ERR");return i=null,1==u.nodeType?i=u:r(u)&&(i=t.parentElement(u)),i=null===i||"HTML"==i.nodeName&&t.isHtmlNamespace(it(i).documentElement)&&t.isHtmlNamespace(i)?e.createElement("body"):i.cloneNode(!1),i.innerHTML=n,t.fragmentFromNodeChildren(i)}:function(n){var r=e(this),i=r.createElement("body");return i.innerHTML=n,t.fragmentFromNodeChildren(i)},ot=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],st=0,ai=1,fr=2,vi=3,yi=0,pi=1,wi=2,ht=3;tt.extend(n.rangePrototype,{compareBoundaryPoints:function(n,t){i(this);nt(this.startContainer,t.startContainer);var r,f,e,o,s=n==vi||n==st?"start":"end",h=n==ai||n==st?"start":"end";return r=this[s+"Container"],f=this[s+"Offset"],e=t[h+"Container"],o=t[h+"Offset"],u(r,f,e,o)},insertNode:function(n){if(i(this),y(n,nr),h(this.startContainer),p(n,this.startContainer))throw new f("HIERARCHY_REQUEST_ERR");var t=lt(n,this.startContainer,this.startOffset);this.setStartBefore(t)},cloneContents:function(){var n,t,u;return(i(this),this.collapsed)?e(this).createDocumentFragment():this.startContainer===this.endContainer&&r(this.startContainer)?(n=this.startContainer.cloneNode(!0),n.data=n.data.slice(this.startOffset,this.endOffset),t=e(this).createDocumentFragment(),t.appendChild(n),t):(u=new o(this,!0),n=vt(u),u.detach(),n)},canSurroundContents:function(){i(this);h(this.startContainer);h(this.endContainer);var n=new o(this,!0),t=n._first&&a(n._first,this)||n._last&&a(n._last,this);return n.detach(),!t},surroundContents:function(n){if(y(n,tr),!this.canSurroundContents())throw new f("INVALID_STATE_ERR");var t=this.extractContents();if(n.hasChildNodes())for(;n.lastChild;)n.removeChild(n.lastChild);lt(n,this.startContainer,this.startOffset);n.appendChild(t);this.selectNode(n)},cloneRange:function(){i(this);for(var n,t=new c(e(this)),r=ot.length;r--;)n=ot[r],t[n]=this[n];return t},toString:function(){var n,t,u;return(i(this),n=this.startContainer,n===this.endContainer&&r(n))?3==n.nodeType||4==n.nodeType?n.data.slice(this.startOffset,this.endOffset):"":(t=[],u=new o(this,!0),b(u,function(n){(3==n.nodeType||4==n.nodeType)&&t.push(n.data)}),u.detach(),t.join(""))},compareNode:function(n){var t,r,e,u;if(i(this),t=n.parentNode,r=l(n),!t)throw new f("NOT_FOUND_ERR");return e=this.comparePoint(t,r),u=this.comparePoint(t,r+1),0>e?u>0?wi:yi:u>0?pi:ht},comparePoint:function(n,t){return i(this),bt(n,"HIERARCHY_REQUEST_ERR"),nt(n,this.startContainer),u(n,t,this.startContainer,this.startOffset)<0?-1:u(n,t,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ur,toHtml:function(){return ni(this)},intersectsNode:function(n,t){var r,f,e,o;return(i(this),s(n)!=bi(this))?!1:(r=n.parentNode,f=l(n),!r)?!0:(e=u(r,f,this.endContainer,this.endOffset),o=u(r,f+1,this.startContainer,this.startOffset),t?0>=e&&o>=0:0>e&&o>0)},isPointInRange:function(n,t){return i(this),bt(n,"HIERARCHY_REQUEST_ERR"),nt(n,this.startContainer),u(n,t,this.startContainer,this.startOffset)>=0&&u(n,t,this.endContainer,this.endOffset)<=0},intersectsRange:function(n){return at(this,n,!1)},intersectsOrTouchesRange:function(n){return at(this,n,!0)},intersection:function(n){if(this.intersectsRange(n)){var i=u(this.startContainer,this.startOffset,n.startContainer,n.startOffset),r=u(this.endContainer,this.endOffset,n.endContainer,n.endOffset),t=this.cloneRange();return-1==i&&t.setStart(n.startContainer,n.startOffset),1==r&&t.setEnd(n.endContainer,n.endOffset),t}return null},union:function(n){if(this.intersectsOrTouchesRange(n)){var t=this.cloneRange();return-1==u(n.startContainer,n.startOffset,this.startContainer,this.startOffset)&&t.setStart(n.startContainer,n.startOffset),1==u(n.endContainer,n.endOffset,this.endContainer,this.endOffset)&&t.setEnd(n.endContainer,n.endOffset),t}throw new f("Ranges do not intersect");},containsNode:function(n,t){return t?this.intersectsNode(n,!1):this.compareNode(n)==ht},containsNodeContents:function(n){return this.comparePoint(n,0)>=0&&this.comparePoint(n,ft(n))<=0},containsRange:function(n){var t=this.intersection(n);return null!==t&&n.equals(t)},containsNodeText:function(n){var t=this.cloneRange(),i,r;return(t.selectNode(n),i=t.getNodes([3]),i.length>0)?(t.setStart(i[0],0),r=i.pop(),t.setEnd(r,r.length),this.containsRange(t)):this.containsNodeContents(n)},getNodes:function(n,t){return i(this),ki(this,n,t)},getDocument:function(){return e(this)},collapseBefore:function(n){this.setEndBefore(n);this.collapse(!1)},collapseAfter:function(n){this.setStartAfter(n);this.collapse(!0)},getBookmark:function(i){var o=e(this),r=n.createRange(o);i=i||t.getBody(o);r.selectNodeContents(i);var u=this.intersection(r),f=0,s=0;return u&&(r.setEnd(u.startContainer,u.startOffset),f=r.toString().length,s=f+u.toString().length),{start:f,end:s,containerNode:i}},moveToBookmark:function(n){var o=n.containerNode,t=0;this.setStart(o,0);this.collapse(!0);for(var i,r,u,f,s=[o],e=!1,h=!1;!h&&(i=s.pop());)if(3==i.nodeType)r=t+i.length,!e&&n.start>=t&&n.start<=r&&(this.setStart(i,n.start-t),e=!0),e&&n.end>=t&&n.end<=r&&(this.setEnd(i,n.end-t),h=!0),t=r;else for(f=i.childNodes,u=f.length;u--;)s.push(f[u])},getName:function(){return"DomRange"},equals:function(n){return c.rangesEqual(this,n)},isValid:function(){return dt(this)},inspect:function(){return wt(this)},detach:function(){}});ui(c,ei);tt.extend(c,{rangeProperties:ot,RangeIterator:o,copyComparisonConstants:ii,createPrototypeRange:ui,inspect:wt,toHtml:ni,getRangeDocument:e,rangesEqual:function(n,t){return n.startContainer===t.startContainer&&n.startOffset===t.startOffset&&n.endContainer===t.endContainer&&n.endOffset===t.endOffset}});n.DomRange=c}),n.createCoreModule("WrappedRange",["DomRange"],function(n,t){var o,r,i=n.dom,c=n.util,u=i.DomPosition,f=n.DomRange,e=i.getBody,s=i.getContentDocument,h=i.isCharacterDataNode,v,y;if(n.features.implementsDomRange&&!function(){function h(n){for(var t,i=b.length;i--;)t=b[i],n[t]=n.nativeRange[t];n.collapsed=n.startContainer===n.endContainer&&n.startOffset===n.endOffset}function k(n,t,i,r,u){var f=n.startContainer!==t||n.startOffset!=i,e=n.endContainer!==r||n.endOffset!=u,o=!n.equals(n.nativeRange);(f||e||o)&&(n.setEnd(r,u),n.setStart(t,i))}var r,a,b=f.rangeProperties,l,u,v,y,p,w;o=function(n){if(!n)throw t.createError("WrappedRange: Range must be specified");this.nativeRange=n;h(this)};f.createPrototypeRange(o,k);r=o.prototype;r.selectNode=function(n){this.nativeRange.selectNode(n);h(this)};r.cloneContents=function(){return this.nativeRange.cloneContents()};r.surroundContents=function(n){this.nativeRange.surroundContents(n);h(this)};r.collapse=function(n){this.nativeRange.collapse(n);h(this)};r.cloneRange=function(){return new o(this.nativeRange.cloneRange())};r.refresh=function(){h(this)};r.toString=function(){return this.nativeRange.toString()};l=document.createTextNode("test");e(document).appendChild(l);u=document.createRange();u.setStart(l,0);u.setEnd(l,0);try{u.setStart(l,1);r.setStart=function(n,t){this.nativeRange.setStart(n,t);h(this)};r.setEnd=function(n,t){this.nativeRange.setEnd(n,t);h(this)};a=function(n){return function(t){this.nativeRange[n](t);h(this)}}}catch(d){r.setStart=function(n,t){try{this.nativeRange.setStart(n,t)}catch(i){this.nativeRange.setEnd(n,t);this.nativeRange.setStart(n,t)}h(this)};r.setEnd=function(n,t){try{this.nativeRange.setEnd(n,t)}catch(i){this.nativeRange.setStart(n,t);this.nativeRange.setEnd(n,t)}h(this)};a=function(n,t){return function(i){try{this.nativeRange[n](i)}catch(r){this.nativeRange[t](i);this.nativeRange[n](i)}h(this)}}}r.setStartBefore=a("setStartBefore","setEndBefore");r.setStartAfter=a("setStartAfter","setEndAfter");r.setEndBefore=a("setEndBefore","setStartBefore");r.setEndAfter=a("setEndAfter","setStartAfter");r.selectNodeContents=function(n){this.setStartAndEnd(n,0,i.getNodeLength(n))};u.selectNodeContents(l);u.setEnd(l,3);v=document.createRange();v.selectNodeContents(l);v.setEnd(l,4);v.setStart(l,2);r.compareBoundaryPoints=-1==u.compareBoundaryPoints(u.START_TO_END,v)&&1==u.compareBoundaryPoints(u.END_TO_START,v)?function(n,t){return t=t.nativeRange||t,n==t.START_TO_END?n=t.END_TO_START:n==t.END_TO_START&&(n=t.START_TO_END),this.nativeRange.compareBoundaryPoints(n,t)}:function(n,t){return this.nativeRange.compareBoundaryPoints(n,t.nativeRange||t)};y=document.createElement("div");y.innerHTML="123";p=y.firstChild;w=e(document);w.appendChild(y);u.setStart(p,1);u.setEnd(p,2);u.deleteContents();"13"==p.data&&(r.deleteContents=function(){this.nativeRange.deleteContents();h(this)},r.extractContents=function(){var n=this.nativeRange.extractContents();return h(this),n});w.removeChild(y);w=null;c.isHostMethod(u,"createContextualFragment")&&(r.createContextualFragment=function(n){return this.nativeRange.createContextualFragment(n)});e(document).removeChild(l);r.getName=function(){return"WrappedRange"};n.WrappedRange=o;n.createNativeRange=function(n){return n=s(n,t,"createNativeRange"),n.createRange()}}(),n.features.implementsTextRange){var p=function(n){var e=n.parentElement(),t=n.duplicate(),r,f,u;return t.collapse(!0),r=t.parentElement(),t=n.duplicate(),t.collapse(!1),f=t.parentElement(),u=r==f?r:i.getCommonAncestor(r,f),u==e?u:i.getCommonAncestor(e,u)},w=function(n){return 0==n.compareEndPoints("StartToEnd",n)},l=function(n,t,r,f,e){var c=n.duplicate(),o,k,s,g,y,it;if(c.collapse(r),o=c.parentElement(),i.isOrIsAncestorOf(t,o)||(o=t),!o.canHaveHTML)return k=new u(o.parentNode,i.getNodeIndex(o)),{boundaryPosition:k,nodeInfo:{nodeIndex:k.offset,containerElement:k.node}};s=i.getDocument(o).createElement("span");s.parentNode&&i.removeNode(s);for(var p,w,d,nt,b,rt=r?"StartToStart":"StartToEnd",l=e&&e.containerElement==o?e.nodeIndex:0,tt=o.childNodes.length,a=tt,v=a;;){if(v==tt?o.appendChild(s):o.insertBefore(s,o.childNodes[v]),c.moveToElementText(s),p=c.compareEndPoints(rt,n),0==p||l==a)break;if(-1==p){if(a==l+1)break;l=v}else a=a==l+1?l:v;v=Math.floor((l+a)/2);o.removeChild(s)}if(b=s.nextSibling,-1==p&&b&&h(b)){if(c.setEndPoint(r?"EndToStart":"EndToEnd",n),/[\r\n]/.test(b.data))for(y=c.duplicate(),it=y.text.replace(/\r\n/g,"\r").length,g=y.moveStart("character",it);-1==(p=y.compareEndPoints("StartToEnd",y));)g++,y.moveStart("character",1);else g=c.text.length;nt=new u(b,g)}else w=(f||!r)&&s.previousSibling,d=(f||r)&&s.nextSibling,nt=d&&h(d)?new u(d,0):w&&h(w)?new u(w,w.data.length):new u(o,i.getNodeIndex(s));return i.removeNode(s),{boundaryPosition:nt,nodeInfo:{nodeIndex:v,containerElement:o}}},a=function(n,t){var u,f,r,s,c=n.offset,l=i.getDocument(n.node),o=e(l).createTextRange(),a=h(n.node);return a?(u=n.node,f=u.parentNode):(s=n.node.childNodes,u=c<s.length?s[c]:null,f=n.node),r=l.createElement("span"),r.innerHTML="&#feff;",u?f.insertBefore(r,u):f.appendChild(r),o.moveToElementText(r),o.collapse(!t),f.removeChild(r),a&&o[t?"moveStart":"moveEnd"]("character",c),o};r=function(n){this.textRange=n;this.refresh()};r.prototype=new f(document);r.prototype.refresh=function(){var n,t,i,r=p(this.textRange);w(this.textRange)?t=n=l(this.textRange,r,!0,!0).boundaryPosition:(i=l(this.textRange,r,!0,!1),n=i.boundaryPosition,t=l(this.textRange,r,!1,!1,i.nodeInfo).boundaryPosition);this.setStart(n.node,n.offset);this.setEnd(t.node,t.offset)};r.prototype.getName=function(){return"WrappedTextRange"};f.copyComparisonConstants(r);v=function(n){if(n.collapsed)return a(new u(n.startContainer,n.startOffset),!0);var i=a(new u(n.startContainer,n.startOffset),!0),r=a(new u(n.endContainer,n.endOffset),!1),t=e(f.getRangeDocument(n)).createTextRange();return t.setEndPoint("StartToStart",i),t.setEndPoint("EndToEnd",r),t};(r.rangeToTextRange=v,r.prototype.toTextRange=function(){return v(this)},n.WrappedTextRange=r,!n.features.implementsDomRange||n.config.preferTextRange)&&(y=function(n){return n("return this;")()}(Function),"undefined"==typeof y.Range&&(y.Range=r),n.createNativeRange=function(n){return n=s(n,t,"createNativeRange"),e(n).createTextRange()},n.WrappedRange=r)}n.createRange=function(i){return i=s(i,t,"createRange"),new n.WrappedRange(n.createNativeRange(i))};n.createRangyRange=function(n){return n=s(n,t,"createRangyRange"),new f(n)};c.createAliasForDeprecatedMethod(n,"createIframeRange","createRange");c.createAliasForDeprecatedMethod(n,"createIframeRangyRange","createRangyRange");n.addShimListener(function(t){var i=t.document;"undefined"==typeof i.createRange&&(i.createRange=function(){return n.createRange(i)});i=t=null})}),n.createCoreModule("WrappedSelection",["DomRange","WrappedRange"],function(n,t){function ct(n){return"string"==typeof n?/^backward(s)?$/i.test(n):!!n}function rt(n,i){if(n){if(f.isWindow(n))return n;if(n instanceof e)return n.win;var r=f.getContentDocument(n,t,i);return f.getWindow(r)}return window}function bi(n){return rt(n,"getWinSelection").getSelection()}function ri(n){return rt(n,"getDocSelection").document.selection}function ui(n){var t=!1;return n.anchorNode&&(t=1==f.comparePoints(n.anchorNode,n.anchorOffset,n.focusNode,n.focusOffset)),t}function k(n,t,i){var r=i?"end":"start",u=i?"start":"end";n.anchorNode=t[r+"Container"];n.anchorOffset=t[r+"Offset"];n.focusNode=t[u+"Container"];n.focusOffset=t[u+"Offset"]}function ki(n){var t=n.nativeSelection;n.anchorNode=t.anchorNode;n.anchorOffset=t.anchorOffset;n.focusNode=t.focusNode;n.focusOffset=t.focusOffset}function c(n){n.anchorNode=n.focusNode=null;n.anchorOffset=n.focusOffset=0;n.rangeCount=0;n.isCollapsed=!0;n._ranges.length=0}function lt(t){var i;return t instanceof nt?(i=n.createNativeRange(t.getDocument()),i.setEnd(t.endContainer,t.endOffset),i.setStart(t.startContainer,t.startOffset)):t instanceof wt?i=t.nativeRange:r.implementsDomRange&&t instanceof f.getWindow(t.startContainer).Range&&(i=t),i}function di(n){if(!n.length||1!=n[0].nodeType)return!1;for(var t=1,i=n.length;i>t;++t)if(!f.isAncestorOf(n[0],n[t]))return!1;return!0}function at(n){var i=n.getNodes();if(!di(i))throw t.createError("getSingleElementFromRange: range "+n.inspect()+" did not consist of a single element");return i[0]}function vt(n){return!!n&&"undefined"!=typeof n.text}function fi(n,t){var i=new wt(t);n._ranges=[i];k(n,i,!1);n.rangeCount=1;n.isCollapsed=i.collapsed}function d(t){var i,u,f,r;if(t._ranges.length=0,"None"==t.docSelection.type)c(t);else if(i=t.docSelection.createRange(),vt(i))fi(t,i);else{for(t.rangeCount=i.length,f=o(i.item(0)),r=0;r<t.rangeCount;++r)u=n.createRange(f),u.selectNode(i.item(r)),t._ranges.push(u);t.isCollapsed=1==t.rangeCount&&t._ranges[0].collapsed;k(t,t._ranges[t.rangeCount-1],!1)}}function ei(n,i){for(var r=n.docSelection.createRange(),e=at(i),s=o(r.item(0)),u=y(s).createControlRange(),f=0,h=r.length;h>f;++f)u.add(r.item(f));try{u.add(e)}catch(c){throw t.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)");}u.select();d(n)}function e(n,t,i){this.nativeSelection=n;this.docSelection=t;this._ranges=[];this.win=i;this.refresh()}function oi(n){n.win=n.anchorNode=n.focusNode=n._ranges=null;n.rangeCount=n.anchorOffset=n.focusOffset=0;n.detached=!0}function yt(n,t){for(var i,r,u=b.length;u--;)if(i=b[u],r=i.selection,"deleteAll"==t)oi(r);else if(i.win==n)return"delete"==t?(b.splice(u,1),!0):r;return"deleteAll"==t&&(b.length=0),null}function si(n,i){for(var u,e=o(i[0].startContainer),f=y(e).createControlRange(),r=0,s=i.length;s>r;++r){u=at(i[r]);try{f.add(u)}catch(h){throw t.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)");}}f.select();d(n)}function hi(n,t){if(n.win.document!=o(t))throw new ft("WRONG_DOCUMENT_ERR");}function ci(t){return function(i,r){var u;this.rangeCount?(u=this.getRangeAt(0),u["set"+(t?"Start":"End")](i,r)):(u=n.createRange(this.win.document),u.setStartAndEnd(i,r));this.setSingleRange(u,this.isBackward())}}function li(n){var i=[],u=new vi(n.anchorNode,n.anchorOffset),f=new vi(n.focusNode,n.focusOffset),e="function"==typeof n.getName?n.getName():"Selection",t,r;if("undefined"!=typeof n.rangeCount)for(t=0,r=n.rangeCount;r>t;++t)i[t]=nt.inspect(n.getRangeAt(t));return"["+e+"(Ranges: "+i.join(", ")+")(anchor: "+u.inspect()+", focus: "+f.inspect()+"]"}var p,u,tt,gt,wi,s,ot,b,st,i,ti,ht,ii,it;n.config.checkSelectionRanges=!0;var g,ut,ai="boolean",pt="number",f=n.dom,l=n.util,a=l.isHostMethod,nt=n.DomRange,wt=n.WrappedRange,ft=n.DOMException,vi=f.DomPosition,r=n.features,v="Control",o=f.getDocument,y=f.getBody,bt=nt.rangesEqual,kt=a(window,"getSelection"),h=l.isHostObject(document,"selection");if(r.implementsWinGetSelection=kt,r.implementsDocSelection=h,p=h&&(!kt||n.config.preferTextRange),p)g=ri,n.isSelectionValid=function(n){var t=rt(n,"isSelectionValid").document,i=t.selection;return"None"!=i.type||o(i.createRange().parentElement())==t};else{if(!kt)return t.fail("Neither document.selection or window.getSelection() detected."),!1;g=bi;n.isSelectionValid=function(){return!0}}if(n.getNativeSelection=g,u=g(),!u)return t.fail("Native selection was null (possibly issue 138?)"),!1;var yi=n.createNativeRange(document),dt=y(document),w=l.areHostProperties(u,["anchorNode","focusNode","anchorOffset","focusOffset"]);r.selectionHasAnchorAndFocus=w;tt=a(u,"extend");r.selectionHasExtend=tt;gt=typeof u.rangeCount==pt;r.selectionHasRangeCount=gt;var et=!1,pi=!0,ni=tt?function(t,i){var u=nt.getRangeDocument(i),r=n.createRange(u);r.collapseToPoint(i.endContainer,i.endOffset);t.addRange(lt(r));t.extend(i.startContainer,i.startOffset)}:null;if(l.areHostMethods(u,["addRange","getRangeAt","removeAllRanges"])&&typeof u.rangeCount==pt&&r.implementsDomRange&&!function(){var t=window.getSelection(),h,o;if(t){for(var s=t.rangeCount,l=s>1,u=[],a=ui(t),i=0;s>i;++i)u[i]=t.getRangeAt(i);var c=f.createTestElement(document,"",!1),e=c.appendChild(document.createTextNode("   ")),r=document.createRange();for((r.setStart(e,1),r.collapse(!0),t.removeAllRanges(),t.addRange(r),pi=1==t.rangeCount,t.removeAllRanges(),l)||(h=window.navigator.appVersion.match(/Chrome\/(.*?) /),h&&parseInt(h[1])>=36?et=!1:(o=r.cloneRange(),r.setStart(e,0),o.setEnd(e,3),o.setStart(e,2),t.addRange(r),t.addRange(o),et=2==t.rangeCount)),f.removeNode(c),t.removeAllRanges(),i=0;s>i;++i)0==i&&a?ni?ni(t,u[i]):(n.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),t.addRange(u[i])):t.addRange(u[i])}}(),r.selectionSupportsMultipleRanges=et,r.collapsedNonEditableSelectionsSupported=pi,s=!1,dt&&a(dt,"createControlRange")&&(wi=dt.createControlRange(),l.areHostProperties(wi,["item","add"])&&(s=!0)),r.implementsControlRange=s,ut=w?function(n){return n.anchorNode===n.focusNode&&n.anchorOffset===n.focusOffset}:function(n){return n.rangeCount?n.getRangeAt(n.rangeCount-1).collapsed:!1},a(u,"getRangeAt")?ot=function(n,t){try{return n.getRangeAt(t)}catch(i){return null}}:w&&(ot=function(t){var r=o(t.anchorNode),i=n.createRange(r);return i.setStartAndEnd(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),i.collapsed!==this.isCollapsed&&i.setStartAndEnd(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset),i}),e.prototype=n.selectionPrototype,b=[],st=function(n){if(n&&n instanceof e)return n.refresh(),n;n=rt(n,"getNativeSelection");var t=yt(n),i=g(n),r=h?ri(n):null;return t?(t.nativeSelection=i,t.docSelection=r,t.refresh()):(t=new e(i,r,n),b.push({win:n,selection:t})),t},n.getSelection=st,l.createAliasForDeprecatedMethod(n,"getIframeSelection","getSelection"),i=e.prototype,!p&&w&&l.areHostMethods(u,["removeAllRanges","addRange"]))i.removeAllRanges=function(){this.nativeSelection.removeAllRanges();c(this)},ti=function(n,t){ni(n.nativeSelection,t);n.refresh()},i.addRange=gt?function(t,i){var u,f,r;if(s&&h&&this.docSelection.type==v)ei(this,t);else if(ct(i)&&tt)ti(this,t);else{et?u=this.rangeCount:(this.removeAllRanges(),u=0);f=lt(t).cloneRange();try{this.nativeSelection.addRange(f)}catch(e){}(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==u+1)?(n.config.checkSelectionRanges&&(r=ot(this.nativeSelection,this.rangeCount-1),r&&!bt(r,t)&&(t=new wt(r))),this._ranges[this.rangeCount-1]=t,k(this,t,it(this.nativeSelection)),this.isCollapsed=ut(this)):this.refresh()}}:function(n,t){ct(t)&&tt?ti(this,n):(this.nativeSelection.addRange(lt(n)),this.refresh())},i.setRanges=function(n){if(s&&h&&n.length>1)si(this,n);else{this.removeAllRanges();for(var t=0,i=n.length;i>t;++t)this.addRange(n[t])}};else{if(!(a(u,"empty")&&a(yi,"select")&&s&&p))return t.fail("No means of selecting a Range or TextRange was found"),!1;i.removeAllRanges=function(){var n,t,i;try{(this.docSelection.empty(),"None"!=this.docSelection.type)&&(this.anchorNode?n=o(this.anchorNode):this.docSelection.type==v&&(t=this.docSelection.createRange(),t.length&&(n=o(t.item(0)))),n&&(i=y(n).createTextRange(),i.select(),this.docSelection.empty()))}catch(r){}c(this)};i.addRange=function(t){this.docSelection.type==v?ei(this,t):(n.WrappedTextRange.rangeToTextRange(t).select(),this._ranges[0]=t,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,k(this,t,!1))};i.setRanges=function(n){this.removeAllRanges();var t=n.length;t>1?si(this,n):t&&this.addRange(n[0])}}if(i.getRangeAt=function(n){if(0>n||n>=this.rangeCount)throw new ft("INDEX_SIZE_ERR");return this._ranges[n].cloneRange()},p)ht=function(t){var i;n.isSelectionValid(t.win)?i=t.docSelection.createRange():(i=y(t.win.document).createTextRange(),i.collapse(!0));t.docSelection.type==v?d(t):vt(i)?fi(t,i):c(t)};else if(a(u,"getRangeAt")&&typeof u.rangeCount==pt)ht=function(t){if(s&&h&&t.docSelection.type==v)d(t);else if(t._ranges.length=t.rangeCount=t.nativeSelection.rangeCount,t.rangeCount){for(var i=0,r=t.rangeCount;r>i;++i)t._ranges[i]=new n.WrappedRange(t.nativeSelection.getRangeAt(i));k(t,t._ranges[t.rangeCount-1],it(t.nativeSelection));t.isCollapsed=ut(t)}else c(t)};else{if(!w||typeof u.isCollapsed!=ai||typeof yi.collapsed!=ai||!r.implementsDomRange)return t.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;ht=function(n){var t,i=n.nativeSelection;i.anchorNode?(t=ot(i,0),n._ranges=[t],n.rangeCount=1,ki(n),n.isCollapsed=ut(n)):c(n)}}i.refresh=function(n){var i=n?this._ranges.slice(0):null,r=this.anchorNode,u=this.anchorOffset,t;if(ht(this),n){if((t=i.length,t!=this._ranges.length)||this.anchorNode!=r||this.anchorOffset!=u)return!0;for(;t--;)if(!bt(i[t],this._ranges[t]))return!0;return!1}};ii=function(n,t){var r=n.getAllRanges(),i,u;for(n.removeAllRanges(),i=0,u=r.length;u>i;++i)bt(t,r[i])||n.addRange(r[i]);n.rangeCount||c(n)};i.removeRange=s&&h?function(n){if(this.docSelection.type==v){for(var r,t=this.docSelection.createRange(),e=at(n),s=o(t.item(0)),u=y(s).createControlRange(),f=!1,i=0,h=t.length;h>i;++i)r=t.item(i),r!==e||f?u.add(t.item(i)):f=!0;u.select();d(this)}else ii(this,n)}:function(n){ii(this,n)};!p&&w&&r.implementsDomRange?(it=ui,i.isBackward=function(){return it(this)}):it=i.isBackward=function(){return!1};i.isBackwards=i.isBackward;i.toString=function(){for(var t=[],n=0,i=this.rangeCount;i>n;++n)t[n]=""+this._ranges[n];return t.join("")};i.collapse=function(t,i){hi(this,t);var r=n.createRange(t);r.collapseToPoint(t,i);this.setSingleRange(r);this.isCollapsed=!0};i.collapseToStart=function(){if(!this.rangeCount)throw new ft("INVALID_STATE_ERR");var n=this._ranges[0];this.collapse(n.startContainer,n.startOffset)};i.collapseToEnd=function(){if(!this.rangeCount)throw new ft("INVALID_STATE_ERR");var n=this._ranges[this.rangeCount-1];this.collapse(n.endContainer,n.endOffset)};i.selectAllChildren=function(t){hi(this,t);var i=n.createRange(t);i.selectNodeContents(t);this.setSingleRange(i)};i.deleteFromDocument=function(){var r,t,n,i,u;if(s&&h&&this.docSelection.type==v){for(t=this.docSelection.createRange();t.length;)r=t.item(0),t.remove(r),f.removeNode(r);this.refresh()}else if(this.rangeCount&&(n=this.getAllRanges(),n.length)){for(this.removeAllRanges(),i=0,u=n.length;u>i;++i)n[i].deleteContents();this.addRange(n[u-1])}};i.eachRange=function(n,t){for(var i=0,r=this._ranges.length;r>i;++i)if(n(this.getRangeAt(i)))return t};i.getAllRanges=function(){var n=[];return this.eachRange(function(t){n.push(t)}),n};i.setSingleRange=function(n,t){this.removeAllRanges();this.addRange(n,t)};i.callMethodOnEachRange=function(n,t){var i=[];return this.eachRange(function(r){i.push(r[n].apply(r,t||[]))}),i};i.setStart=ci(!0);i.setEnd=ci(!1);n.rangePrototype.select=function(n){st(this.getDocument()).setSingleRange(this,n)};i.changeEachRange=function(n){var t=[],i=this.isBackward();this.eachRange(function(i){n(i);t.push(i)});this.removeAllRanges();i&&1==t.length?this.addRange(t[0],"backward"):this.setRanges(t)};i.containsNode=function(n,t){return this.eachRange(function(i){return i.containsNode(n,t)},!0)||!1};i.getBookmark=function(n){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[n])}};i.moveToBookmark=function(t){for(var u,i,r=[],f=0;u=t.rangeBookmarks[f++];)i=n.createRange(this.win),i.moveToBookmark(u),r.push(i);t.backward?this.setSingleRange(r[0],"backward"):this.setRanges(r)};i.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}};i.restoreRanges=function(n){this.removeAllRanges();for(var i,t=0;i=n.ranges[t];++t)this.addRange(i,n.backward&&0==t)};i.toHtml=function(){var n=[];return this.eachRange(function(t){n.push(nt.toHtml(t))}),n.join("")};r.implementsTextRange&&(i.getNativeTextRange=function(){var r,i;if(r=this.docSelection){if(i=r.createRange(),vt(i))return i;throw t.createError("getNativeTextRange: selection is a control selection");}if(this.rangeCount>0)return n.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw t.createError("getNativeTextRange: selection contains no range");});i.getName=function(){return"WrappedSelection"};i.inspect=function(){return li(this)};i.detach=function(){yt(this.win,"delete");oi(this)};e.detachAll=function(){yt(null,"deleteAll")};e.inspect=li;e.isDirectionBackward=ct;n.Selection=e;n.selectionPrototype=i;n.addShimListener(function(n){"undefined"==typeof n.getSelection&&(n.getSelection=function(){return st(n)});n=null})}),d=!1,v=function(){d||(d=!0,!n.initialized&&n.config.autoInitialize&&w())},i&&("complete"==document.readyState?v():(t(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",v,!1),c(window,"load",v))),n},this),function(t,i){"function"==typeof define&&define.amd?define(["./rangy-core"],t):"undefined"!=typeof module&&"object"==typeof n?module.exports=t(require("rangy")):t(i.rangy)}(function(n){return n.createModule("SaveRestore",["WrappedRange"],function(n,t){function i(n,t){return(t||document).getElementById(n)}function f(n,t){var i,f="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),r=l.getDocument(n.startContainer),u=n.cloneRange();return u.collapse(t),i=r.createElement("span"),i.id=f,i.style.lineHeight="0",i.style.display="none",i.className="rangySelectionBoundary",i.appendChild(r.createTextNode(b)),u.insertNode(i),i}function e(n,r,f,e){var o=i(f,n);o?(r[e?"setStartBefore":"setEndBefore"](o),u(o)):t.warn("Marker element has been removed. Cannot restore selection.")}function v(n,t){return t.compareBoundaryPoints(n.START_TO_START,n)}function o(t,i){var u,r,e=n.DomRange.getRangeDocument(t),o=t.toString(),s=a(i);return t.collapsed?(r=f(t,!1),{document:e,markerId:r.id,collapsed:!0}):(r=f(t,!1),u=f(t,!0),{document:e,startMarkerId:u.id,endMarkerId:r.id,collapsed:!1,backward:s,toString:function(){return"original text: '"+o+"', new text: '"+t.toString()+"'"}})}function s(r,f){var c=r.document,o,s,h;return"undefined"==typeof f&&(f=!0),o=n.createRange(c),r.collapsed?(s=i(r.markerId,c),s?(s.style.display="inline",h=s.previousSibling,h&&3==h.nodeType?(u(s),o.collapseToPoint(h,h.length)):(o.collapseBefore(s),u(s))):t.warn("Marker element has been removed. Cannot restore selection.")):(e(c,o,r.startMarkerId,!0),e(c,o,r.endMarkerId,!1)),f&&o.normalizeBoundaries(),o}function h(t,r){var f,s,e=[],c=a(r),u,h;for(t=t.slice(0),t.sort(v),u=0,h=t.length;h>u;++u)e[u]=o(t[u],c);for(u=h-1;u>=0;--u)f=t[u],s=n.DomRange.getRangeDocument(f),f.collapsed?f.collapseAfter(i(e[u].markerId,s)):(f.setEndBefore(i(e[u].endMarkerId,s)),f.setStartAfter(i(e[u].startMarkerId,s)));return e}function y(i){if(!n.isSelectionValid(i))return t.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var r=n.getSelection(i),u=r.getAllRanges(),f=1==u.length&&r.isBackward(),e=h(u,f);return f?r.setSingleRange(u[0],f):r.setRanges(u),{win:i,rangeInfos:e,restored:!1}}function c(n){for(var i=[],r=n.length,t=r-1;t>=0;t--)i[t]=s(n[t],!0);return i}function p(t,i){if(!t.restored){var r=t.rangeInfos,u=n.getSelection(t.win),f=c(r),e=r.length;1==e&&i&&n.features.selectionHasExtend&&r[0].backward?(u.removeAllRanges(),u.addRange(f[0],!0)):u.setRanges(f);t.restored=!0}}function r(n,t){var r=i(t,n);r&&u(r)}function w(n){for(var t,u=n.rangeInfos,i=0,f=u.length;f>i;++i)t=u[i],t.collapsed?r(n.doc,t.markerId):(r(n.doc,t.startMarkerId),r(n.doc,t.endMarkerId))}var l=n.dom,u=l.removeNode,a=n.Selection.isDirectionBackward,b="﻿";n.util.extend(n,{saveRange:o,restoreRange:s,saveRanges:h,restoreRanges:c,saveSelection:y,restoreSelection:p,removeMarkerElement:r,removeMarkers:w})}),n},this)}({},function(){return this}()),function(n,t){"use strict";function nt(){this.$get=["$$sanitizeUri",function(n){return function(t){typeof arguments[1]!="undefined"&&(arguments[1].version="taSanitize");var i=[];return vt(t,d(i,function(t,i){return!/^unsafe/.test(n(t,i))})),i.join("")}}]}function tt(n){var i=[],r=d(i,t.noop);return r.chars(n),i.join("")}function i(n){for(var i={},r=n.split(","),t=0;t<r.length;t++)i[r[t]]=!0;return i}function vt(n,i){function d(n,f,e,o){if(f=t.lowercase(f),a[f])while(r.last()&&v[r.last()])w("",r.last());l[f]&&r.last()==f&&w("",f);o=s[f]||!!o;o||r.push(f);var h={};e.replace(it,function(n,t,i,r,f){var e=i||r||f||"";h[t]=u(e)});i.start&&i.start(f,h,o)}function w(n,u){var f=0,e;if(u=t.lowercase(u),u)for(f=r.length-1;f>=0;f--)if(r[f]==u)break;if(f>=0){for(e=r.length-1;e>=f;e--)i.end&&i.end(r[e]);r.length=f}}typeof n!="string"&&(n=n===null||typeof n=="undefined"?"":""+n);var c,p,h,r=[],k=n,b;for(r.last=function(){return r[r.length-1]};n;){if(b="",p=!0,r.last()&&y[r.last()]?(n=n.replace(new RegExp("([^]*)<\\s*\\/\\s*"+r.last()+"[^>]*>","i"),function(n,t){return t=t.replace(ft,"$1").replace(et,"$1"),i.chars&&i.chars(u(t)),""}),w("",r.last())):(n.indexOf("<!--")===0?(c=n.indexOf("--",4),c>=0&&n.lastIndexOf("-->",c)===c&&(i.comment&&i.comment(n.substring(4,c)),n=n.substring(c+3),p=!1)):o.test(n)?(h=n.match(o),h&&(n=n.replace(h[0],""),p=!1)):ut.test(n)?(h=n.match(e),h&&(n=n.substring(h[0].length),h[0].replace(e,w),p=!1)):rt.test(n)&&(h=n.match(f),h?(h[4]&&(n=n.substring(h[0].length),h[0].replace(f,d)),p=!1):(b+="<",n=n.substring(1))),p&&(c=n.indexOf("<"),b+=c<0?n:n.substring(0,c),n=c<0?"":n.substring(c),i.chars&&i.chars(u(b)))),n==k)throw g("badparse","The sanitizer was unable to parse the following block of html: {0}",n);k=n}w()}function u(n){if(!n)return"";var i=yt.exec(n),u=i[1],f=i[3],t=i[2];return t&&(r.innerHTML=t.replace(/</g,"&lt;"),t="textContent"in r?r.textContent:r.innerText),u+t+f}function b(n){return n.replace(/&/g,"&amp;").replace(ot,function(n){var t=n.charCodeAt(0),i=n.charCodeAt(1);return"&#"+((t-55296)*1024+(i-56320)+65536)+";"}).replace(st,function(n){var t=n.charCodeAt(0);return t<=159||t==173||t>=1536&&t<=1540||t==1807||t==6068||t==6069||t>=8204&&t<=8207||t>=8232&&t<=8239||t>=8288&&t<=8303||t==65279||t>=65520&&t<=65535?"&#"+t+";":n}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function pt(n){var i="",r=n.split(";");return t.forEach(r,function(n){var u=n.split(":"),r,n;u.length==2&&(r=k(t.lowercase(u[0])),n=k(t.lowercase(u[1])),((r==="color"||r==="background-color")&&(n.match(/^rgb\([0-9%,\. ]*\)$/i)||n.match(/^rgba\([0-9%,\. ]*\)$/i)||n.match(/^hsl\([0-9%,\. ]*\)$/i)||n.match(/^hsla\([0-9%,\. ]*\)$/i)||n.match(/^#[0-9a-f]{3,6}$/i)||n.match(/^[a-z]*$/i))||r==="text-align"&&(n==="left"||n==="right"||n==="center"||n==="justify")||r==="float"&&(n==="left"||n==="right"||n==="none")||(r==="width"||r==="height")&&n.match(/[0-9\.]*(px|em|rem|%)/)||r==="direction"&&n.match(/^ltr|rtl|initial|inherit$/))&&(i+=r+": "+n+";"))}),i}function wt(n,t,i,r){return n==="img"&&t["ta-insert-video"]&&(i==="ta-insert-video"||i==="allowfullscreen"||i==="frameborder"||i==="contenteditable"&&r==="false")?!0:!1}function d(n,i){var u=!1,r=t.bind(n,n.push);return{start:function(n,f,e){n=t.lowercase(n);!u&&y[n]&&(u=n);u||p[n]!==!0||(r("<"),r(n),t.forEach(f,function(u,e){var o=t.lowercase(e),s=n==="img"&&o==="src"||o==="background";(o==="style"&&(u=pt(u))!==""||wt(n,f,o,u)||at[o]===!0&&(w[o]!==!0||i(u,s)))&&(r(" "),r(e),r('="'),r(b(u)),r('"'))}),r(e?"/>":">"))},end:function(n){n=t.lowercase(n);u||p[n]!==!0||(r("<\/"),r(n),r(">"));n==u&&(u=!1)},chars:function(n){u||r(b(n))}}}var g=t.$$minErr("$sanitize"),f=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,e=/^<\/\s*([\w:-]+)[^>]*>/,it=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,rt=/^</,ut=/^<\//,ft=/<!--(.*?)-->/g,o=/<!DOCTYPE([^>]*?)>/i,et=/<!\[CDATA\[(.*?)]]>/g,ot=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,st=/([^\#-~| |!])/g,s=i("area,br,col,hr,img,wbr,input"),h=i("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),c=i("rp,rt"),l=t.extend({},c,h),a=t.extend({},h,i("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),v=t.extend({},c,i("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),ht=i("animate,animateColor,animateMotion,animateTransform,circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,set,stop,svg,switch,text,title,tspan,use"),y=i("script,style"),p=t.extend({},s,a,v,l,ht),w=i("background,cite,href,longdesc,src,usemap,xlink:href"),ct=i("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,id,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width"),lt=i("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,attributeName,attributeType,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan"),at=t.extend({},w,lt,ct),r=document.createElement("pre"),yt=/^(\s*)([\s\S]*?)(\s*)$/,k=function(){return String.prototype.trim?function(n){return t.isString(n)?n.trim():n}:function(n){return t.isString(n)?n.replace(/^\s\s*/,"").replace(/\s\s*$/,""):n}}();t.module("ngSanitize",[]).provider("$sanitize",nt);t.module("ngSanitize").filter("linky",["$sanitize",function(n){var i=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/,r=/^mailto:/;return function(u,f){function l(n){n&&o.push(tt(n))}function a(n,i){o.push("<a ");t.isDefined(f)&&o.push('target="',f,'" ');o.push('href="',n.replace(/"/g,"&quot;"),'">');l(i);o.push("<\/a>")}if(!u)return u;for(var e,s=u,o=[],h,c;e=s.match(i);)h=e[0],e[2]||e[4]||(h=(e[3]?"http://":"mailto:")+h),c=e.index,l(s.substr(0,c)),a(h,e[0].replace(r,"")),s=s.substring(c+e[0].length);return l(s),n(o.join(""))}}])}(window,window.angular);!function(n,t){t["true"]=n;angular.module("textAngularSetup",[]).value("taOptions",{forceTextAngularSanitize:!0,keyMappings:[],toolbar:[["h1","h2","h3","h4","h5","h6","p","pre","quote"],["bold","italics","underline","strikeThrough","ul","ol","redo","undo","clear"],["justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent"],["html","insertImage","insertLink","insertVideo","wordcount","charcount"]],classes:{focussed:"focussed",toolbar:"btn-toolbar",toolbarGroup:"btn-group",toolbarButton:"btn btn-default",toolbarButtonActive:"active",disabled:"disabled",textEditor:"form-control",htmlEditor:"form-control"},defaultTagAttributes:{a:{target:""}},setup:{textEditorSetup:function(){},htmlEditorSetup:function(){}},defaultFileDropHandler:function(n,t){var i=new FileReader;return"image"===n.type.substring(0,5)?(i.onload=function(){""!==i.result&&t("insertImage",i.result,!0)},i.readAsDataURL(n),!0):!1}}).value("taSelectableElements",["a","img"]).value("taCustomRenderers",[{selector:"img",customAttribute:"ta-insert-video",renderLogic:function(n){var t=angular.element("<iframe><\/iframe>"),i=n.prop("attributes");angular.forEach(i,function(n){t.attr(n.name,n.value)});t.attr("src",t.attr("ta-insert-video"));n.replaceWith(t)}}]).value("taTranslations",{html:{tooltip:"Toggle html / Rich Text"},heading:{tooltip:"Heading "},p:{tooltip:"Paragraph"},pre:{tooltip:"Preformatted text"},ul:{tooltip:"Unordered List"},ol:{tooltip:"Ordered List"},quote:{tooltip:"Quote/unquote selection or paragraph"},undo:{tooltip:"Undo"},redo:{tooltip:"Redo"},bold:{tooltip:"Bold"},italic:{tooltip:"Italic"},underline:{tooltip:"Underline"},strikeThrough:{tooltip:"Strikethrough"},justifyLeft:{tooltip:"Align text left"},justifyRight:{tooltip:"Align text right"},justifyFull:{tooltip:"Justify text"},justifyCenter:{tooltip:"Center"},indent:{tooltip:"Increase indent"},outdent:{tooltip:"Decrease indent"},clear:{tooltip:"Clear formatting"},insertImage:{dialogPrompt:"Please enter an image URL to insert",tooltip:"Insert image",hotkey:"the - possibly language dependent hotkey ... for some future implementation"},insertVideo:{tooltip:"Insert video",dialogPrompt:"Please enter a youtube URL to embed"},insertLink:{tooltip:"Insert / edit link",dialogPrompt:"Please enter a URL to insert"},editLink:{reLinkButton:{tooltip:"Relink"},unLinkButton:{tooltip:"Unlink"},targetToggle:{buttontext:"Open in New Window"}},wordcount:{tooltip:"Display words Count"},charcount:{tooltip:"Display characters Count"}}).factory("taToolFunctions",["$window","taTranslations",function(n,t){return{imgOnSelectAction:function(n,t,i){var u=function(){i.updateTaBindtaTextElement();i.hidePopover()},f,r,e,o,s,h,c,l,a,v;n.preventDefault();i.displayElements.popover.css("width","375px");f=i.displayElements.popoverContainer;f.empty();r=angular.element('<div class="btn-group" style="padding-right: 6px;">');e=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">100% <\/button>');e.on("click",function(n){n.preventDefault();t.css({width:"100%",height:""});u()});o=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">50% <\/button>');o.on("click",function(n){n.preventDefault();t.css({width:"50%",height:""});u()});s=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">25% <\/button>');s.on("click",function(n){n.preventDefault();t.css({width:"25%",height:""});u()});h=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">Reset<\/button>');h.on("click",function(n){n.preventDefault();t.css({width:"",height:""});u()});r.append(e);r.append(o);r.append(s);r.append(h);f.append(r);r=angular.element('<div class="btn-group" style="padding-right: 6px;">');c=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-left"><\/i><\/button>');c.on("click",function(n){n.preventDefault();t.css("float","left");t.css("cssFloat","left");t.css("styleFloat","left");u()});l=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-right"><\/i><\/button>');l.on("click",function(n){n.preventDefault();t.css("float","right");t.css("cssFloat","right");t.css("styleFloat","right");u()});a=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-justify"><\/i><\/button>');a.on("click",function(n){n.preventDefault();t.css("float","");t.css("cssFloat","");t.css("styleFloat","");u()});r.append(c);r.append(a);r.append(l);f.append(r);r=angular.element('<div class="btn-group">');v=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-trash-o"><\/i><\/button>');v.on("click",function(n){n.preventDefault();t.remove();u()});r.append(v);f.append(r);i.showPopover(t);i.showResizeOverlay(t)},aOnSelectAction:function(i,r,u){var f,s,e,h,c,o;i.preventDefault();u.displayElements.popover.css("width","436px");f=u.displayElements.popoverContainer;f.empty();f.css("line-height","28px");s=angular.element('<a href="'+r.attr("href")+'" target="_blank">'+r.attr("href")+"<\/a>");s.css({display:"inline-block","max-width":"200px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","vertical-align":"middle"});f.append(s);e=angular.element('<div class="btn-group pull-right">');h=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+t.editLink.reLinkButton.tooltip+'"><i class="fa fa-edit icon-edit"><\/i><\/button>');h.on("click",function(i){i.preventDefault();var f=n.prompt(t.insertLink.dialogPrompt,r.attr("href"));f&&""!==f&&"http://"!==f&&(r.attr("href",f),u.updateTaBindtaTextElement());u.hidePopover()});e.append(h);c=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+t.editLink.unLinkButton.tooltip+'"><i class="fa fa-unlink icon-unlink"><\/i><\/button>');c.on("click",function(n){n.preventDefault();r.replaceWith(r.contents());u.updateTaBindtaTextElement();u.hidePopover()});e.append(c);o=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on">'+t.editLink.targetToggle.buttontext+"<\/button>");"_blank"===r.attr("target")&&o.addClass("active");o.on("click",function(n){n.preventDefault();r.attr("target","_blank"===r.attr("target")?"":"_blank");o.toggleClass("active");u.updateTaBindtaTextElement()});e.append(o);f.append(e);u.showPopover(r)},extractYoutubeVideoId:function(n){var t=n.match(/(?:youtube(?:-nocookie)?\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/i);return t&&t[1]||null}}}]).run(["taRegisterTool","$window","taTranslations","taSelection","taToolFunctions","$sanitize","taOptions",function(n,t,i,r,u,f,e){var o={},s,h;if(f("",o),e.forceTextAngularSanitize===!0&&"taSanitize"!==o.version)throw angular.$$minErr("textAngular")("textAngularSetup","The textAngular-sanitize provider has been replaced by another -- have you included angular-sanitize by mistake?");n("html",{iconclass:"fa fa-code",tooltiptext:i.html.tooltip,action:function(){this.$editor().switchView()},activeState:function(){return this.$editor().showHtml}});s=function(n){return function(){return this.$editor().queryFormatBlockState(n)}};h=function(){return this.$editor().wrapSelection("formatBlock","<"+this.name.toUpperCase()+">")};angular.forEach(["h1","h2","h3","h4","h5","h6"],function(t){n(t.toLowerCase(),{buttontext:t.toUpperCase(),tooltiptext:i.heading.tooltip+t.charAt(1),action:h,activeState:s(t.toLowerCase())})});n("p",{buttontext:"P",tooltiptext:i.p.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<P>")},activeState:function(){return this.$editor().queryFormatBlockState("p")}});n("pre",{buttontext:"pre",tooltiptext:i.pre.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<PRE>")},activeState:function(){return this.$editor().queryFormatBlockState("pre")}});n("ul",{iconclass:"fa fa-list-ul",tooltiptext:i.ul.tooltip,action:function(){return this.$editor().wrapSelection("insertUnorderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertUnorderedList")}});n("ol",{iconclass:"fa fa-list-ol",tooltiptext:i.ol.tooltip,action:function(){return this.$editor().wrapSelection("insertOrderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertOrderedList")}});n("quote",{iconclass:"fa fa-quote-right",tooltiptext:i.quote.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<BLOCKQUOTE>")},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")}});n("undo",{iconclass:"fa fa-undo",tooltiptext:i.undo.tooltip,action:function(){return this.$editor().wrapSelection("undo",null)}});n("redo",{iconclass:"fa fa-repeat",tooltiptext:i.redo.tooltip,action:function(){return this.$editor().wrapSelection("redo",null)}});n("bold",{iconclass:"fa fa-bold",tooltiptext:i.bold.tooltip,action:function(){return this.$editor().wrapSelection("bold",null)},activeState:function(){return this.$editor().queryCommandState("bold")},commandKeyCode:98});n("justifyLeft",{iconclass:"fa fa-align-left",tooltiptext:i.justifyLeft.tooltip,action:function(){return this.$editor().wrapSelection("justifyLeft",null)},activeState:function(n){if(n&&"#document"===n.nodeName)return!1;var t=!1;return n&&(t="left"===n.css("text-align")||"left"===n.attr("align")||"right"!==n.css("text-align")&&"center"!==n.css("text-align")&&"justify"!==n.css("text-align")&&!this.$editor().queryCommandState("justifyRight")&&!this.$editor().queryCommandState("justifyCenter")&&!this.$editor().queryCommandState("justifyFull")),t=t||this.$editor().queryCommandState("justifyLeft")}});n("justifyRight",{iconclass:"fa fa-align-right",tooltiptext:i.justifyRight.tooltip,action:function(){return this.$editor().wrapSelection("justifyRight",null)},activeState:function(n){if(n&&"#document"===n.nodeName)return!1;var t=!1;return n&&(t="right"===n.css("text-align")),t=t||this.$editor().queryCommandState("justifyRight")}});n("justifyFull",{iconclass:"fa fa-align-justify",tooltiptext:i.justifyFull.tooltip,action:function(){return this.$editor().wrapSelection("justifyFull",null)},activeState:function(n){var t=!1;return n&&(t="justify"===n.css("text-align")),t=t||this.$editor().queryCommandState("justifyFull")}});n("justifyCenter",{iconclass:"fa fa-align-center",tooltiptext:i.justifyCenter.tooltip,action:function(){return this.$editor().wrapSelection("justifyCenter",null)},activeState:function(n){if(n&&"#document"===n.nodeName)return!1;var t=!1;return n&&(t="center"===n.css("text-align")),t=t||this.$editor().queryCommandState("justifyCenter")}});n("indent",{iconclass:"fa fa-indent",tooltiptext:i.indent.tooltip,action:function(){return this.$editor().wrapSelection("indent",null)},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")},commandKeyCode:"TabKey"});n("outdent",{iconclass:"fa fa-outdent",tooltiptext:i.outdent.tooltip,action:function(){return this.$editor().wrapSelection("outdent",null)},activeState:function(){return!1},commandKeyCode:"ShiftTabKey"});n("italics",{iconclass:"fa fa-italic",tooltiptext:i.italic.tooltip,action:function(){return this.$editor().wrapSelection("italic",null)},activeState:function(){return this.$editor().queryCommandState("italic")},commandKeyCode:105});n("underline",{iconclass:"fa fa-underline",tooltiptext:i.underline.tooltip,action:function(){return this.$editor().wrapSelection("underline",null)},activeState:function(){return this.$editor().queryCommandState("underline")},commandKeyCode:117});n("strikeThrough",{iconclass:"fa fa-strikethrough",tooltiptext:i.strikeThrough.tooltip,action:function(){return this.$editor().wrapSelection("strikeThrough",null)},activeState:function(){return document.queryCommandState("strikeThrough")}});n("clear",{iconclass:"fa fa-ban",tooltiptext:i.clear.tooltip,action:function(n,t){var i,u,c,f,o,l,a,p,v;if(this.$editor().wrapSelection("removeFormat",null),u=angular.element(r.getSelectionElement()),c=function(n){n=angular.element(n);var t=n;angular.forEach(n.children(),function(n){var i=angular.element("<p><\/p>");i.html(angular.element(n).html());t.after(i);t=i});n.remove()},angular.forEach(u.find("ul"),c),angular.forEach(u.find("ol"),c),"li"===u[0].tagName.toLowerCase()){var h=u[0].parentNode.childNodes,s=[],e=[],y=!1;for(i=0;i<h.length;i++)h[i]===u[0]?y=!0:y?e.push(h[i]):s.push(h[i]);if(f=angular.element(u[0].parentNode),o=angular.element("<p><\/p>"),o.html(angular.element(u[0]).html()),0===s.length||0===e.length)0===e.length?f.after(o):f[0].parentNode.insertBefore(o[0],f[0]),0===s.length&&0===e.length?f.remove():angular.element(u[0]).remove();else{for(l=angular.element("<"+f[0].tagName+"><\/"+f[0].tagName+">"),a=angular.element("<"+f[0].tagName+"><\/"+f[0].tagName+">"),i=0;i<s.length;i++)l.append(angular.element(s[i]));for(i=0;i<e.length;i++)a.append(angular.element(e[i]));f.after(a);f.after(o);f.after(l);f.remove()}r.setSelectionToElementEnd(o[0])}p=this.$editor();v=function(n){n=angular.element(n);n[0]!==p.displayElements.text[0]&&n.removeAttr("class");angular.forEach(n.children(),v)};angular.forEach(u,v);"li"!==u[0].tagName.toLowerCase()&&"ol"!==u[0].tagName.toLowerCase()&&"ul"!==u[0].tagName.toLowerCase()&&this.$editor().wrapSelection("formatBlock","default");t()}});n("insertImage",{iconclass:"fa fa-picture-o",tooltiptext:i.insertImage.tooltip,action:function(){var n;return n=t.prompt(i.insertImage.dialogPrompt,"http://"),n&&""!==n&&"http://"!==n?this.$editor().wrapSelection("insertImage",n,!0):void 0},onElementSelect:{element:"img",action:u.imgOnSelectAction}});n("insertVideo",{iconclass:"fa fa-youtube-play",tooltiptext:i.insertVideo.tooltip,action:function(){var n,r,f;if(n=t.prompt(i.insertVideo.dialogPrompt,"https://"),n&&""!==n&&"https://"!==n&&(videoId=u.extractYoutubeVideoId(n),videoId))return r="https://www.youtube.com/embed/"+videoId,f='<img class="ta-insert-video" src="https://img.youtube.com/vi/'+videoId+'/hqdefault.jpg" ta-insert-video="'+r+'" contenteditable="false" allowfullscreen="true" frameborder="0" />',this.$editor().wrapSelection("insertHTML",f,!0)},onElementSelect:{element:"img",onlyWithAttrs:["ta-insert-video"],action:u.imgOnSelectAction}});n("insertLink",{tooltiptext:i.insertLink.tooltip,iconclass:"fa fa-link",action:function(){var n;return n=t.prompt(i.insertLink.dialogPrompt,"http://"),n&&""!==n&&"http://"!==n?this.$editor().wrapSelection("createLink",n,!0):void 0},activeState:function(n){return n?"A"===n[0].tagName:!1},onElementSelect:{element:"a",action:u.aOnSelectAction}});n("wordcount",{display:'<div id="toolbarWC" style="display:block; min-width:100px;">Words: <span ng-bind="wordcount"><\/span><\/div>',disabled:!0,wordcount:0,activeState:function(){var i=this.$editor().displayElements.text,t=i[0].innerHTML||"",n=0;return""!==t.replace(/\s*<[^>]*?>\s*/g,"")&&(n=t.replace(/<\/?(b|i|em|strong|span|u|strikethrough|a|img|small|sub|sup|label)( [^>*?])?>/gi,"").replace(/(<[^>]*?>\s*<[^>]*?>)/gi," ").replace(/(<[^>]*?>)/gi,"").replace(/\s+/gi," ").match(/\S+/g).length),this.wordcount=n,this.$editor().wordcount=n,!1}});n("charcount",{display:'<div id="toolbarCC" style="display:block; min-width:120px;">Characters: <span ng-bind="charcount"><\/span><\/div>',disabled:!0,charcount:0,activeState:function(){var n=this.$editor().displayElements.text,i=n[0].innerText||n[0].textContent,t=i.replace(/(\r\n|\n|\r)/gm,"").replace(/^\s+/g," ").replace(/\s+$/g," ").length;return this.charcount=t,this.$editor().charcount=t,!1}})}]),function(){"use strict";function p(n){try{return 0!==angular.element(n).length}catch(t){return!1}}function w(n,t){if(!n||""===n||e.hasOwnProperty(n))throw"textAngular Error: A unique name is required for a Tool Definition";if(t.display&&(""===t.display||!p(t.display))||!t.display&&!t.buttontext&&!t.iconclass)throw'textAngular Error: Tool Definition for "'+n+'" does not have a valid display/iconclass/buttontext value';e[n]=t}var n={ie:function(){for(var i,n=3,t=document.createElement("div"),r=t.getElementsByTagName("i");t.innerHTML="<!--[if gt IE "+ ++n+"]><i><\/i><![endif]-->",r[0];);return n>4?n:i}(),webkit:/AppleWebKit\/([\d.]+)/i.test(navigator.userAgent)},o=!1,i,c,l,a,v,y,u,r;n.webkit&&(document.addEventListener("mousedown",function(n){var u=n||window.event,i=u.target,r,t;if(o&&null!==i){for(r=!1,t=i;null!==t&&"html"!==t.tagName.toLowerCase()&&!r;)r="true"===t.contentEditable,t=t.parentNode;r||(document.getElementById("textAngular-editableFix-010203040506070809").setSelectionRange(0,0),i.focus(),i.select&&i.select())}o=!1},!1),angular.element(document).ready(function(){angular.element(document.body).append(angular.element('<input id="textAngular-editableFix-010203040506070809" class="ta-hidden-input" aria-hidden="true" unselectable="on" style="display:none;" tabIndex="-1">'))}));var t=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video)$/i,b=/^(ul|li|ol)$/i,s=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video|li)$/i;if(String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),n.ie>8||void 0===n.ie){for(u=document.styleSheets,r=0;r<u.length;r++)if((0===u[r].media.length||u[r].media.mediaText.match(/(all|screen)/gi))&&u[r].href&&u[r].href.match(/textangular\.(min\.|)css/gi)){i=u[r];break}i||(i=function(){var t=document.createElement("style");return n.webkit&&t.appendChild(document.createTextNode("")),document.getElementsByTagName("head")[0].appendChild(t),t.sheet}());c=function(n,t){return a(i,n,t)};a=function(n,t,r){var u,f;return n.cssRules?u=Math.max(n.cssRules.length-1,0):n.rules&&(u=Math.max(n.rules.length-1,0)),n.insertRule?n.insertRule(t+"{"+r+"}",u):n.addRule(t,r,u),i.rules?f=i.rules[u]:i.cssRules&&(f=i.cssRules[u]),f};y=function(n,t){for(var r,i=0;i<t.length;i++)if(t[i].cssText===n.cssText){r=i;break}return r};l=function(n){v(i,n)};v=function(n,t){var i=n.cssRules||n.rules,r;i&&0!==i.length&&(r=y(t,i),n.removeRule?n.removeRule(r):n.deleteRule(r))}}angular.module("textAngular.factories",[]).factory("taBrowserTag",[function(){return function(t){return t?""===t?void 0===n.ie?"div":n.ie<=8?"P":"p":n.ie<=8?t.toUpperCase():t:n.ie<=8?"P":"p"}}]).factory("taApplyCustomRenderers",["taCustomRenderers","taDOM",function(n,t){return function(i){var r=angular.element("<div><\/div>");return r[0].innerHTML=i,angular.forEach(n,function(n){var i=[];n.selector&&""!==n.selector?i=r.find(n.selector):n.customAttribute&&""!==n.customAttribute&&(i=t.getByAttribute(r,n.customAttribute));angular.forEach(i,function(t){t=angular.element(t);n.selector&&""!==n.selector&&n.customAttribute&&""!==n.customAttribute?void 0!==t.attr(n.customAttribute)&&n.renderLogic(t):n.renderLogic(t)})}),r[0].innerHTML}}]).factory("taFixChrome",function(){return function(n){if(!n||!angular.isString(n)||n.length<=0)return n;for(var t,i,r,e=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,f="",u=0;t=e.exec(n);)i=t[3]||t[4],i&&i.match(/line-height: 1.[0-9]{3,12};|color: inherit; line-height: 1.1;/i)&&(i=i.replace(/( |)font-family: inherit;|( |)line-height: 1.[0-9]{3,12};|( |)color: inherit;/gi,""),r="<"+t[1].trim(),i.trim().length>0&&(r+=" style="+t[2].substring(0,1)+i+t[2].substring(0,1)),r+=t[5].trim()+">",f+=n.substring(u,t.index)+r,u=t.index+t[0].length);return f+=n.substring(u),u>0?f.replace(/<span\s?>(.*?)<\/span>(<br(\/|)>|)/gi,"$1"):n}}).factory("taSanitize",["$sanitize",function(n){function e(n,t){for(var i,r=0,u=0,f=/<[^>]*>/gi;i=f.exec(n);)if(u=i.index,"/"===i[0].substr(1,1)){if(0===r)break;r--}else r++;return t+n.substring(0,u)+angular.element(t)[0].outerHTML.substring(t.length)+n.substring(u)}function o(n){var y,p;if(!n||!angular.isString(n)||n.length<=0)return n;for(var u,i,v,r,l,a,w=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,s="",h="",c=0;i=w.exec(n);)if(r=i[3]||i[4],y=new RegExp(f,"i"),angular.isString(r)&&y.test(r)){for(l="",p=new RegExp(f,"ig");v=p.exec(r);)for(u=0;u<t.length;u++)v[2*u+2]&&(l+="<"+t[u].tag+">");a=o(n.substring(c,i.index));h+=s.length>0?e(a,s):a;r=r.replace(new RegExp(f,"ig"),"");h+="<"+i[1].trim();r.length>0&&(h+=' style="'+r+'"');h+=i[5]+">";c=i.index+i[0].length;s=l}return h+(s.length>0?e(n.substring(c),s):n.substring(c))}function h(n){var i;if(!n||!angular.isString(n)||n.length<=0)return n;for(var t,f=/<([^>\/]+?)align=("([^"]+)"|'([^']+)')([^>]*)>/gi,r="",u=0;t=f.exec(n);)r+=n.substring(u,t.index),u=t.index+t[0].length,i="<"+t[1]+t[5],/style=("([^"]+)"|'([^']+)')/gi.test(i)?i=i.replace(/style=("([^"]+)"|'([^']+)')/i,'style="$2$3 text-align:'+(t[3]||t[4])+';"'):i+=' style="text-align:'+(t[3]||t[4])+';"',i+=">",r+=i;return r+n.substring(u)}for(var r,u,f,t=[{property:"font-weight",values:["bold"],tag:"b"},{property:"font-style",values:["italic"],tag:"i"}],s=[],i=0;i<t.length;i++){for(r="("+t[i].property+":\\s*(",u=0;u<t[i].values.length;u++)u>0&&(r+="|"),r+=t[i].values[u];r+=");)";s.push(r)}return f="("+s.join("|")+")",function(t,i,r){var u;if(!r)try{t=o(t)}catch(v){}t=h(t);try{u=n(t);r&&(u=t)}catch(v){u=i||""}var f,l=u.match(/(<pre[^>]*>.*?<\/pre[^>]*>)/gi),e=u.replace(/(&#(9|10);)*/gi,""),a=/<pre[^>]*>.*?<\/pre[^>]*>/gi,s=0,c=0;for(u="";null!==(f=a.exec(e))&&s<l.length;)u+=e.substring(c,f.index)+l[s],c=f.index+f[0].length,s++;return u+e.substring(c)}}]).factory("taToolExecuteAction",["$q","$log",function(n,t){return function(i){void 0!==i&&(this.$editor=function(){return i});var r,u=n.defer(),e=u.promise,f=this.$editor();try{r=this.action(u,f.startAction());e["finally"](function(){f.endAction.call(f)})}catch(o){t.error(o)}(r||void 0===r)&&u.resolve()}}]);angular.module("textAngular.DOM",["textAngular.factories"]).factory("taExecCommand",["taSelection","taBrowserTag","$document",function(n,i,r){var u=function(t,i){for(var u,f=t.find("li"),r=f.length-1;r>=0;r--)u=angular.element("<"+i+">"+f[r].innerHTML+"<\/"+i+">"),t.after(u);t.remove();n.setSelectionToElementEnd(u[0])},e=function(t){/(<br(|\/)>)$/i.test(t.innerHTML.trim())?n.setSelectionBeforeElement(angular.element(t).find("br")[0]):n.setSelectionToElementEnd(t)},f=function(n,t){var i=angular.element("<"+t+">"+n[0].innerHTML+"<\/"+t+">");n.after(i);n.remove();e(i.find("li")[0])},o=function(n,t,r){for(var o,f="",u=0;u<n.length;u++)f+="<"+i("li")+">"+n[u].innerHTML+"<\/"+i("li")+">";o=angular.element("<"+r+">"+f+"<\/"+r+">");t.after(o);t.remove();e(o.find("li")[0])};return function(e,s){return e=i(e),function(h,c,l,a){var v,p,g,y,ht,nt,tt,it=angular.element("<"+e+">"),w,d,k,st,et,ft,ot,rt,ut,at;try{tt=n.getSelectionElement()}catch(yt){}if(w=angular.element(tt),void 0!==tt)if(d=tt.tagName.toLowerCase(),"insertorderedlist"===h.toLowerCase()||"insertunorderedlist"===h.toLowerCase()){if(k=i("insertorderedlist"===h.toLowerCase()?"ol":"ul"),d===k)return u(w,e);if("li"===d&&w.parent()[0].tagName.toLowerCase()===k&&1===w.parent().children().length)return u(w.parent(),e);if("li"===d&&w.parent()[0].tagName.toLowerCase()!==k&&1===w.parent().children().length)return f(w.parent(),k);if(d.match(t)&&!w.hasClass("ta-bind"))return"ol"===d||"ul"===d?f(w,k):(st=!1,angular.forEach(w.children(),function(n){n.tagName.match(t)&&(st=!0)}),st?o(w.children(),w,k):o([angular.element("<div>"+tt.innerHTML+"<\/div>")[0]],w,k));if(d.match(t)){if(y=n.getOnlySelectedElements(),0===y.length)p=angular.element("<"+k+"><li>"+tt.innerHTML+"<\/li><\/"+k+">"),w.html(""),w.append(p);else{if(1===y.length&&("ol"===y[0].tagName.toLowerCase()||"ul"===y[0].tagName.toLowerCase()))return y[0].tagName.toLowerCase()===k?u(angular.element(y[0]),e):f(angular.element(y[0]),k);for(g="",et=[],v=0;v<y.length;v++)if(3!==y[v].nodeType){if(ft=angular.element(y[v]),"li"===y[v].tagName.toLowerCase())continue;g+="ol"===y[v].tagName.toLowerCase()||"ul"===y[v].tagName.toLowerCase()?ft[0].innerHTML:"span"!==y[v].tagName.toLowerCase()||"ol"!==y[v].childNodes[0].tagName.toLowerCase()&&"ul"!==y[v].childNodes[0].tagName.toLowerCase()?"<"+i("li")+">"+ft[0].innerHTML+"<\/"+i("li")+">":ft[0].childNodes[0].innerHTML;et.unshift(ft)}p=angular.element("<"+k+">"+g+"<\/"+k+">");et.pop().replaceWith(p);angular.forEach(et,function(n){n.remove()})}return void n.setSelectionToElementEnd(p[0])}}else{if("formatblock"===h.toLowerCase()){for(nt=l.toLowerCase().replace(/[<>]/gi,""),"default"===nt.trim()&&(nt=e,l="<"+e+">"),p="li"===d?w.parent():w;!p[0].tagName||!p[0].tagName.match(t)&&!p.parent().attr("contenteditable");)p=p.parent(),d=(p[0].tagName||"").toLowerCase();if(d===nt){for(y=p.children(),ot=!1,v=0;v<y.length;v++)ot=ot||y[v].tagName.match(t);ot?(p.after(y),ht=p.next(),p.remove(),p=ht):(it.append(p[0].childNodes),p.after(it),p.remove(),p=it)}else if(p.parent()[0].tagName.toLowerCase()!==nt||p.parent().hasClass("ta-bind"))if(d.match(b))p.wrap(l);else{for(y=n.getOnlySelectedElements(),0===y.length&&(y=[p[0]]),v=0;v<y.length;v++)if(3===y[v].nodeType||!y[v].tagName.match(t))for(;3===y[v].nodeType||!y[v].tagName||!y[v].tagName.match(t);)y[v]=y[v].parentNode;if(angular.element(y[0]).hasClass("ta-bind"))p=angular.element(l),p[0].innerHTML=y[0].innerHTML,y[0].innerHTML=p[0].outerHTML;else if("blockquote"===nt){for(g="",v=0;v<y.length;v++)g+=y[v].outerHTML;for(p=angular.element(l),p[0].innerHTML=g,y[0].parentNode.insertBefore(p[0],y[0]),v=y.length-1;v>=0;v--)y[v].parentNode&&y[v].parentNode.removeChild(y[v])}else for(v=0;v<y.length;v++)p=angular.element(l),p[0].innerHTML=y[v].innerHTML,y[v].parentNode.insertBefore(p[0],y[v]),y[v].parentNode.removeChild(y[v])}else{for(rt=p.parent(),ut=rt.contents(),v=0;v<ut.length;v++)rt.parent().hasClass("ta-bind")&&3===ut[v].nodeType&&(it=angular.element("<"+e+">"),it[0].innerHTML=ut[v].outerHTML,ut[v]=it[0]),rt.parent()[0].insertBefore(ut[v],rt[0]);rt.remove()}return void n.setSelectionToElementEnd(p[0])}if("createlink"===h.toLowerCase()){var ct='<a href="'+l+'" target="'+(a.a.target?a.a.target:"")+'">',lt="<\/a>",vt=n.getSelection();vt.collapsed?n.insertHtml(ct+l+lt,s):rangy.getSelection().getRangeAt(0).canSurroundContents()&&(at=angular.element(ct+lt)[0],rangy.getSelection().getRangeAt(0).surroundContents(at));return}if("inserthtml"===h.toLowerCase())return void n.insertHtml(l,s)}try{r[0].execCommand(h,c,l)}catch(yt){}}}}]).service("taSelection",["$window","$document","taDOM",function(n,i,r){var f=i[0],u=n.rangy,o=function(n,t){return n.tagName&&n.tagName.match(/^br$/i)&&0===t&&!n.previousSibling?{element:n.parentNode,offset:0}:{element:n,offset:t}},e={getSelection:function(){var t=u.getSelection().getRangeAt(0),n=t.commonAncestorContainer,i={start:o(t.startContainer,t.startOffset),end:o(t.endContainer,t.endOffset),collapsed:t.collapsed};return n=3===n.nodeType?n.parentNode:n,i.container=n.parentNode===i.start.element||n.parentNode===i.end.element?n.parentNode:n,i},getOnlySelectedElements:function(){var t=u.getSelection().getRangeAt(0),n=t.commonAncestorContainer;return n=3===n.nodeType?n.parentNode:n,t.getNodes([1],function(t){return t.parentNode===n})},getSelectionElement:function(){return e.getSelection().container},setSelection:function(n,t,i){var r=u.createRange();r.setStart(n,t);r.setEnd(n,i);u.getSelection().setSingleRange(r)},setSelectionBeforeElement:function(n){var t=u.createRange();t.selectNode(n);t.collapse(!0);u.getSelection().setSingleRange(t)},setSelectionAfterElement:function(n){var t=u.createRange();t.selectNode(n);t.collapse(!1);u.getSelection().setSingleRange(t)},setSelectionToElementStart:function(n){var t=u.createRange();t.selectNodeContents(n);t.collapse(!0);u.getSelection().setSingleRange(t)},setSelectionToElementEnd:function(n){var t=u.createRange();t.selectNodeContents(n);t.collapse(!1);n.childNodes&&n.childNodes[n.childNodes.length-1]&&"br"===n.childNodes[n.childNodes.length-1].nodeName&&(t.startOffset=t.endOffset=t.startOffset-1);u.getSelection().setSingleRange(t)},insertHtml:function(n,i){var o,c,l,k,p,a,g,w=angular.element("<div>"+n+"<\/div>"),h=u.getSelection().getRangeAt(0),v=f.createDocumentFragment(),y=w[0].childNodes,b=!0,d,nt;if(y.length>0){for(k=[],l=0;l<y.length;l++)"p"===y[l].nodeName.toLowerCase()&&""===y[l].innerHTML.trim()||3===y[l].nodeType&&""===y[l].nodeValue.trim()||(b=b&&!t.test(y[l].nodeName),k.push(y[l]));for(d=0;d<k.length;d++)a=v.appendChild(k[d]);!b&&h.collapsed&&/^(|<br(|\/)>)$/i.test(h.startContainer.innerHTML)&&h.selectNode(h.startContainer)}else b=!0,a=v=f.createTextNode(n);if(b)h.deleteContents();else if(h.collapsed&&h.startContainer!==i)if(h.startContainer.innerHTML&&h.startContainer.innerHTML.match(/^<[^>]*>$/i))o=h.startContainer,1===h.startOffset?(h.setStartAfter(o),h.setEndAfter(o)):(h.setStartBefore(o),h.setEndBefore(o));else{if(3===h.startContainer.nodeType&&h.startContainer.parentNode!==i)for(o=h.startContainer.parentNode,c=o.cloneNode(),r.splitNodes(o.childNodes,o,c,h.startContainer,h.startOffset);!s.test(o.nodeName);)angular.element(o).after(c),o=o.parentNode,nt=c,c=o.cloneNode(),r.splitNodes(o.childNodes,o,c,nt);else o=h.startContainer,c=o.cloneNode(),r.splitNodes(o.childNodes,o,c,void 0,void 0,h.startOffset);if(angular.element(o).after(c),h.setStartAfter(o),h.setEndAfter(o),/^(|<br(|\/)>)$/i.test(o.innerHTML.trim())&&(h.setStartBefore(o),h.setEndBefore(o),angular.element(o).remove()),/^(|<br(|\/)>)$/i.test(c.innerHTML.trim())&&angular.element(c).remove(),"li"===o.nodeName.toLowerCase()){for(g=f.createDocumentFragment(),p=0;p<v.childNodes.length;p++)w=angular.element("<li>"),r.transferChildNodes(v.childNodes[p],w[0]),r.transferNodeAttributes(v.childNodes[p],w[0]),g.appendChild(w[0]);v=g;a&&(a=v.childNodes[v.childNodes.length-1],a=a.childNodes[a.childNodes.length-1])}}else h.deleteContents();h.insertNode(v);a&&e.setSelectionToElementEnd(a)}};return e}]).service("taDOM",function(){var n={getByAttribute:function(t,i){var r=[],u=t.children();return u.length&&angular.forEach(u,function(t){r=r.concat(n.getByAttribute(angular.element(t),i))}),void 0!==t.attr(i)&&r.push(t),r},transferChildNodes:function(n,t){for(t.innerHTML="";n.childNodes.length>0;)t.appendChild(n.childNodes[0]);return t},splitNodes:function(t,i,r,u,f,e){if(!u&&isNaN(e))throw new Error("taDOM.splitNodes requires a splitNode or splitIndex");for(var o=document.createDocumentFragment(),s=document.createDocumentFragment(),h=0;t.length>0&&(isNaN(e)||e!==h)&&t[0]!==u;)o.appendChild(t[0]),h++;for(!isNaN(f)&&f>=0&&t[0]&&(o.appendChild(document.createTextNode(t[0].nodeValue.substring(0,f))),t[0].nodeValue=t[0].nodeValue.substring(f));t.length>0;)s.appendChild(t[0]);n.transferChildNodes(o,i);n.transferChildNodes(s,r)},transferNodeAttributes:function(n,t){for(var i=0;i<n.attributes.length;i++)t.setAttribute(n.attributes[i].name,n.attributes[i].value);return t}};return n});angular.module("textAngular.validators",[]).directive("taMaxText",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){var u=parseInt(n.$eval(i.taMaxText));if(isNaN(u))throw"Max text must be an integer";i.$observe("taMaxText",function(n){if(u=parseInt(n),isNaN(u))throw"Max text must be an integer";r.$dirty&&r.$validate()});r.$validators.taMaxText=function(n){var t=angular.element("<div/>");return t.html(n),t.text().length<=u}}}}).directive("taMinText",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){var u=parseInt(n.$eval(i.taMinText));if(isNaN(u))throw"Min text must be an integer";i.$observe("taMinText",function(n){if(u=parseInt(n),isNaN(u))throw"Min text must be an integer";r.$dirty&&r.$validate()});r.$validators.taMinText=function(n){var t=angular.element("<div/>");return t.html(n),!t.text().length||t.text().length>=u}}}});angular.module("textAngular.taBind",["textAngular.factories","textAngular.DOM"]).service("_taBlankTest",[function(){var n=/<(a|abbr|acronym|bdi|bdo|big|cite|code|del|dfn|img|ins|kbd|label|map|mark|q|ruby|rp|rt|s|samp|time|tt|var)[^>]*(>|$)/i;return function(t){return function(i){if(!i)return!0;var r,u=/(^[^<]|>)[^<]/i.exec(i);return u?r=u.index:(i=i.toString().replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,""),r=i.indexOf(">")),i=i.trim().substring(r,r+100),/^[^<>]+$/i.test(i)?!1:0===i.length||i===t||/^>(\s|&nbsp;)*<\/[^>]+>$/gi.test(i)?!0:/>\s*[^\s<]/i.test(i)||n.test(i)?!1:!0}}}]).directive("taButton",[function(){return{link:function(n,t){t.attr("unselectable","on");t.on("mousedown",function(n,t){return t&&angular.extend(n,t),n.preventDefault(),!1})}}}]).directive("taBind",["taSanitize","$timeout","$window","$document","taFixChrome","taBrowserTag","taSelection","taSelectableElements","taApplyCustomRenderers","taOptions","_taBlankTest","$parse","taDOM","textAngularManager",function(i,r,u,f,e,a,v,y,p,w,b,k,d,g){return{priority:2,require:["ngModel","?ngModelOptions"],link:function(a,nt,tt,it){function bi(n){var t;return gi.forEach(function(i){if(i.keyCode===n.keyCode){var r=(n.metaKey?st:0)+(n.ctrlKey?ot:0)+(n.shiftKey?ct:0)+(n.altKey?ht:0);if(i.forbiddenModifiers&r)return;i.mustHaveModifiers.every(function(n){return r&n})&&(t=i.specialKey)}}),t}var vi,ri,et,ui,rt=it[0],fi=it[1]||{},ft=void 0!==nt.attr("contenteditable")&&nt.attr("contenteditable"),yi=ft||"textarea"===nt[0].tagName.toLowerCase()||"input"===nt[0].tagName.toLowerCase(),ut=!1,pt=!1,gt=!1,pi=tt.taUnsafeSanitizer||w.disableSanitizer,ki=/^(9|19|20|27|33|34|35|36|37|38|39|40|45|112|113|114|115|116|117|118|119|120|121|122|123|144|145)$/i,di=/^(8|13|32|46|59|61|107|109|173|186|187|188|189|190|191|192|219|220|221|222)$/i,ot=1,st=2,ht=4,ct=8,gi=[{specialKey:"UndoKey",forbiddenModifiers:ht+ct,mustHaveModifiers:[st+ot],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:ht,mustHaveModifiers:[st+ot,ct],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:ht+ct,mustHaveModifiers:[st+ot],keyCode:89},{specialKey:"TabKey",forbiddenModifiers:st+ct+ht+ot,mustHaveModifiers:[],keyCode:9},{specialKey:"ShiftTabKey",forbiddenModifiers:st+ht+ot,mustHaveModifiers:[ct],keyCode:9}],ni,ei,wt,oi,bt,si,hi,wi,ti,ci;void 0===tt.taDefaultWrap&&(tt.taDefaultWrap="p");""===tt.taDefaultWrap?(et="",ui=void 0===n.ie?"<div><br><\/div>":n.ie>=11?"<p><br><\/p>":n.ie<=8?"<P>&nbsp;<\/P>":"<p>&nbsp;<\/p>"):(et=void 0===n.ie||n.ie>=11?"<"+tt.taDefaultWrap+"><br><\/"+tt.taDefaultWrap+">":n.ie<=8?"<"+tt.taDefaultWrap.toUpperCase()+"><\/"+tt.taDefaultWrap.toUpperCase()+">":"<"+tt.taDefaultWrap+"><\/"+tt.taDefaultWrap+">",ui=void 0===n.ie||n.ie>=11?"<"+tt.taDefaultWrap+"><br><\/"+tt.taDefaultWrap+">":n.ie<=8?"<"+tt.taDefaultWrap.toUpperCase()+">&nbsp;<\/"+tt.taDefaultWrap.toUpperCase()+">":"<"+tt.taDefaultWrap+">&nbsp;<\/"+tt.taDefaultWrap+">");fi.$options||(fi.$options={});ni=b(ui);ei=function(n){var f,i,r,e,u;if(ni(n))return n;if(f=angular.element("<div>"+n+"<\/div>"),0===f.children().length)n="<"+tt.taDefaultWrap+">"+n+"<\/"+tt.taDefaultWrap+">";else{for(r=f[0].childNodes,e=!1,i=0;i<r.length&&!(e=r[i].nodeName.toLowerCase().match(t));i++);if(e)for(n="",i=0;i<r.length;i++)r[i].nodeName.toLowerCase().match(t)?n+=r[i].outerHTML:(u=r[i].outerHTML||r[i].nodeValue,n+=""!==u.trim()?"<"+tt.taDefaultWrap+">"+u+"<\/"+tt.taDefaultWrap+">":u);else n="<"+tt.taDefaultWrap+">"+n+"<\/"+tt.taDefaultWrap+">"}return n};tt.taPaste&&(ri=k(tt.taPaste));nt.addClass("ta-bind");a["$undoManager"+(tt.id||"")]=rt.$undoManager={_stack:[],_index:0,_max:1e3,push:function(n){return"undefined"==typeof n||null===n||"undefined"!=typeof this.current()&&null!==this.current()&&n===this.current()?n:(this._index<this._stack.length-1&&(this._stack=this._stack.slice(0,this._index+1)),this._stack.push(n),wt&&r.cancel(wt),this._stack.length>this._max&&this._stack.shift(),this._index=this._stack.length-1,n)},undo:function(){return this.setToIndex(this._index-1)},redo:function(){return this.setToIndex(this._index+1)},setToIndex:function(n){if(!(0>n)&&!(n>this._stack.length-1))return(this._index=n,this.current())},current:function(){return this._stack[this._index]}};var lt,nr=a["$undoTaBind"+(tt.id||"")]=function(){if(!ut&&ft){var n=rt.$undoManager.undo();"undefined"!=typeof n&&null!==n&&(yt(n),vt(n,!1),lt&&r.cancel(lt),lt=r(function(){nt[0].focus();v.setSelectionToElementEnd(nt[0])},1))}},tr=a["$redoTaBind"+(tt.id||"")]=function(){if(!ut&&ft){var n=rt.$undoManager.redo();"undefined"!=typeof n&&null!==n&&(yt(n),vt(n,!1),lt&&r.cancel(lt),lt=r(function(){nt[0].focus();v.setSelectionToElementEnd(nt[0])},1))}},at=function(){if(ft)return nt[0].innerHTML;if(yi)return nt.val();throw"textAngular Error: attempting to update non-editable taBind";},vt=function(n,t,i){gt=i||!1;("undefined"==typeof t||null===t)&&(t=!0&&ft);("undefined"==typeof n||null===n)&&(n=at());ni(n)?(""!==rt.$viewValue&&rt.$setViewValue(""),t&&""!==rt.$undoManager.current()&&rt.$undoManager.push("")):(li(),rt.$viewValue!==n&&(rt.$setViewValue(n),t&&rt.$undoManager.push(n)));rt.$render()};if(a["updateTaBind"+(tt.id||"")]=function(){ut||vt(void 0,void 0,!0)},oi=function(n){return rt.$oldViewValue=i(e(n),rt.$oldViewValue,pi)},nt.attr("required")&&(rt.$validators.required=function(n,t){return!ni(n||t)}),rt.$parsers.push(oi),rt.$parsers.unshift(ei),rt.$formatters.push(oi),rt.$formatters.unshift(ei),rt.$formatters.unshift(function(n){return rt.$undoManager.push(n||"")}),yi)if(a.events={},ft){if(bt=!1,si=function(n){var f,k,e,u,h,it,g,w,l,b,tt;if(n&&n.trim().length){if(n.match(/class=["']*Mso(Normal|List)/i)){f=n.match(/<!--StartFragment-->([\s\S]*?)<!--EndFragment-->/i);f=f?f[1]:n;f=f.replace(/<o:p>[\s\S]*?<\/o:p>/gi,"").replace(/class=(["']|)MsoNormal(["']|)/gi,"");var y=angular.element("<div>"+f+"<\/div>"),s=angular.element("<div><\/div>"),t={element:null,lastIndent:[],lastLi:null,isUl:!1};for(t.lastIndent.peek=function(){var n=this.length;if(n>0)return this[n-1]},k=function(n){t.isUl=n;t.element=angular.element(n?"<ul>":"<ol>");t.lastIndent=[];t.lastIndent.peek=function(){var n=this.length;if(n>0)return this[n-1]};t.lastLevelMatch=null},e=0;e<=y[0].childNodes.length;e++)if(y[0].childNodes[e]&&"#text"!==y[0].childNodes[e].nodeName&&"p"===y[0].childNodes[e].tagName.toLowerCase())if(u=angular.element(y[0].childNodes[e]),h=(u.attr("class")||"").match(/MsoList(Bullet|Number|Paragraph)(CxSp(First|Middle|Last)|)/i),h){if(u[0].childNodes.length<2||u[0].childNodes[1].childNodes.length<1)continue;var p="bullet"===h[1].toLowerCase()||"number"!==h[1].toLowerCase()&&!(/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(u[0].childNodes[1].innerHTML)||/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(u[0].childNodes[1].childNodes[0].innerHTML)),ut=(u.attr("style")||"").match(/margin-left:([\-\.0-9]*)/i),o=parseFloat(ut?ut[1]:0),c=(u.attr("style")||"").match(/mso-list:l([0-9]+) level([0-9]+) lfo[0-9+]($|;)/i);if(c&&c[2]&&(o=parseInt(c[2])),(!c||t.lastLevelMatch&&c[1]===t.lastLevelMatch[1])&&h[3]&&"first"!==h[3].toLowerCase()&&null!==t.lastIndent.peek()&&(t.isUl===p||t.lastIndent.peek()!==o)){if(null!=t.lastIndent.peek()&&t.lastIndent.peek()<o)t.element=angular.element(p?"<ul>":"<ol>"),t.lastLi.append(t.element);else if(null!=t.lastIndent.peek()&&t.lastIndent.peek()>o){for(;null!=t.lastIndent.peek()&&t.lastIndent.peek()>o;)if("li"!==t.element.parent()[0].tagName.toLowerCase()){if(!/[uo]l/i.test(t.element.parent()[0].tagName.toLowerCase()))break;t.element=t.element.parent();t.lastIndent.pop()}else t.element=t.element.parent();t.isUl="ul"===t.element[0].tagName.toLowerCase();p!==t.isUl&&(k(p),s.append(t.element))}}else k(p),s.append(t.element);t.lastLevelMatch=c;o!==t.lastIndent.peek()&&t.lastIndent.push(o);t.lastLi=angular.element("<li>");t.element.append(t.lastLi);t.lastLi.html(u.html().replace(/<!(--|)\[if !supportLists\](--|)>[\s\S]*?<!(--|)\[endif\](--|)>/gi,""));u.remove()}else k(!1),s.append(u);it=function(n){n=angular.element(n);for(var t=n[0].childNodes.length-1;t>=0;t--)n.after(n[0].childNodes[t]);n.remove()};angular.forEach(s.find("span"),function(n){n.removeAttribute("lang");n.attributes.length<=0&&it(n)});angular.forEach(s.find("font"),it);n=s.html()}else{if(n=n.replace(/<(|\/)meta[^>]*?>/gi,""),n.match(/<[^>]*?(ta-bind)[^>]*?>/)){if(n.match(/<[^>]*?(text-angular)[^>]*?>/)){for(g=angular.element("<div>"+n+"<\/div>"),g.find("textarea").remove(),w=d.getByAttribute(g,"ta-bind"),l=0;l<w.length;l++){for(b=w[l][0].parentNode.parentNode,tt=0;tt<w[l][0].childNodes.length;tt++)b.parentNode.insertBefore(w[l][0].childNodes[tt],b);b.parentNode.removeChild(b)}n=g.html().replace('<br class="Apple-interchange-newline">',"")}}else n.match(/^<span/)&&(n=n.replace(/<(|\/)span[^>]*?>/gi,""));n=n.replace(/<br class="Apple-interchange-newline"[^>]*?>/gi,"").replace(/<span class="Apple-converted-space">( |&nbsp;)<\/span>/gi,"&nbsp;")}/<li(\s.*)?>/i.test(n)&&/(<ul(\s.*)?>|<ol(\s.*)?>).*<li(\s.*)?>/i.test(n)===!1&&(n=n.replace(/<li(\s.*)?>.*<\/li(\s.*)?>/i,"<ul>$&<\/ul>"));ri&&(n=ri(a,{$html:n})||n);n=i(n,"",pi);v.insertHtml(n,nt[0]);r(function(){rt.$setViewValue(at());bt=!1;nt.removeClass("processing-paste")},0)}else bt=!1,nt.removeClass("processing-paste")},nt.on("paste",a.events.paste=function(n,t){var h,i,o,s,c,e;if(t&&angular.extend(n,t),ut||bt)return n.stopPropagation(),n.preventDefault(),!1;if(bt=!0,nt.addClass("processing-paste"),i=(n.originalEvent||n).clipboardData,i&&i.getData&&i.types.length>0){for(o="",s=0;s<i.types.length;s++)o+=" "+i.types[s];return/text\/html/i.test(o)?h=i.getData("text/html"):/text\/plain/i.test(o)&&(h=i.getData("text/plain")),si(h),n.stopPropagation(),n.preventDefault(),!1}c=u.rangy.saveSelection();e=angular.element('<div class="ta-hidden-input" contenteditable="true"><\/div>');f.find("body").append(e);e[0].focus();r(function(){u.rangy.restoreSelection(c);si(e[0].innerHTML);nt[0].focus();e.remove()},0)}),nt.on("cut",a.events.cut=function(n){ut?n.preventDefault():r(function(){rt.$setViewValue(at())},0)}),nt.on("keydown",a.events.keydown=function(n,t){var e,r,i,u,f;if(t&&angular.extend(n,t),n.specialKey=bi(n),w.keyMappings.forEach(function(t){n.specialKey===t.commandKeyCode&&(n.specialKey=void 0);t.testForKey(n)&&(e=t.commandKeyCode);("UndoKey"===t.commandKeyCode||"RedoKey"===t.commandKeyCode)&&(t.enablePropagation||n.preventDefault())}),"undefined"!=typeof e&&(n.specialKey=e),"undefined"==typeof n.specialKey||"UndoKey"===n.specialKey&&"RedoKey"===n.specialKey||(n.preventDefault(),g.sendKeyCommand(a,n)),!ut&&("UndoKey"===n.specialKey&&(nr(),n.preventDefault()),"RedoKey"===n.specialKey&&(tr(),n.preventDefault()),13===n.keyCode&&!n.shiftKey)){if(i=v.getSelectionElement(),!i.tagName.match(s))return;u=angular.element(et);/^<br(|\/)>$/i.test(i.innerHTML.trim())&&"blockquote"===i.parentNode.tagName.toLowerCase()&&!i.nextSibling?(r=angular.element(i),f=r.parent(),f.after(u),r.remove(),0===f.children().length&&f.remove(),v.setSelectionToElementStart(u[0]),n.preventDefault()):/^<[^>]+><br(|\/)><\/[^>]+>$/i.test(i.innerHTML.trim())&&"blockquote"===i.tagName.toLowerCase()&&(r=angular.element(i),r.after(u),r.remove(),v.setSelectionToElementStart(u[0]),n.preventDefault())}}),nt.on("keyup",a.events.keyup=function(n,t){var h,i,e,f,c,o;if(t&&angular.extend(n,t),9===n.keyCode)return h=v.getSelection(),void(h.start.element===nt[0]&&nt.children().length&&v.setSelectionToElementStart(nt.children()[0]));if(wt&&r.cancel(wt),!ut&&!ki.test(n.keyCode)){if(""!==et&&13===n.keyCode&&!n.shiftKey){for(i=v.getSelectionElement();!i.tagName.match(s)&&i!==nt[0];)i=i.parentNode;i.tagName.toLowerCase()!==tt.taDefaultWrap&&"li"!==i.tagName.toLowerCase()&&(""===i.innerHTML.trim()||"<br>"===i.innerHTML.trim())&&(e=angular.element(et),angular.element(i).replaceWith(e),v.setSelectionToElementStart(e[0]))}f=at();""!==et&&""===f.trim()?(yt(et),v.setSelectionToElementStart(nt.children()[0])):"<"!==f.substring(0,1)&&""!==tt.taDefaultWrap&&(c=u.rangy.saveSelection(),f=at(),f="<"+tt.taDefaultWrap+">"+f+"<\/"+tt.taDefaultWrap+">",yt(f),u.rangy.restoreSelection(c));o=vi!==n.keyCode&&di.test(n.keyCode);hi&&r.cancel(hi);hi=r(function(){vt(f,o,!0)},fi.$options.debounce||400);o||(wt=r(function(){rt.$undoManager.push(f)},250));vi=n.keyCode}}),nt.on("blur",a.events.blur=function(){pt=!1;ut?(gt=!0,rt.$render()):vt(void 0,void 0,!0)}),tt.placeholder&&(n.ie>8||void 0===n.ie)){if(!tt.id)throw"textAngular Error: An unique ID is required for placeholders to work";wi=c("#"+tt.id+".placeholder-text:before",'content: "'+tt.placeholder+'"');a.$on("$destroy",function(){l(wi)})}nt.on("focus",a.events.focus=function(){pt=!0;nt.removeClass("placeholder-text");li()});nt.on("mouseup",a.events.mouseup=function(){var n=v.getSelection();n.start.element===nt[0]&&nt.children().length&&v.setSelectionToElementStart(nt.children()[0])});nt.on("mousedown",a.events.mousedown=function(n,t){t&&angular.extend(n,t);n.stopPropagation()})}else nt.on("change blur",a.events.change=a.events.blur=function(){ut||rt.$setViewValue(at())}),nt.on("keydown",a.events.keydown=function(n,t){var f,u;if(t&&angular.extend(n,t),9===n.keyCode){var r=this.selectionStart,e=this.selectionEnd,i=nt.val();n.shiftKey?(f=i.lastIndexOf("\n",r),u=i.lastIndexOf("\t",r),-1!==u&&u>=f&&(nt.val(i.substring(0,u)+i.substring(u+1)),this.selectionStart=this.selectionEnd=r-1)):(nt.val(i.substring(0,r)+"\t"+i.substring(e)),this.selectionStart=this.selectionEnd=r+1);n.preventDefault()}}),ti=function(n,t){for(var i="",r=0;t>r;r++)i+=n;return i},ci=function(n,t){var u="",r=n.childNodes,i;for(t++,u+=ti("\t",t-1)+n.outerHTML.substring(0,n.outerHTML.indexOf("<li")),i=0;i<r.length;i++)r[i].outerHTML&&(u+="ul"===r[i].nodeName.toLowerCase()||"ol"===r[i].nodeName.toLowerCase()?"\n"+ci(r[i],t):"\n"+ti("\t",t)+r[i].outerHTML);return u+("\n"+ti("\t",t-1)+n.outerHTML.substring(n.outerHTML.lastIndexOf("<")))},rt.$formatters.unshift(function(n){var i=angular.element("<div>"+n+"<\/div>")[0].childNodes,t;if(i.length>0)for(n="",t=0;t<i.length;t++)i[t].outerHTML&&(n.length>0&&(n+="\n"),n+="ul"===i[t].nodeName.toLowerCase()||"ol"===i[t].nodeName.toLowerCase()?""+ci(i[t],0):""+i[t].outerHTML);return n});var ii,kt=function(n){return a.$emit("ta-element-select",this),n.preventDefault(),!1},dt=function(n,t){if(t&&angular.extend(n,t),!h&&!ut){h=!0;var i;i=n.originalEvent?n.originalEvent.dataTransfer:n.dataTransfer;a.$emit("ta-drop-event",this,n,i);r(function(){h=!1;vt(void 0,void 0,!0)},100)}},li=a["reApplyOnSelectorHandlers"+(tt.id||"")]=function(){ut||angular.forEach(y,function(n){nt.find(n).off("click",kt).on("click",kt)})},yt=function(n){nt[0].innerHTML=n},ai=!1;rt.$render=function(){if(!ai){ai=!0;var n=rt.$viewValue||"";gt||(ft&&pt&&(nt.removeClass("placeholder-text"),ii&&r.cancel(ii),ii=r(function(){pt||(nt[0].focus(),v.setSelectionToElementEnd(nt.children()[nt.children().length-1]));ii=void 0},1)),ft?(yt(tt.placeholder?""===n?et:n:""===n?et:n),ut?nt.off("drop",dt):(li(),nt.on("drop",dt))):"textarea"!==nt[0].tagName.toLowerCase()&&"input"!==nt[0].tagName.toLowerCase()?yt(p(n)):nt.val(n));ft&&tt.placeholder&&(""===n?pt?nt.removeClass("placeholder-text"):nt.addClass("placeholder-text"):nt.removeClass("placeholder-text"));ai=gt=!1}};tt.taReadonly&&(ut=a.$eval(tt.taReadonly),ut?(nt.addClass("ta-readonly"),("textarea"===nt[0].tagName.toLowerCase()||"input"===nt[0].tagName.toLowerCase())&&nt.attr("disabled","disabled"),void 0!==nt.attr("contenteditable")&&nt.attr("contenteditable")&&nt.removeAttr("contenteditable")):(nt.removeClass("ta-readonly"),"textarea"===nt[0].tagName.toLowerCase()||"input"===nt[0].tagName.toLowerCase()?nt.removeAttr("disabled"):ft&&nt.attr("contenteditable","true")),a.$watch(tt.taReadonly,function(n,t){t!==n&&(n?(nt.addClass("ta-readonly"),("textarea"===nt[0].tagName.toLowerCase()||"input"===nt[0].tagName.toLowerCase())&&nt.attr("disabled","disabled"),void 0!==nt.attr("contenteditable")&&nt.attr("contenteditable")&&nt.removeAttr("contenteditable"),angular.forEach(y,function(n){nt.find(n).on("click",kt)}),nt.off("drop",dt)):(nt.removeClass("ta-readonly"),"textarea"===nt[0].tagName.toLowerCase()||"input"===nt[0].tagName.toLowerCase()?nt.removeAttr("disabled"):ft&&nt.attr("contenteditable","true"),angular.forEach(y,function(n){nt.find(n).off("click",kt)}),nt.on("drop",dt)),ut=n)}));ft&&!ut&&(angular.forEach(y,function(n){nt.find(n).on("click",kt)}),nt.on("drop",dt),nt.on("blur",function(){n.webkit&&(o=!0)}))}}}]);var h=!1,f=angular.module("textAngular",["ngSanitize","textAngularSetup","textAngular.factories","textAngular.DOM","textAngular.validators","textAngular.taBind"]),e={};f.constant("taRegisterTool",w);f.value("taTools",e);f.config([function(){angular.forEach(e,function(n,t){delete e[t]})}]);f.run([function(){if(!window.rangy)throw"rangy-core.js and rangy-selectionsaverestore.js are required for textAngular to work correctly, rangy-core is not yet loaded.";if(window.rangy.init(),!window.rangy.saveSelection)throw"rangy-selectionsaverestore.js is required for textAngular to work correctly.";}]);f.directive("textAngular",["$compile","$timeout","taOptions","taSelection","taExecCommand","textAngularManager","$window","$document","$animate","$log","$q","$parse",function(n,t,i,r,u,f,e,o,s,h,c,l){return{require:"?ngModel",scope:{},restrict:"EA",priority:2,link:function(a,v,y,p){var tt,it,rt,ut,ft,et,g,k,ct,ot,st,w=y.serial?y.serial:Math.floor(1e16*Math.random()),nt,d,ht,b;if(a._name=y.name?y.name:"textAngularEditor"+w,nt=function(n,i,r){t(function(){var t=function(){n.off(i,t);r.apply(this,arguments)};n.on(i,t)},100)},ct=u(y.taDefaultWrap),angular.extend(a,angular.copy(i),{wrapSelection:function(n,t,i){"undo"===n.toLowerCase()?a["$undoTaBindtaTextElement"+w]():"redo"===n.toLowerCase()?a["$redoTaBindtaTextElement"+w]():(ct(n,!1,t,a.defaultTagAttributes),i&&a["reApplyOnSelectorHandlerstaTextElement"+w](),a.displayElements.text[0].focus())},showHtml:a.$eval(y.taShowHtml)||!1}),y.taFocussedClass&&(a.classes.focussed=y.taFocussedClass),y.taTextEditorClass&&(a.classes.textEditor=y.taTextEditorClass),y.taHtmlEditorClass&&(a.classes.htmlEditor=y.taHtmlEditorClass),y.taDefaultTagAttributes)try{angular.extend(a.defaultTagAttributes,angular.fromJson(y.taDefaultTagAttributes))}catch(lt){h.error(lt)}y.taTextEditorSetup&&(a.setup.textEditorSetup=a.$parent.$eval(y.taTextEditorSetup));y.taHtmlEditorSetup&&(a.setup.htmlEditorSetup=a.$parent.$eval(y.taHtmlEditorSetup));a.fileDropHandler=y.taFileDrop?a.$parent.$eval(y.taFileDrop):a.defaultFileDropHandler;g=v[0].innerHTML;v[0].innerHTML="";a.displayElements={forminput:angular.element("<input type='hidden' tabindex='-1' style='display: none;'>"),html:angular.element("<textarea><\/textarea>"),text:angular.element("<div><\/div>"),scrollWindow:angular.element("<div class='ta-scroll-window'><\/div>"),popover:angular.element('<div class="popover fade bottom" style="max-width: none; width: 305px;"><\/div>'),popoverArrow:angular.element('<div class="arrow"><\/div>'),popoverContainer:angular.element('<div class="popover-content"><\/div>'),resize:{overlay:angular.element('<div class="ta-resizer-handle-overlay"><\/div>'),background:angular.element('<div class="ta-resizer-handle-background"><\/div>'),anchors:[angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tl"><\/div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tr"><\/div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-bl"><\/div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-br"><\/div>')],info:angular.element('<div class="ta-resizer-handle-info"><\/div>')}};a.displayElements.popover.append(a.displayElements.popoverArrow);a.displayElements.popover.append(a.displayElements.popoverContainer);a.displayElements.scrollWindow.append(a.displayElements.popover);a.displayElements.popover.on("mousedown",function(n,t){return t&&angular.extend(n,t),n.preventDefault(),!1});a.showPopover=function(n){a.displayElements.popover.css("display","block");a.reflowPopover(n);s.addClass(a.displayElements.popover,"in");nt(o.find("body"),"click keyup",function(){a.hidePopover()})};a.reflowPopover=function(n){a.displayElements.text[0].offsetHeight-51>n[0].offsetTop?(a.displayElements.popover.css("top",n[0].offsetTop+n[0].offsetHeight+a.displayElements.scrollWindow[0].scrollTop+"px"),a.displayElements.popover.removeClass("top").addClass("bottom")):(a.displayElements.popover.css("top",n[0].offsetTop-54+a.displayElements.scrollWindow[0].scrollTop+"px"),a.displayElements.popover.removeClass("bottom").addClass("top"));var i=a.displayElements.text[0].offsetWidth-a.displayElements.popover[0].offsetWidth,t=n[0].offsetLeft+n[0].offsetWidth/2-a.displayElements.popover[0].offsetWidth/2;a.displayElements.popover.css("left",Math.max(0,Math.min(i,t))+"px");a.displayElements.popoverArrow.css("margin-left",Math.min(t,Math.max(0,t-i))-11+"px")};a.hidePopover=function(){var n=function(){a.displayElements.popover.css("display","");a.displayElements.popoverContainer.attr("style","");a.displayElements.popoverContainer.attr("class","popover-content")};c.when(s.removeClass(a.displayElements.popover,"in",n)).then(n)};a.displayElements.resize.overlay.append(a.displayElements.resize.background);angular.forEach(a.displayElements.resize.anchors,function(n){a.displayElements.resize.overlay.append(n)});a.displayElements.resize.overlay.append(a.displayElements.resize.info);a.displayElements.scrollWindow.append(a.displayElements.resize.overlay);a.reflowResizeOverlay=function(n){n=angular.element(n)[0];a.displayElements.resize.overlay.css({display:"block",left:n.offsetLeft-5+"px",top:n.offsetTop-5+"px",width:n.offsetWidth+10+"px",height:n.offsetHeight+10+"px"});a.displayElements.resize.info.text(n.offsetWidth+" x "+n.offsetHeight)};a.showResizeOverlay=function(n){var t=o.find("body");ot=function(i){var r={width:parseInt(n.attr("width")),height:parseInt(n.attr("height")),x:i.clientX,y:i.clientY},u,f;(void 0===r.width||isNaN(r.width))&&(r.width=n[0].offsetWidth);(void 0===r.height||isNaN(r.height))&&(r.height=n[0].offsetHeight);a.hidePopover();u=r.height/r.width;f=function(t){var i={x:Math.max(0,r.width+(t.clientX-r.x)),y:Math.max(0,r.height+(t.clientY-r.y))},o=void 0!==y.taResizeForceAspectRatio,s=y.taResizeMaintainAspectRatio,h=o||s&&!t.shiftKey,f,e;h&&(f=i.y/i.x,i.x=u>f?i.x:i.y/u,i.y=u>f?i.x*u:i.y);e=angular.element(n);e.css("height",Math.round(Math.max(0,i.y)+"px"));e.css("width",Math.round(Math.max(0,i.x)+"px"));a.reflowResizeOverlay(n)};t.on("mousemove",f);nt(t,"mouseup",function(i){i.preventDefault();i.stopPropagation();t.off("mousemove",f);a.showPopover(n)});i.stopPropagation();i.preventDefault()};a.displayElements.resize.anchors[3].off("mousedown");a.displayElements.resize.anchors[3].on("mousedown",ot);a.reflowResizeOverlay(n);nt(t,"click",function(){a.hideResizeOverlay()})};a.hideResizeOverlay=function(){a.displayElements.resize.anchors[3].off("mousedown",ot);a.displayElements.resize.overlay.css("display","")};a.setup.htmlEditorSetup(a.displayElements.html);a.setup.textEditorSetup(a.displayElements.text);a.displayElements.html.attr({id:"taHtmlElement"+w,"ng-show":"showHtml","ta-bind":"ta-bind","ng-model":"html","ng-model-options":v.attr("ng-model-options")});a.displayElements.text.attr({id:"taTextElement"+w,contentEditable:"true","ta-bind":"ta-bind","ng-model":"html","ng-model-options":v.attr("ng-model-options")});a.displayElements.scrollWindow.attr({"ng-hide":"showHtml"});y.taDefaultWrap&&a.displayElements.text.attr("ta-default-wrap",y.taDefaultWrap);y.taUnsafeSanitizer&&(a.displayElements.text.attr("ta-unsafe-sanitizer",y.taUnsafeSanitizer),a.displayElements.html.attr("ta-unsafe-sanitizer",y.taUnsafeSanitizer));a.displayElements.scrollWindow.append(a.displayElements.text);v.append(a.displayElements.scrollWindow);v.append(a.displayElements.html);a.displayElements.forminput.attr("name",a._name);v.append(a.displayElements.forminput);y.tabindex&&(v.removeAttr("tabindex"),a.displayElements.text.attr("tabindex",y.tabindex),a.displayElements.html.attr("tabindex",y.tabindex));y.placeholder&&(a.displayElements.text.attr("placeholder",y.placeholder),a.displayElements.html.attr("placeholder",y.placeholder));y.taDisabled&&(a.displayElements.text.attr("ta-readonly","disabled"),a.displayElements.html.attr("ta-readonly","disabled"),a.disabled=a.$parent.$eval(y.taDisabled),a.$parent.$watch(y.taDisabled,function(n){a.disabled=n;a.disabled?v.addClass(a.classes.disabled):v.removeClass(a.classes.disabled)}));y.taPaste&&(a._pasteHandler=function(n){return l(y.taPaste)(a.$parent,{$html:n})},a.displayElements.text.attr("ta-paste","_pasteHandler($html)"));n(a.displayElements.scrollWindow)(a);n(a.displayElements.html)(a);a.updateTaBindtaTextElement=a["updateTaBindtaTextElement"+w];a.updateTaBindtaHtmlElement=a["updateTaBindtaHtmlElement"+w];v.addClass("ta-root");a.displayElements.scrollWindow.addClass("ta-text ta-editor "+a.classes.textEditor);a.displayElements.html.addClass("ta-html ta-editor "+a.classes.htmlEditor);a._actionRunning=!1;d=!1;(a.startAction=function(){return a._actionRunning=!0,d=e.rangy.saveSelection(),function(){d&&e.rangy.restoreSelection(d)}},a.endAction=function(){a._actionRunning=!1;d&&(a.showHtml?a.displayElements.html[0].focus():a.displayElements.text[0].focus(),e.rangy.removeMarkers(d));d=!1;a.updateSelectedStyles();a.showHtml||a["updateTaBindtaTextElement"+w]()},ft=function(){a.focussed=!0;v.addClass(a.classes.focussed);k.focus();v.triggerHandler("focus")},a.displayElements.html.on("focus",ft),a.displayElements.text.on("focus",ft),et=function(n){return a._actionRunning||o[0].activeElement===a.displayElements.html[0]||o[0].activeElement===a.displayElements.text[0]||(v.removeClass(a.classes.focussed),k.unfocus(),t(function(){a._bUpdateSelectedStyles=!1;v.triggerHandler("blur");a.focussed=!1},0)),n.preventDefault(),!1},a.displayElements.html.on("blur",et),a.displayElements.text.on("blur",et),a.displayElements.text.on("paste",function(n){v.triggerHandler("paste",n)}),a.queryFormatBlockState=function(n){return!a.showHtml&&n.toLowerCase()===o[0].queryCommandValue("formatBlock").toLowerCase()},a.queryCommandState=function(n){return a.showHtml?"":o[0].queryCommandState(n)},a.switchView=function(){a.showHtml=!a.showHtml;s.enabled(!1,a.displayElements.html);s.enabled(!1,a.displayElements.text);a.showHtml?t(function(){return s.enabled(!0,a.displayElements.html),s.enabled(!0,a.displayElements.text),a.displayElements.html[0].focus()},100):t(function(){return s.enabled(!0,a.displayElements.html),s.enabled(!0,a.displayElements.text),a.displayElements.text[0].focus()},100)},y.ngModel)?(ht=!0,p.$render=function(){if(ht){ht=!1;var n=a.$parent.$eval(y.ngModel);(void 0===n||null===n)&&g&&""!==g&&p.$setViewValue(g)}a.displayElements.forminput.val(p.$viewValue);a.html=p.$viewValue||""},v.attr("required")&&(p.$validators.required=function(n,t){var i=n||t;return!(!i||""===i.trim())})):(a.displayElements.forminput.val(g),a.html=g);(a.$watch("html",function(n,t){n!==t&&(y.ngModel&&p.$viewValue!==n&&p.$setViewValue(n),a.displayElements.forminput.val(n))}),y.taTargetToolbars)?k=f.registerEditor(a._name,a,y.taTargetToolbars.split(",")):(b=angular.element('<div text-angular-toolbar name="textAngularToolbar'+w+'">'),y.taToolbar&&b.attr("ta-toolbar",y.taToolbar),y.taToolbarClass&&b.attr("ta-toolbar-class",y.taToolbarClass),y.taToolbarGroupClass&&b.attr("ta-toolbar-group-class",y.taToolbarGroupClass),y.taToolbarButtonClass&&b.attr("ta-toolbar-button-class",y.taToolbarButtonClass),y.taToolbarActiveButtonClass&&b.attr("ta-toolbar-active-button-class",y.taToolbarActiveButtonClass),y.taFocussedClass&&b.attr("ta-focussed-class",y.taFocussedClass),v.prepend(b),n(b)(a.$parent),k=f.registerEditor(a._name,a,["textAngularToolbar"+w]));a.$on("$destroy",function(){f.unregisterEditor(a._name)});a.$on("ta-element-select",function(n,t){k.triggerElementSelect(n,t)&&a["reApplyOnSelectorHandlerstaTextElement"+w]()});a.$on("ta-drop-event",function(n,i,r,u){a.displayElements.text[0].focus();u&&u.files&&u.files.length>0?(angular.forEach(u.files,function(n){try{c.when(a.fileDropHandler(n,a.wrapSelection)||a.fileDropHandler!==a.defaultFileDropHandler&&c.when(a.defaultFileDropHandler(n,a.wrapSelection))).then(function(){a["updateTaBindtaTextElement"+w]()})}catch(t){h.error(t)}}),r.preventDefault(),r.stopPropagation()):t(function(){a["updateTaBindtaTextElement"+w]()},0)});a._bUpdateSelectedStyles=!1;angular.element(window).on("blur",function(){a._bUpdateSelectedStyles=!1;a.focussed=!1});a.updateSelectedStyles=function(){var n;st&&t.cancel(st);void 0!==(n=r.getSelectionElement())&&n.parentNode!==a.displayElements.text[0]?k.updateSelectedStyles(angular.element(n)):k.updateSelectedStyles();a._bUpdateSelectedStyles&&(st=t(a.updateSelectedStyles,200))};tt=function(){return a.focussed?void(a._bUpdateSelectedStyles||(a._bUpdateSelectedStyles=!0,a.$apply(function(){a.updateSelectedStyles()}))):void(a._bUpdateSelectedStyles=!1)};a.displayElements.html.on("keydown",tt);a.displayElements.text.on("keydown",tt);it=function(){a._bUpdateSelectedStyles=!1};a.displayElements.html.on("keyup",it);a.displayElements.text.on("keyup",it);rt=function(n,t){t&&angular.extend(n,t);a.$apply(function(){if(k.sendKeyCommand(n))return(a._bUpdateSelectedStyles||a.updateSelectedStyles(),n.preventDefault(),!1)})};a.displayElements.html.on("keypress",rt);a.displayElements.text.on("keypress",rt);ut=function(){a._bUpdateSelectedStyles=!1;a.$apply(function(){a.updateSelectedStyles()})};a.displayElements.html.on("mouseup",ut);a.displayElements.text.on("mouseup",ut)}}}]);f.service("textAngularManager",["taToolExecuteAction","taTools","taRegisterTool",function(n,t,i){var r={},u={};return{registerEditor:function(i,f,e){if(!i||""===i)throw"textAngular Error: An editor requires a name";if(!f)throw"textAngular Error: An editor requires a scope";if(u[i])throw'textAngular Error: An Editor with name "'+i+'" already exists';var o=[];return angular.forEach(e,function(n){r[n]&&o.push(r[n])}),u[i]={scope:f,toolbars:e,_registerToolbar:function(n){this.toolbars.indexOf(n.name)>=0&&o.push(n)},editorFunctions:{disable:function(){angular.forEach(o,function(n){n.disabled=!0})},enable:function(){angular.forEach(o,function(n){n.disabled=!1})},focus:function(){angular.forEach(o,function(n){n._parent=f;n.disabled=!1;n.focussed=!0;f.focussed=!0})},unfocus:function(){angular.forEach(o,function(n){n.disabled=!0;n.focussed=!1});f.focussed=!1},updateSelectedStyles:function(n){angular.forEach(o,function(t){angular.forEach(t.tools,function(i){i.activeState&&(t._parent=f,i.active=i.activeState(n))})})},sendKeyCommand:function(i){var r=!1;return(i.ctrlKey||i.metaKey||i.specialKey)&&angular.forEach(t,function(t,u){if(t.commandKeyCode&&(t.commandKeyCode===i.which||t.commandKeyCode===i.specialKey))for(var e=0;e<o.length;e++)if(void 0!==o[e].tools[u]){n.call(o[e].tools[u],f);r=!0;break}}),r},triggerElementSelect:function(n,i){var h=function(n,t){for(var i=!0,r=0;r<t.length;r++)i=i&&n.attr(t[r]);return i},r=[],c={},l=!1,e,u;if(i=angular.element(i),e=!1,angular.forEach(t,function(n,t){n.onElementSelect&&n.onElementSelect.element&&n.onElementSelect.element.toLowerCase()===i[0].tagName.toLowerCase()&&(!n.onElementSelect.filter||n.onElementSelect.filter(i))&&(e=e||angular.isArray(n.onElementSelect.onlyWithAttrs)&&h(i,n.onElementSelect.onlyWithAttrs),(!n.onElementSelect.onlyWithAttrs||h(i,n.onElementSelect.onlyWithAttrs))&&(c[t]=n))}),e?(angular.forEach(c,function(n,t){n.onElementSelect.onlyWithAttrs&&h(i,n.onElementSelect.onlyWithAttrs)&&r.push({name:t,tool:n})}),r.sort(function(n,t){return t.tool.onElementSelect.onlyWithAttrs.length-n.tool.onElementSelect.onlyWithAttrs.length})):angular.forEach(c,function(n,t){r.push({name:t,tool:n})}),r.length>0)for(u=0;u<r.length;u++){for(var v=r[u].tool,a=r[u].name,s=0;s<o.length;s++)if(void 0!==o[s].tools[a]){v.onElementSelect.action.call(o[s].tools[a],n,i,f);l=!0;break}if(l)break}return l}}},u[i].editorFunctions},retrieveEditor:function(n){return u[n]},unregisterEditor:function(n){delete u[n]},registerToolbar:function(n){if(!n)throw"textAngular Error: A toolbar requires a scope";if(!n.name||""===n.name)throw"textAngular Error: A toolbar requires a name";if(r[n.name])throw'textAngular Error: A toolbar with name "'+n.name+'" already exists';r[n.name]=n;angular.forEach(u,function(t){t._registerToolbar(n)})},retrieveToolbar:function(n){return r[n]},retrieveToolbarsViaEditor:function(n){var t=[],i=this;return angular.forEach(this.retrieveEditor(n).toolbars,function(n){t.push(i.retrieveToolbar(n))}),t},unregisterToolbar:function(n){delete r[n]},updateToolsDisplay:function(n){var t=this;angular.forEach(n,function(n,i){t.updateToolDisplay(i,n)})},resetToolsDisplay:function(){var n=this;angular.forEach(t,function(t,i){n.resetToolDisplay(i)})},updateToolDisplay:function(n,t){var i=this;angular.forEach(r,function(r,u){i.updateToolbarToolDisplay(u,n,t)})},resetToolDisplay:function(n){var t=this;angular.forEach(r,function(i,r){t.resetToolbarToolDisplay(r,n)})},updateToolbarToolDisplay:function(n,t,i){if(!r[n])throw'textAngular Error: No Toolbar with name "'+n+'" exists';r[n].updateToolDisplay(t,i)},resetToolbarToolDisplay:function(n,i){if(!r[n])throw'textAngular Error: No Toolbar with name "'+n+'" exists';r[n].updateToolDisplay(i,t[i],!0)},removeTool:function(n){delete t[n];angular.forEach(r,function(t){var r,i,u;for(delete t.tools[n],r=0;r<t.toolbar.length;r++){for(u=0;u<t.toolbar[r].length;u++){if(t.toolbar[r][u]===n){i={group:r,index:u};break}if(void 0!==i)break}void 0!==i&&(t.toolbar[i.group].slice(i.index,1),t._$element.children().eq(i.group).children().eq(i.index).remove())}})},addTool:function(n,t,u,f){i(n,t);angular.forEach(r,function(i){i.addTool(n,t,u,f)})},addToolToToolbar:function(n,t,u,f,e){i(n,t);r[u].addTool(n,t,f,e)},refreshEditor:function(n){if(!u[n])throw'textAngular Error: No Editor with name "'+n+'" exists';u[n].scope.updateTaBindtaTextElement();u[n].scope.$$phase||u[n].scope.$digest()},sendKeyCommand:function(n,t){angular.forEach(u,function(i){if(i.editorFunctions.sendKeyCommand(t))return(n._bUpdateSelectedStyles||n.updateSelectedStyles(),t.preventDefault(),!1)})}}}]);f.directive("textAngularToolbar",["$compile","textAngularManager","taOptions","taTools","taToolExecuteAction","$window",function(n,t,i,r,u,f){return{scope:{name:"@"},restrict:"EA",link:function(e,o,s){var h,c;if(!e.name||""===e.name)throw"textAngular Error: A toolbar requires a name";angular.extend(e,angular.copy(i));s.taToolbar&&(e.toolbar=e.$parent.$eval(s.taToolbar));s.taToolbarClass&&(e.classes.toolbar=s.taToolbarClass);s.taToolbarGroupClass&&(e.classes.toolbarGroup=s.taToolbarGroupClass);s.taToolbarButtonClass&&(e.classes.toolbarButton=s.taToolbarButtonClass);s.taToolbarActiveButtonClass&&(e.classes.toolbarButtonActive=s.taToolbarActiveButtonClass);s.taFocussedClass&&(e.classes.focussed=s.taFocussedClass);e.disabled=!0;e.focussed=!1;e._$element=o;o[0].innerHTML="";o.addClass("ta-toolbar "+e.classes.toolbar);e.$watch("focussed",function(){e.focussed?o.addClass(e.classes.focussed):o.removeClass(e.classes.focussed)});h=function(t,i){var r,f,u;return(r=t&&t.display?angular.element(t.display):angular.element("<button type='button'>"),t&&t["class"]?r.addClass(t["class"]):r.addClass(e.classes.toolbarButton),r.attr("name",i.name),r.attr("ta-button","ta-button"),r.attr("ng-disabled","isDisabled()"),r.attr("tabindex","-1"),r.attr("ng-click","executeAction()"),r.attr("ng-class","displayActiveToolClass(active)"),t&&t.tooltiptext&&r.attr("title",t.tooltiptext),t&&!t.display&&!i._display&&(r[0].innerHTML="",t.buttontext&&(r[0].innerHTML=t.buttontext),t.iconclass))&&(f=angular.element("<i>"),u=r[0].innerHTML,f.addClass(t.iconclass),r[0].innerHTML="",r.append(f),u&&""!==u&&r.append("&nbsp;"+u)),i._lastToolDefinition=angular.copy(t),n(r)(i)};e.tools={};e._parent={disabled:!0,showHtml:!1,queryFormatBlockState:function(){return!1},queryCommandState:function(){return!1}};c={$window:f,$editor:function(){return e._parent},isDisabled:function(){return"function"!=typeof this.$eval("disabled")&&this.$eval("disabled")||this.$eval("disabled()")||"html"!==this.name&&this.$editor().showHtml||this.$parent.disabled||this.$editor().disabled},displayActiveToolClass:function(n){return n?e.classes.toolbarButtonActive:""},executeAction:u};angular.forEach(e.toolbar,function(n){var t=angular.element("<div>");t.addClass(e.classes.toolbarGroup);angular.forEach(n,function(n){e.tools[n]=angular.extend(e.$new(!0),r[n],c,{name:n});e.tools[n].$element=h(r[n],e.tools[n]);t.append(e.tools[n].$element)});o.append(t)});e.updateToolDisplay=function(n,t,i){var r=e.tools[n],u;if(r){if(r._lastToolDefinition&&!i&&(t=angular.extend({},r._lastToolDefinition,t)),null===t.buttontext&&null===t.iconclass&&null===t.display)throw'textAngular Error: Tool Definition for updating "'+n+'" does not have a valid display/iconclass/buttontext value';null===t.buttontext&&delete t.buttontext;null===t.iconclass&&delete t.iconclass;null===t.display&&delete t.display;u=h(t,r);r.$element.replaceWith(u);r.$element=u}};e.addTool=function(n,t,i,u){e.tools[n]=angular.extend(e.$new(!0),r[n],c,{name:n});e.tools[n].$element=h(r[n],e.tools[n]);var f;void 0===i&&(i=e.toolbar.length-1);f=angular.element(o.children()[i]);void 0===u?(f.append(e.tools[n].$element),e.toolbar[i][e.toolbar[i].length-1]=n):(f.children().eq(u).after(e.tools[n].$element),e.toolbar[i][u]=n)};t.registerToolbar(e);e.$on("$destroy",function(){t.unregisterToolbar(e.name)})}}}])}()}({},function(){return this}());!function(){var n=null;window.PR_SHOULD_USE_CONTINUATION=!0,function(){function d(n){function f(n){var i=n.charCodeAt(0),t;return i!==92?i:(t=n.charAt(1),(i=a[t])?i:"0"<=t&&t<="7"?parseInt(n.substring(1),8):t==="u"||t==="x"?parseInt(n.substring(2),16):n.charCodeAt(1))}function r(n){return n<32?(n<16?"\\x0":"\\x")+n.toString(16):(n=String.fromCharCode(n),n==="\\"||n==="-"||n==="]"||n==="^"?"\\"+n:n)}function h(n){var u=n.substring(1,n.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),n=[],i=u[0]==="^",s=["["],e,t,o;for(i&&s.push("^"),i=i?1:0,e=u.length;i<e;++i)t=u[i],/\\[bdsw]/i.test(t)?s.push(t):(t=f(t),i+2<e&&"-"===u[i+1]?(o=f(u[i+2]),i+=2):o=t,n.push([t,o]),o<65||t>122||(o<65||t>90||n.push([Math.max(65,t)|32,Math.min(o,90)|32]),o<97||t>122||n.push([Math.max(97,t)&-33,Math.min(o,122)&-33])));for(n.sort(function(n,t){return n[0]-t[0]||t[1]-n[1]}),u=[],e=[],i=0;i<n.length;++i)t=n[i],t[0]<=e[1]+1?e[1]=Math.max(e[1],t[1]):u.push(e=t);for(i=0;i<u.length;++i)t=u[i],s.push(r(t[0])),t[1]>t[0]&&(t[1]+1>t[0]&&s.push("-"),s.push(r(t[1])));return s.push("]"),s.join("")}function c(n){for(var i,u=n.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),s=u.length,f=[],t=0,o=0;t<s;++t)i=u[t],i==="("?++o:"\\"===i.charAt(0)&&(i=+i.substring(1))&&(i<=o?f[i]=-1:u[t]=r(i));for(t=1;t<f.length;++t)-1===f[t]&&(f[t]=++l);for(o=t=0;t<s;++t)i=u[t],i==="("?(++o,f[o]||(u[t]="(?:")):"\\"===i.charAt(0)&&(i=+i.substring(1))&&i<=o&&(u[t]="\\"+f[i]);for(t=0;t<s;++t)"^"===u[t]&&"^"!==u[t+1]&&(u[t]="");if(n.ignoreCase&&e)for(t=0;t<s;++t)i=u[t],n=i.charAt(0),i.length>=2&&n==="["?u[t]=h(i):n!=="\\"&&(u[t]=i.replace(/[A-Za-z]/g,function(n){return n=n.charCodeAt(0),"["+String.fromCharCode(n&-33,n|32)+"]"}));return u.join("")}for(var t,l=0,e=!1,u=!1,i=0,o=n.length;i<o;++i)if(t=n[i],t.ignoreCase)u=!0;else if(/[a-z]/i.test(t.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){e=!0;u=!1;break}for(var a={b:8,t:9,n:10,v:11,f:12,r:13},s=[],i=0,o=n.length;i<o;++i){if(t=n[i],t.global||t.multiline)throw Error(""+t);s.push("(?:"+c(t)+")")}return RegExp(s.join("|"),u?"gi":"g")}function g(n,t){function e(n){var s=n.nodeType;if(s==1){if(!o.test(n.className)){for(s=n.firstChild;s;s=s.nextSibling)e(s);s=n.nodeName.toLowerCase();("br"===s||"li"===s)&&(u[i]="\n",r[i<<1]=f++,r[i++<<1|1]=n)}}else(s==3||s==4)&&(s=n.nodeValue,s.length&&(s=t?s.replace(/\r\n?/g,"\n"):s.replace(/[\t\n\r ]+/g," "),u[i]=s,r[i<<1]=f,f+=s.length,r[i++<<1|1]=n))}var o=/(?:^|\s)nocode(?:\s|$)/,u=[],f=0,r=[],i=0;return e(n),{a:u.join("").replace(/\n$/,""),d:r}}function s(n,t,i,r){t&&(n={a:t,e:n},i(n),r.push.apply(r,n.g))}function nt(n){for(var r,t=void 0,i=n.firstChild;i;i=i.nextSibling)r=i.nodeType,t=r===1?t?n:i:r===3?it.test(i.nodeValue)?n:t:t;if(t!==n)return t}function u(t,i){function r(n){for(var h,p,w,v=n.e,y=[v,"pln"],k=0,d=n.a.match(f)||[],g={},b=0,nt=d.length;b<nt;++b){var l=d[b],o=g[l],a=void 0,t;if(typeof o=="string")t=!1;else{if(h=u[l.charAt(0)],h)a=l.match(h[1]),o=h[0];else{for(t=0;t<e;++t)if(h=i[t],a=l.match(h[1])){o=h[0];break}a||(o="pln")}!(t=o.length>=5&&"lang-"===o.substring(0,5))||a&&typeof a[1]=="string"||(t=!1,o="src");t||(g[l]=o)}h=k;k+=l.length;t?(t=a[1],p=l.indexOf(t),w=p+t.length,a[2]&&(w=l.length-a[2].length,p=w-t.length),o=o.substring(5),s(v+h,l.substring(0,p),r,y),s(v+h+p,t,c(o,t),y),s(v+h+w,l.substring(w),r,y)):y.push(v+h,o)}n.g=y}var u={},f,e;return function(){for(var r,e,h,c=t.concat(i),o=[],l={},s=0,a=c.length;s<a;++s){if(r=c[s],e=r[3],e)for(h=e.length;--h>=0;)u[e.charAt(h)]=r;r=r[1];e=""+r;l.hasOwnProperty(e)||(o.push(r),l[e]=n)}o.push(/[\S\s]/);f=d(o)}(),e=i.length,r}function i(t){var f=[],r=[],i,e;return t.tripleQuotedStrings?f.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,n,"'\""]):t.multiLineStrings?f.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,n,"'\"`"]):f.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,n,"\"'"]),t.verbatimStrings&&r.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,n]),i=t.hashComments,i&&(t.cStyleComments?(i>1?f.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,n,"#"]):f.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,n,"#"]),r.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,n])):f.push(["com",/^#[^\n\r]*/,n,"#"])),t.cStyleComments&&(r.push(["com",/^\/\/[^\n\r]*/,n]),r.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,n])),(i=t.regexLiterals)&&(e=(i=i>1?"":"\n\r")?".":"[\\S\\s]",r.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+i+"])(?:[^/\\x5B\\x5C"+i+"]|\\x5C"+e+"|\\x5B(?:[^\\x5C\\x5D"+i+"]|\\x5C"+e+")*(?:\\x5D|$))+/")+")")])),(i=t.types)&&r.push(["typ",i]),i=(""+t.keywords).replace(/^ | $/g,""),i.length&&r.push(["kwd",RegExp("^(?:"+i.replace(/[\s,]+/g,"|")+")\\b"),n]),f.push(["pln",/^\s+/,n," \r\n\t "]),i="^.[^\\s\\w.$@'\"`/\\\\]*",t.regexLiterals&&(i+="(?!s*/)"),r.push(["lit",/^@[$_a-z][\w$@]*/i,n],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,n],["pln",/^[$_a-z][\w$@]*/i,n],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,n,"0123456789"],["pln",/^\\[\S\s]?/,n],["pun",RegExp(i),n]),u(f,r)}function h(n,t,i){function s(n){var t=n.nodeType,r,u;if(t!=1||c.test(n.className))(t==3||t==4)&&i&&(r=n.nodeValue,u=r.match(l),u&&(t=r.substring(0,u.index),n.nodeValue=t,(r=r.substring(u.index+u[0].length))&&n.parentNode.insertBefore(e.createTextNode(r),n.nextSibling),h(n),t||n.parentNode.removeChild(n)));else if("br"===n.nodeName)h(n),n.parentNode&&n.parentNode.removeChild(n);else for(n=n.firstChild;n;n=n.nextSibling)s(n)}function h(n){function i(n,t){var e=t?n.cloneNode(!1):n,r=n.parentNode,f,u;if(r)for(r=i(r,1),f=n.nextSibling,r.appendChild(e),u=f;u;u=f)f=u.nextSibling,r.appendChild(u);return e}for(;!n.nextSibling;)if(n=n.parentNode,!n)return;for(var n=i(n.nextSibling,0),t;(t=n.parentNode)&&t.nodeType===1;)n=t;f.push(n)}for(var f,r,o,c=/(?:^|\s)nocode(?:\s|$)/,l=/\r\n?|\n/,e=n.ownerDocument,u=e.createElement("li");n.firstChild;)u.appendChild(n.firstChild);for(f=[u],r=0;r<f.length;++r)s(f[r]);t===(t|0)&&f[0].setAttribute("value",t);o=e.createElement("ol");o.className="linenums";for(var t=Math.max(0,t-1|0)||0,r=0,a=f.length;r<a;++r)u=f[r],u.className="L"+(r+t)%10,u.firstChild||u.appendChild(e.createTextNode(" ")),o.appendChild(u);n.appendChild(o)}function t(n,t){for(var i,r=t.length;--r>=0;)i=t[r],o.hasOwnProperty(i)?f.console&&console.warn("cannot override language handler %s",i):o[i]=n}function c(n,t){return n&&o.hasOwnProperty(n)||(n=/^\s*</.test(t)?"default-markup":"default-code"),o[n]}function l(n){var rt=n.h,r,u,e,i,h,ft,nt,a,tt;try{r=g(n.c,n.i);u=r.a;n.a=u;n.d=r.d;n.e=0;c(rt,u)(n);var w=/\bMSIE\s(\d+)/.exec(navigator.userAgent),w=w&&+w[1]<=8,rt=/\n/g,b=n.a,k=b.length,r=0,v=n.d,ot=v.length,u=0,t=n.g,l=t.length,d=0;for(t[l]=k,i=e=0;i<l;)t[i]!==t[i+2]?(t[e++]=t[i++],t[e++]=t[i++]):i+=2;for(l=e,i=e=0;i<l;){for(var st=t[i],ut=t[i+1],s=i+2;s+2<=l&&t[s+1]===ut;)s+=2;t[e++]=st;t[e++]=ut;i=s}t.length=e;h=n.c;h&&(ft=h.style.display,h.style.display="none");try{for(;u<ot;){var y=v[u+2]||k,et=t[d+2]||k,s=Math.min(y,et),o=v[u+1],p;o.nodeType!==1&&(p=b.substring(r,s))&&(w&&(p=p.replace(rt,"\r")),o.nodeValue=p,nt=o.ownerDocument,a=nt.createElement("span"),a.className=t[d+1],tt=o.parentNode,tt.replaceChild(a,o),a.appendChild(o),r<y&&(v[u+1]=o=nt.createTextNode(b.substring(s,y)),tt.insertBefore(o,a.nextSibling)));r=s;r>=y&&(u+=2);r>=et&&(d+=2)}}finally{h&&(h.style.display=ft)}}catch(it){f.console&&console.log(it&&it.stack||it)}}var f=window,r=["break,continue,do,else,for,if,return,while"],e=[[r,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],a=[e,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],v=[e,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],y=[v,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],e=[e,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],p=[r,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],w=[r,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],tt=[r,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],r=[r,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],b=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,it=/\S/,rt=i({keywords:[a,y,e,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",p,w,r],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),o={},k;t(rt,["default-code"]);t(u([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);t(u([["pln",/^\s+/,n," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,n,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);t(u([],[["atv",/^[\S\s]+/]]),["uq.val"]);t(i({keywords:a,hashComments:!0,cStyleComments:!0,types:b}),["c","cc","cpp","cxx","cyc","m"]);t(i({keywords:"null,true,false"}),["json"]);t(i({keywords:y,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:b}),["cs"]);t(i({keywords:v,cStyleComments:!0}),["java"]);t(i({keywords:r,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);t(i({keywords:p,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);t(i({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);t(i({keywords:w,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);t(i({keywords:e,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);t(i({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);t(i({keywords:tt,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]);t(u([],[["str",/^[\S\s]+/]]),["regex"]);k=f.PR={createSimpleLexer:u,registerLangHandler:t,sourceDecorator:i,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:f.prettyPrintOne=function(n,t,i){var r=document.createElement("div");return r.innerHTML="<pre>"+n+"<\/pre>",r=r.firstChild,i&&h(r,i,!0),l({h:t,j:i,c:r,i:1}),r.innerHTML},prettyPrint:f.prettyPrint=function(t,i){function a(){for(var i,r,ut,ft=f.PR_SHOULD_USE_CONTINUATION?u.now()+250:Infinity;c<e.length&&u.now()<ft;c++){for(var s=e[c],rt=b,v=s;v=v.previousSibling;){if(r=v.nodeType,i=(r===7||r===8)&&v.nodeValue,i?!/^\??prettify\b/.test(i):r!==3||/\S/.test(v.nodeValue))break;if(i){rt={};i.replace(/\b(\w+)=([\w%+\-.:]+)/g,function(n,t,i){rt[t]=i});break}}if(v=s.className,(rt!==b||w.test(v))&&!d.test(v)){for(r=!1,i=s.parentNode;i;i=i.parentNode)if(it.test(i.tagName)&&i.className&&w.test(i.className)){r=!0;break}if(!r){if(s.className+=" prettyprinted",r=rt.lang,r||(r=v.match(p),!r&&(ut=nt(s))&&tt.test(ut.tagName)&&(r=ut.className.match(p)),r&&(r=r[1])),g.test(s.tagName))i=1;else var i=s.currentStyle,o=k.defaultView,i=(i=i?i.whiteSpace:o&&o.getComputedStyle?o.getComputedStyle(s,n).getPropertyValue("white-space"):0)&&"pre"===i.substring(0,3);o=rt.linenums;(o=o==="true"||+o)||(o=(o=v.match(/\blinenums\b(?::(\d+))?/))?o[1]&&o[1].length?+o[1]:!0:!1);o&&h(s,o,i);y={h:r,c:s,j:o,i:i};l(y)}}}c<e.length?setTimeout(a,250):"function"==typeof t&&t()}for(var s,v,u,r=i||document.body,k=r.ownerDocument||document,r=[r.getElementsByTagName("pre"),r.getElementsByTagName("code"),r.getElementsByTagName("xmp")],e=[],o=0;o<r.length;++o)for(s=0,v=r[o].length;s<v;++s)e.push(r[o][s]);r=n;u=Date;u.now||(u={now:function(){return+new Date}});var c=0,y,p=/\blang(?:uage)?-([\w.]+)(?!\S)/,w=/\bprettyprint\b/,d=/\bprettyprinted\b/,g=/pre|xmp/i,tt=/^code$/i,it=/^(?:pre|code|xmp)$/i,b={};a()}};typeof define=="function"&&define.amd&&define("google-code-prettify",[],function(){return k})}()}()