From aa9e920e57360bbd9010992e7f3a66f2e0c93c97 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Wed, 18 Mar 2015 20:53:27 +0000 Subject: [PATCH] TinyMCE: small cleanup for stripping of tags from pasted URLs. See #31158. Built from https://develop.svn.wordpress.org/trunk@31819 git-svn-id: http://core.svn.wordpress.org/trunk@31801 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- .../js/tinymce/plugins/wpview/plugin.js | 2 +- .../js/tinymce/plugins/wpview/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 138215 -> 138211 bytes wp-includes/version.php | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.js b/wp-includes/js/tinymce/plugins/wpview/plugin.js index be7c9dbea7..95128c7856 100644 --- a/wp-includes/js/tinymce/plugins/wpview/plugin.js +++ b/wp-includes/js/tinymce/plugins/wpview/plugin.js @@ -194,7 +194,7 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { } } ); - if ( node.nodeName !== 'P' || trim( node.textContent ) || trim( node.innerText ) ) { + if ( node.nodeName !== 'P' || trim( node.textContent || node.innerText ) ) { return; } } diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js index 3ae85c7bb6..5b12969834 100644 --- a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js @@ -1 +1 @@ -tinymce.PluginManager.add("wpview",function(a){function b(a){return c(a,"wpview-wrap")}function c(a,b){for(;a&&a.parentNode;){if(a.className&&-1!==(" "+a.className+" ").indexOf(" "+b+" "))return a;a=a.parentNode}return!1}function d(a){a.stopPropagation()}function e(b,c){var d=b?"before":"after",e=b?0:1;i(),a.selection.setCursorLocation(a.dom.select(".wpview-selection-"+d,c)[0],e),a.nodeChanged()}function f(b,c,d){var f=a.dom,g=f.create("p");t.ie&&t.ie<11||(g.innerHTML='
'),c?b.parentNode.insertBefore(g,b):f.insertAfter(g,b),i(),c&&d===u.ENTER?e(c,b):a.selection.setCursorLocation(g,0),a.nodeChanged()}function g(b){a.undoManager.transact(function(){f(b),wp.mce.views.remove(a,b)})}function h(b){var c,e=a.dom;b&&(b!==l&&(a.getBody().focus(),i(),l=b,e.setAttrib(b,"data-mce-selected",1),c=e.create("div",{"class":"wpview-clipboard",contenteditable:"true"},wp.mce.views.getText(b)),a.dom.select(".wpview-body",b)[0].appendChild(c),e.bind(c,"beforedeactivate focusin focusout",d),e.bind(l,"beforedeactivate focusin focusout",d),z?a.selection.select(c):a.selection.select(c,!0)),a.nodeChanged(),a.fire("wpview-selected",b))}function i(){var b,c=a.dom;l&&(b=a.dom.select(".wpview-clipboard",l)[0],c.unbind(b),c.remove(b),c.unbind(l,"beforedeactivate focusin focusout click mouseup",d),c.setAttrib(l,"data-mce-selected",null)),l=null}function j(a){return a.replace(/]+data-wpview-text=\"([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>(?: |\u00a0)*<\/p><\/div>/g,"$1")}function k(a){return 47>=a&&a!==u.SPACEBAR&&a!==u.ENTER&&a!==u.DELETE&&a!==u.BACKSPACE&&(37>a||a>40)||a>=224||a>=144&&150>=a||a>=91&&93>=a||a>=112&&135>=a}var l,m,n,o,p,q,r,s,t=tinymce.Env,u=tinymce.util.VK,v=tinymce.dom.TreeWalker,w=!1,x=!0,y=function(){return!1},z=/iPad|iPod|iPhone/.test(navigator.userAgent);return"undefined"!=typeof wp&&wp.mce?(a.on("BeforeAddUndo",function(a){a.lastLevel&&j(a.level.content)===j(a.lastLevel.content)&&a.preventDefault()}),a.on("BeforeSetContent",function(b){var c,d=b.content,e=tinymce.trim;d&&(l&&g(l),c=a.selection.getNode(),d=d.replace(/<[^>]+>/g,""),d=e(d),/^https?:\/\/\S+$/i.test(d)&&(b.content=d,c=a.dom.getParent(c,function(b){return b.parentNode===a.getBody()?b:void 0}),"P"!==c.nodeName||e(c.textContent)||e(c.innerText))||(b.content=wp.mce.views.setMarkers(b.content)))}),a.on("SetContent",function(){wp.mce.views.render()}),a.on("click",function(c){var d,f=c.clientX,g=c.clientY,h=a.getBody(),i=h.getBoundingClientRect(),j=h.firstChild,k=j.getBoundingClientRect(),l=h.lastChild,m=l.getBoundingClientRect();gm.bottom&&(d=b(l))?(e(!1,d),c.preventDefault()):(fi.right)&&tinymce.each(a.dom.select(".wpview-wrap"),function(a){var b=a.getBoundingClientRect();return g=b.top&&g<=b.bottom?(fi.right&&(e(!1,a),c.preventDefault()),!1):void 0})}),a.on("init",function(){var c=!1,d=a.selection,e=window.MutationObserver||window.WebKitMutationObserver;a.on("BeforeSetContent",function(){var c,e,f=b(d.getNode());f&&(!f.nextSibling||b(f.nextSibling)?(e=a.getDoc().createTextNode(""),a.dom.insertAfter(e,f)):(c=new v(f.nextSibling,f.nextSibling),e=c.next()),d.select(e),d.collapse(!0))}),a.dom.bind(a.getDoc(),"touchmove",function(){c=!0}),a.on("mousedown mouseup click touchend",function(a){var d=b(a.target);return x=!1,d?(a.stopImmediatePropagation(),a.preventDefault(),"touchend"===a.type&&c?c=!1:h(d),!1):(("touchend"===a.type||"mousedown"===a.type)&&i(),void("touchend"===a.type&&c&&(c=!1)))},!0),e&&new e(function(){a.fire("wp-body-class-change")}).observe(a.getBody(),{attributes:!0,attributeFilter:["class"]})}),a.on("PreProcess",function(b){tinymce.each(a.dom.select("div[data-wpview-text]",b.node),function(a){a.textContent=a.innerText=" "})}),a.on("PostProcess",function(a){a.content&&(a.content=a.content.replace(/
]*?data-wpview-text="([^"]*)"[^>]*>[\s\S]*?<\/div>/g,function(a,b){return b?"

"+window.decodeURIComponent(b)+"

":""}))}),a.on("keydown",function(c){var d,j,m,o,p,q,r,s=c.keyCode,t=a.dom,v=a.selection;if(l){if((c.metaKey||c.ctrlKey)&&s!==u.BACKSPACE&&86!==s||s>=112&&123>=s)return void((c.metaKey||c.ctrlKey)&&88===s&&(w=l));if(j=b(v.getNode()),j!==l)return void i();s===u.LEFT?(e(!0,j),c.preventDefault()):s===u.UP?(j.previousSibling?b(j.previousSibling)?e(!0,j.previousSibling):(i(),v.select(j.previousSibling,!0),v.collapse()):e(!0,j),c.preventDefault()):s===u.RIGHT?(e(!1,j),c.preventDefault()):s===u.DOWN?(j.nextSibling?b(j.nextSibling)?e(!1,j.nextSibling):(i(),v.setCursorLocation(j.nextSibling,0)):e(!1,j),c.preventDefault()):k(s)||(g(l),(s===u.ENTER||s===u.DELETE||s===u.BACKSPACE)&&c.preventDefault())}else{if(c.metaKey||c.ctrlKey||s>=112&&123>=s)return;if(d=v.getNode(),n=d,j=b(d),v.isCollapsed()||(p=v.getRng(),(j=b(p.endContainer))?(q=p.cloneRange(),v.select(j.previousSibling,!0),v.collapse(),r=v.getRng(),q.setEnd(r.endContainer,r.endOffset),v.setRng(q)):(j=b(p.startContainer))&&(q=p.cloneRange(),q.setStart(j.nextSibling,0),v.setRng(q))),!j)return void(c.keyCode===u.BACKSPACE&&(a.dom.isEmpty(d)?(j=b(d.previousSibling))&&(e(!1,j),a.dom.remove(d),c.preventDefault()):(p=v.getRng())&&0===p.startOffset&&0===p.endOffset&&(j=b(d.previousSibling))&&(e(!1,j),c.preventDefault())));if(!(m=t.hasClass(j,"wpview-selection-before"))&&!(o=t.hasClass(j,"wpview-selection-after")))return;if(k(s))return;o&&s===u.UP||m&&s===u.BACKSPACE?(j.previousSibling?b(j.previousSibling)?e(!1,j.previousSibling):t.isEmpty(j.previousSibling)&&s===u.BACKSPACE?t.remove(j.previousSibling):(v.select(j.previousSibling,!0),v.collapse()):e(!0,j),c.preventDefault()):!o||s!==u.DOWN&&s!==u.RIGHT?!m||s!==u.UP&&s!==u.LEFT?m&&s===u.DOWN?(j.nextSibling?b(j.nextSibling)?e(!0,j.nextSibling):v.setCursorLocation(j.nextSibling,0):e(!1,j),c.preventDefault()):o&&s===u.LEFT||m&&s===u.RIGHT?(h(j),c.preventDefault()):o&&s===u.BACKSPACE?(g(j),c.preventDefault()):o?f(j):m&&f(j,!0,s):(j.previousSibling&&(b(j.previousSibling)?e(s===u.UP,j.previousSibling):(v.select(j.previousSibling,!0),v.collapse())),c.preventDefault()):(j.nextSibling&&(b(j.nextSibling)?e(s===u.RIGHT,j.nextSibling):v.setCursorLocation(j.nextSibling,0)),c.preventDefault()),s===u.ENTER&&c.preventDefault()}}),a.on("keyup",function(){w&&(g(w),w=!1)}),a.on("focus",function(){var c;p=!0,a.dom.addClass(a.getBody(),"has-focus"),x&&(c=b(a.getBody().firstChild))&&e(!0,c),x=!1}),a.on("blur",function(){p=!1,a.dom.removeClass(a.getBody(),"has-focus")}),a.on("NodeChange",function(d){var f=a.dom,g=a.dom.select(".wpview-wrap"),h=d.element.className,j=b(d.element),k=n;if(n=!1,clearInterval(m),tinymce.each(g,function(a){a.className&&(a.className=a.className.replace(/ ?\bwpview-(?:selection-before|selection-after|cursor-hide)\b/g,""))}),p&&j)if("wpview-selection-before"!==h&&"wpview-selection-after"!==h||!a.selection.isCollapsed())c(d.element,"wpview-clipboard")||o||(i(),o++,e(!0,j));else{if(o=0,i(),k===j.previousSibling)return void e(!0,j);if(k===j.nextSibling)return void e(!1,j);f.addClass(j,h),m=setInterval(function(){f.hasClass(j,"wpview-cursor-hide")?f.removeClass(j,"wpview-cursor-hide"):f.addClass(j,"wpview-cursor-hide")},500)}}),a.on("BeforeExecCommand",function(){var c,d=a.selection.getNode();d&&((r="wpview-selection-before"===d.className)||"wpview-selection-after"===d.className)&&(c=b(d))&&(f(c,r),q=c)}),a.on("ExecCommand",function(){var b,c;l&&(b=l,i(),h(b)),q&&(c=q[r?"previousSibling":"nextSibling"],c&&"P"===c.nodeName&&a.dom.isEmpty(c)&&(a.dom.remove(c),e(r,q)),q=!1)}),a.on("ResolveName",function(c){a.dom.hasClass(c.target,"wpview-wrap")?(c.name=a.dom.getAttrib(c.target,"data-wpview-type")||"wpview",c.stopPropagation()):b(c.target)&&(c.preventDefault(),c.stopPropagation())}),a.addButton("wp_view_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){l&&wp.mce.views.edit(a,l)}}),a.addButton("wp_view_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){l&&g(l)}}),a.once("preinit",function(){s=a.wp._createToolbar(["wp_view_edit","wp_view_remove"])}),a.on("wptoolbar",function(a){l&&(a.element=l,a.toolbar=s)}),a.wp=a.wp||{},a.wp.getView=b,{getView:b}):{getView:y}}); \ No newline at end of file +tinymce.PluginManager.add("wpview",function(a){function b(a){return c(a,"wpview-wrap")}function c(a,b){for(;a&&a.parentNode;){if(a.className&&-1!==(" "+a.className+" ").indexOf(" "+b+" "))return a;a=a.parentNode}return!1}function d(a){a.stopPropagation()}function e(b,c){var d=b?"before":"after",e=b?0:1;i(),a.selection.setCursorLocation(a.dom.select(".wpview-selection-"+d,c)[0],e),a.nodeChanged()}function f(b,c,d){var f=a.dom,g=f.create("p");t.ie&&t.ie<11||(g.innerHTML='
'),c?b.parentNode.insertBefore(g,b):f.insertAfter(g,b),i(),c&&d===u.ENTER?e(c,b):a.selection.setCursorLocation(g,0),a.nodeChanged()}function g(b){a.undoManager.transact(function(){f(b),wp.mce.views.remove(a,b)})}function h(b){var c,e=a.dom;b&&(b!==l&&(a.getBody().focus(),i(),l=b,e.setAttrib(b,"data-mce-selected",1),c=e.create("div",{"class":"wpview-clipboard",contenteditable:"true"},wp.mce.views.getText(b)),a.dom.select(".wpview-body",b)[0].appendChild(c),e.bind(c,"beforedeactivate focusin focusout",d),e.bind(l,"beforedeactivate focusin focusout",d),z?a.selection.select(c):a.selection.select(c,!0)),a.nodeChanged(),a.fire("wpview-selected",b))}function i(){var b,c=a.dom;l&&(b=a.dom.select(".wpview-clipboard",l)[0],c.unbind(b),c.remove(b),c.unbind(l,"beforedeactivate focusin focusout click mouseup",d),c.setAttrib(l,"data-mce-selected",null)),l=null}function j(a){return a.replace(/]+data-wpview-text=\"([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>(?: |\u00a0)*<\/p><\/div>/g,"$1")}function k(a){return 47>=a&&a!==u.SPACEBAR&&a!==u.ENTER&&a!==u.DELETE&&a!==u.BACKSPACE&&(37>a||a>40)||a>=224||a>=144&&150>=a||a>=91&&93>=a||a>=112&&135>=a}var l,m,n,o,p,q,r,s,t=tinymce.Env,u=tinymce.util.VK,v=tinymce.dom.TreeWalker,w=!1,x=!0,y=function(){return!1},z=/iPad|iPod|iPhone/.test(navigator.userAgent);return"undefined"!=typeof wp&&wp.mce?(a.on("BeforeAddUndo",function(a){a.lastLevel&&j(a.level.content)===j(a.lastLevel.content)&&a.preventDefault()}),a.on("BeforeSetContent",function(b){var c,d=b.content,e=tinymce.trim;d&&(l&&g(l),c=a.selection.getNode(),d=d.replace(/<[^>]+>/g,""),d=e(d),/^https?:\/\/\S+$/i.test(d)&&(b.content=d,c=a.dom.getParent(c,function(b){return b.parentNode===a.getBody()?b:void 0}),"P"!==c.nodeName||e(c.textContent||c.innerText))||(b.content=wp.mce.views.setMarkers(b.content)))}),a.on("SetContent",function(){wp.mce.views.render()}),a.on("click",function(c){var d,f=c.clientX,g=c.clientY,h=a.getBody(),i=h.getBoundingClientRect(),j=h.firstChild,k=j.getBoundingClientRect(),l=h.lastChild,m=l.getBoundingClientRect();gm.bottom&&(d=b(l))?(e(!1,d),c.preventDefault()):(fi.right)&&tinymce.each(a.dom.select(".wpview-wrap"),function(a){var b=a.getBoundingClientRect();return g=b.top&&g<=b.bottom?(fi.right&&(e(!1,a),c.preventDefault()),!1):void 0})}),a.on("init",function(){var c=!1,d=a.selection,e=window.MutationObserver||window.WebKitMutationObserver;a.on("BeforeSetContent",function(){var c,e,f=b(d.getNode());f&&(!f.nextSibling||b(f.nextSibling)?(e=a.getDoc().createTextNode(""),a.dom.insertAfter(e,f)):(c=new v(f.nextSibling,f.nextSibling),e=c.next()),d.select(e),d.collapse(!0))}),a.dom.bind(a.getDoc(),"touchmove",function(){c=!0}),a.on("mousedown mouseup click touchend",function(a){var d=b(a.target);return x=!1,d?(a.stopImmediatePropagation(),a.preventDefault(),"touchend"===a.type&&c?c=!1:h(d),!1):(("touchend"===a.type||"mousedown"===a.type)&&i(),void("touchend"===a.type&&c&&(c=!1)))},!0),e&&new e(function(){a.fire("wp-body-class-change")}).observe(a.getBody(),{attributes:!0,attributeFilter:["class"]})}),a.on("PreProcess",function(b){tinymce.each(a.dom.select("div[data-wpview-text]",b.node),function(a){a.textContent=a.innerText=" "})}),a.on("PostProcess",function(a){a.content&&(a.content=a.content.replace(/
]*?data-wpview-text="([^"]*)"[^>]*>[\s\S]*?<\/div>/g,function(a,b){return b?"

"+window.decodeURIComponent(b)+"

":""}))}),a.on("keydown",function(c){var d,j,m,o,p,q,r,s=c.keyCode,t=a.dom,v=a.selection;if(l){if((c.metaKey||c.ctrlKey)&&s!==u.BACKSPACE&&86!==s||s>=112&&123>=s)return void((c.metaKey||c.ctrlKey)&&88===s&&(w=l));if(j=b(v.getNode()),j!==l)return void i();s===u.LEFT?(e(!0,j),c.preventDefault()):s===u.UP?(j.previousSibling?b(j.previousSibling)?e(!0,j.previousSibling):(i(),v.select(j.previousSibling,!0),v.collapse()):e(!0,j),c.preventDefault()):s===u.RIGHT?(e(!1,j),c.preventDefault()):s===u.DOWN?(j.nextSibling?b(j.nextSibling)?e(!1,j.nextSibling):(i(),v.setCursorLocation(j.nextSibling,0)):e(!1,j),c.preventDefault()):k(s)||(g(l),(s===u.ENTER||s===u.DELETE||s===u.BACKSPACE)&&c.preventDefault())}else{if(c.metaKey||c.ctrlKey||s>=112&&123>=s)return;if(d=v.getNode(),n=d,j=b(d),v.isCollapsed()||(p=v.getRng(),(j=b(p.endContainer))?(q=p.cloneRange(),v.select(j.previousSibling,!0),v.collapse(),r=v.getRng(),q.setEnd(r.endContainer,r.endOffset),v.setRng(q)):(j=b(p.startContainer))&&(q=p.cloneRange(),q.setStart(j.nextSibling,0),v.setRng(q))),!j)return void(c.keyCode===u.BACKSPACE&&(a.dom.isEmpty(d)?(j=b(d.previousSibling))&&(e(!1,j),a.dom.remove(d),c.preventDefault()):(p=v.getRng())&&0===p.startOffset&&0===p.endOffset&&(j=b(d.previousSibling))&&(e(!1,j),c.preventDefault())));if(!(m=t.hasClass(j,"wpview-selection-before"))&&!(o=t.hasClass(j,"wpview-selection-after")))return;if(k(s))return;o&&s===u.UP||m&&s===u.BACKSPACE?(j.previousSibling?b(j.previousSibling)?e(!1,j.previousSibling):t.isEmpty(j.previousSibling)&&s===u.BACKSPACE?t.remove(j.previousSibling):(v.select(j.previousSibling,!0),v.collapse()):e(!0,j),c.preventDefault()):!o||s!==u.DOWN&&s!==u.RIGHT?!m||s!==u.UP&&s!==u.LEFT?m&&s===u.DOWN?(j.nextSibling?b(j.nextSibling)?e(!0,j.nextSibling):v.setCursorLocation(j.nextSibling,0):e(!1,j),c.preventDefault()):o&&s===u.LEFT||m&&s===u.RIGHT?(h(j),c.preventDefault()):o&&s===u.BACKSPACE?(g(j),c.preventDefault()):o?f(j):m&&f(j,!0,s):(j.previousSibling&&(b(j.previousSibling)?e(s===u.UP,j.previousSibling):(v.select(j.previousSibling,!0),v.collapse())),c.preventDefault()):(j.nextSibling&&(b(j.nextSibling)?e(s===u.RIGHT,j.nextSibling):v.setCursorLocation(j.nextSibling,0)),c.preventDefault()),s===u.ENTER&&c.preventDefault()}}),a.on("keyup",function(){w&&(g(w),w=!1)}),a.on("focus",function(){var c;p=!0,a.dom.addClass(a.getBody(),"has-focus"),x&&(c=b(a.getBody().firstChild))&&e(!0,c),x=!1}),a.on("blur",function(){p=!1,a.dom.removeClass(a.getBody(),"has-focus")}),a.on("NodeChange",function(d){var f=a.dom,g=a.dom.select(".wpview-wrap"),h=d.element.className,j=b(d.element),k=n;if(n=!1,clearInterval(m),tinymce.each(g,function(a){a.className&&(a.className=a.className.replace(/ ?\bwpview-(?:selection-before|selection-after|cursor-hide)\b/g,""))}),p&&j)if("wpview-selection-before"!==h&&"wpview-selection-after"!==h||!a.selection.isCollapsed())c(d.element,"wpview-clipboard")||o||(i(),o++,e(!0,j));else{if(o=0,i(),k===j.previousSibling)return void e(!0,j);if(k===j.nextSibling)return void e(!1,j);f.addClass(j,h),m=setInterval(function(){f.hasClass(j,"wpview-cursor-hide")?f.removeClass(j,"wpview-cursor-hide"):f.addClass(j,"wpview-cursor-hide")},500)}}),a.on("BeforeExecCommand",function(){var c,d=a.selection.getNode();d&&((r="wpview-selection-before"===d.className)||"wpview-selection-after"===d.className)&&(c=b(d))&&(f(c,r),q=c)}),a.on("ExecCommand",function(){var b,c;l&&(b=l,i(),h(b)),q&&(c=q[r?"previousSibling":"nextSibling"],c&&"P"===c.nodeName&&a.dom.isEmpty(c)&&(a.dom.remove(c),e(r,q)),q=!1)}),a.on("ResolveName",function(c){a.dom.hasClass(c.target,"wpview-wrap")?(c.name=a.dom.getAttrib(c.target,"data-wpview-type")||"wpview",c.stopPropagation()):b(c.target)&&(c.preventDefault(),c.stopPropagation())}),a.addButton("wp_view_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){l&&wp.mce.views.edit(a,l)}}),a.addButton("wp_view_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){l&&g(l)}}),a.once("preinit",function(){s=a.wp._createToolbar(["wp_view_edit","wp_view_remove"])}),a.on("wptoolbar",function(a){l&&(a.element=l,a.toolbar=s)}),a.wp=a.wp||{},a.wp.getView=b,{getView:b}):{getView:y}}); \ No newline at end of file diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz index 61602d1eabf265662f5023b1f38f5ae8f4e145c3..b2faebeed34d6ae495ed4acd8b84d988c5675ad2 100644 GIT binary patch delta 1573 zcmV+=2HN@Ow+Q362!MnEv;x=_f8dx$N?{&BE>5Hrl%y9n_s{tX*3R0=BxqAG`o_NynWzwx)0osOfq`^gljLr#sSd zjcHAB%{fDJ_-YPD4^CBLC{*W6$>}&myiCfo+vGWu(Zjh)W~H8(sVDkfe@}$N2NTN8 zwA~ILPE>L*>kvU!BtM;JR6WzGQc#SVrt+!VvNf1CoGSAj9E_#WI;^pYUZ42$c3f-d7AH=)+@!hK=vzMi~L zu^=Q(m38y3S~kgM{uSldxmlc-<5n&i7~&IGSw-e#b+D^ro*u0o$GO~UHMQN&EU3>k zZ4|)^Yw6jXlrfm3SI81^n_#OZ;&+U_`qr&7!&Q)sk%;2T2}4h{f9=+`-Ik)KQK-C* z{qH6fCA>9KS*V~4r=oUa6i8us5)qmj8iTO3*C#L=A)@0VAEf2`36n=jgBsN|&>xn_A1 z(gxEDvQ>dL)rIioijw`!dj0Ij|9-2E$(JtQ z^(DJnaT>0XVIs~jTw7Tm<~+61fWDF*fS$Ked@cFfde%h8Dx%z{saO~B88DEzRw@QX zarJXcuKF6SeN%EBS#>IKEHe5L!7OiRqG4 zv#LqJ`k(M1UdUesuiNn5FgN7 z^O0t6rVXTsE|yLXd&KE=R3~{9bdebr24vjxY0syae^eZV^K@ga9@98z$;C=thwnQG z7yD|nPA`hYqQjN1FBd@j6gk;$=la5o>`h2a-$!CL7Tl+Gv;DP=0srw3tFK0=4i>N@ z4>S$Z#GeV*!Cc?_<(0le6xoc;b?MeglWtvyWbLF_X0EV7Vzv~?9f$j#6Vp2CtenAl zMQ};*e>cW3c--2}5l5-lzYO$hivQ{qcI-!I#8fjHLoY_<&&+{e?hz-1Hvmd9Esn() zq-ccD3@;~v~g__X0Y6sjS2SqF+Uu|pBX0DRreafIU>iy1B4<#eNq2PrfqaS zz1-nY=J~F9(Ju57tIFRg^o|9%iN%>^8mb{Sf8x`WNEi9Nm9siuJ;TV4i+mQ&8_^7- zCf_T9)}_~S?vE~cU#QlFS<MU+{M zqCZv=)rsLM?VMNgZ?FJ46p`hf;zmWai)q7#z(pd&`)pTpi?~!qgc;52m@F)x z=$)V5t+Jpo#UN&hc?>?Fv5VuM%NB^3e?GmHN!Nkaf|a$3KjEhwy5@HbDO*YDWRRtx z2MAet#v9c2YATx^#w?irv7{t+#)Mn8O`lO>pJwcomiEH;l*ic;Kk@b8wPsqmt~9LV zS(V2#FR&MV`s-neDW&+;9-yXmH&Bxpi)Q=wV=J+VQYU?y#TGzm-4QASbN4HJ7XpK1 X)K7#VOw7d}7$EZ>)<`bR3|j^OjKvZF delta 1577 zcmV+^2G;rGw+QFA2!MnEv;x=_e;~{w5tmpC2{LjbtDvO5u)lxKSFn86PBKB8h0!;} zAPl%i5r#8~*=feN7`MA2d2gU!^#2g<9smAcGMZWMuSq)YOtUqGdq7av8#)5w({#Ec zBiERg71x|II)|_3VD#Wr<%U9y&XoL)LxjwvRJ%>KGZ{Uct9(}KiJ5w$f8X^)ID9an z^i13B@Zm(|2eUpAWJvOpdgdnE8fHCUp5Ca%Gox;vBz6RO0H-(hU@SU;a{h;4dVaDKY&R^4E*_2%utUUFc# zA=IISmC)x55Mu0LC?ifWe}c;?zVarISXQC4TWI_c@r+VP#stzuJ~?#zPv zOw&d|ys(y@%}F1Fd3uF75w~f!Y9fBen5=KzDl=RK$r$M%5W-bH%!hz^&@|IOkC`-g5!trzP;cj=J=%|m>IhqtSLv4zWOI+ zHcs9tUigF90p2vmMI#fiyZ4bvYBES4x~$5A?xzAEC=LGof5FwYbWzu}ETd;RF=tte zdouuml6m_!>q2kTf5)9tknd34M;3+gN}Nh<%bPi3roc`aW(qc!cBE6uJP26G=8*&O zdqzSyoRRU!J1^w=THCnR*~wdpHy?be_vh^xJDy#zG#=Bo|nSp zn&nAI8%!_ARt4Hr7s8z@O7=JF^|K%U`>i@AcUFAz^0yb*1BnYzxYyKjc#TtLTiq1F zoqFikm+WfAX}Cs)iI~H1ZN+_<^VA9i`bs(hdfrAMw&ZT>SrZ+rh|-^?VqL^%z(e9% zsTdc5eWONevS0)W|JGQ8Y_(* zzV9Gh?5oXcy(kik4p+XuTmbD;@>kBioHz6^7ABovme4p0M_SZHB|HnhDz8axA zSip`v&@@OBew`< z1T>7Ae6NUGmyXN1KfvUDp;{MaNt5Po8)S7`(n>l;U=0LG;c#;p8xX;#5r*@05pSR? zW5RItQtJbX=Q-#!*hQtpdTD8kfm;9yM{LsK=qOgCkfR)sM_HsNWDPh)rCe*5O0HBr ze@cf2RhFBnQ4z`3U}%@@6ysy(DeN~hRnpSoJGI1c22nP2R$@o3#QCDP%2j+HK~Sz0 zRA!Zm{%}duD2A)Fb6&~C!D8f4P?mR!8x_?qrVSec7l|m7pVHFqvt7+C;!@cWW;Cy3 zGO~Q4cYb=e%7VregP0}eG5CP?E)Ib%e_J?W`t(*-T?btYR@N&1gr9Qgn%_61Y~`hs zah8G}AZq0qZ&25