PKVp:ozMETA-INF/manifest.xmlőKk1thOE\K Ut3kYia T7ŞbS]JoZN;||[LN;[Q~i6 ܼlI x9^f#N^@@R d53Kt. 2>|v=l2HqaU&I3%Cm9ߍ{gTjJh縠AiA_ Uv4 k?fB~_GձlV><|PKVp:I{Itdescription.xmlKN0=>$D4]v M&EDv4;n q F8}Dm+vVI KFjH:MUR͇jB/oygx 1(Q#E!̪ednDݣz :V&2sWfHy 8O3TiY@4nV:1|Kuʲdeo#}[U.#Z! ҄UB%")h4qV_~7ҭ5Q9f l*uqjfH%P8@]Eະ6fJŢ5/uA|`} þ}x#sSX?Iv_(e"`i}k;XPKVp:TVWindowState/tbWriter.xcumIn09E=1*J`REtW#DM,!=Cй% )e}78_.ApL2dz=꜑AߋUȱ(@N Pb0Fy!@ғnG6&V;:ݳ791Tf@2`516*g>hY_m=# 9 A.BlPRq1c$Aq:L2(W@O3mF*rtFejnV:tt9P6%Kh欙*I>'j>ۯ5~OuӦ]mDPKVp:=Ho AddonUI.xcuTKn0݅tMJ2 "m3XV+qS B~\QI+N:E`d#Q3<͇ox$3vG,FYPY*cc6ΣH'$J{TI#c kU")4rҕx8 Um^8b暰Z Ûӳb-tH)Ō=-Km, OPy'6/GqJ?}{ ` Og} x &~,^qF*cU[!]@S9Iv7/>;XBadNrcAO]ۙ]wԶC%YHC;/~_"ǟٝSZXеɶ 8,%mUO*u ꤓ4Z#_4NKaf:a~w/+9bȣ?PKVp:{FreshEye/parcel-descriptor.xml0D|Ewތi$lʊ5u!D8vf*]f t ԥJP,֐gj5CzHܛ6~ ~R~Zv%d}?"j&L̚x%1CNђ?oGJ/'N[jfsU.c9 }Գy`2>,KPKVp:\uYFreshEye/FreshEye.js+gj\gN_I-6{ø^En9"ݸaasIUs )+V*TOZV=Z?3TҎ`BXҁL< /xs` 61CtuGWSZ+*@>>Ԯ͌j&**grhP*I0Wρ2d Iң} GA3J)їE='}jkݨ(+@ׅ> ?CN'/cr{&WW(_XI ީw7K@Xw'7zSh:%-o gwpBn߿9-_;>oO wǠpA¥Ύ?TW>t]zJ9O)9e V?`^/ gx'{y6xp?p^9#|xCJP (!:9+|6/A- w?~+ '#H?PE|HuUɋ?߿p?~O\$(,vC+㕻Ȋk/Е,[v#ǣۍ#h\vPRvvbX @.(˫+6VqIPMX z_(¾hPUM7Gk_t kZѺ?݈#7Xuo~)߱ZOwC}98.c=ۻvUzK.] c ЪlBi9UPr/Z_F=Ļ> Dž? ^?B$6^PS*pt+uv~ضGlc,_`䦪Nf|e2*^nڒj[Y0z4bғ7&.-kŵzr:$wCu0/p}rw>7&t꜄ߴQGI>q; d{HX]7w̓`]M137-fE[,Z^+7QF_!R,2kןP3=ߛ(P9{{6t/Wm 0ɾc()\._zRL&}9؝'wzdqݱpR<1t0J9?'tqTBrb>- 2噝ovxղ5xؕwx{sLkpv+HP Bw?r3y A&'p0dPɒ'3%bi5)8eh4F$f7V?Y) Wd>&ˎ8٢Y{{sIm648)Aim" vnS!WQ#`l}H$#0xƂUrFS{S}74eCS=ZXad5D%B9 h[9=kG@@##HT?d$9O*F IdR>d |$S4R_a6c)yCM=bhCL&$Qf2!SƩ֣Zil3'PcRq[D`q}iPa-J?:򋝮p3e079U/q𙜊50n8FjIHudTccUo -!۫ 2kp=Rd&+_KMg*7ΉeX|K}B8$cH@EG/&}eXj WʤFWh/n0\k['rn)xxdUW$HJl) ,ղ%iʵFOVUPzm~,6^@yl-?, h;QGjDH:xbY[]!:R;4ir%J,E7e"y[dl(˘V͇k60-,([a +mj>9v*JwQ|am촌Fdv,s>>hNj&ٰZt +h߉[]5.@}ɬ5O|u\1YUcW] iFE38}qY~dLDnJ ަ _jn>J -,٭-mݨ257Jӈ LSlr bLQY;Hj=Bg5侯֛ x*.rZOLE1xOMQ&"W9r!@ACx!rܝw{k DI_g"SG|M : uBI׸u44 _k Pi&Xu!9äMjج(Sь-5>XN-t%qA9e a K Sy 1E״݅Zyz G4?\{,==C#p>axtYV%fd_#^L1Yt*2Y*yK|34ͩ4)=xsvbLkwmm?lݓÔDRw.mr ?2k T¶nR,FZ]W#5V۳5&}+c>M:! LR4\;̈́j$1BACTQl.):*DLH5h:*H&ysAA&rv/H 4( .Nks+y%y- jHB Ht[ X8Qf"~/䞳jxbv7EoTfJޔlOJ pz;j#ٜؒM8##a>鄖ZZAdoH9@s5*YA4#M~\$j&Paxu?vAW@)&D]5EǨ3ƕ2Tu,@[fGȠI//φي8jY嵻΁i%Rd%HU+D:'!J96y;|2Mv"{+/=j\`c64m=xxeRg.6vC$zN3t4bE| ID/tD+ 6]ǣ{ѹ: nFb[eF[Q@lHt>)BJQp.wDyI>Drp"[ q0SI|LzHawB+Я;JJ :0U_1b]  J &)(Dd[od'Mgɜ|?Bbf2n[_}}M'o4oߒu K_;N.ڮinTb$ ,{VxH7"/|.em6ES,0Ð#Ua|MG>9Obp[IJԇ> G $v"IU?DѦ٨ Ca^C[^O=Pk%RX8T u^R+ɣ~a"ȕrLJ/\4 xs0 )1F[a.,qrBpƆ% b.length ) { // a must be always the shortest var tmp; rever = true; tmp = a; a = b; b = tmp; } // optimization vars var cparta, cpartb; var alenmul3 = parseInt( a.length * 3 ); var blenmul3 = parseInt( b.length * 3 ); var basedist = parseInt( 3 * ( a.length + b.length ) / 8 ) + 1; var a_lnum = new Array(); var b_lnum = new Array(); cparta = a.length - 1; cpartb = b.length - 1; for (ta = 0; ta < a.length; ta++) { a_lnum[ parseInt( ta ) ] = parseInt( lo_letters.indexOf( a[ ta ] ) ); } for (tb = 0; tb < b.length; tb++) { b_lnum[ parseInt( tb ) ] = parseInt( lo_letters.indexOf( b[ tb ] ) ); } // end of optimization vars if ( rever ) { for ( partlen = 1; partlen <= a.length; partlen++, resa = 0 ) { for ( ta = 0; ta <= cparta; ta++ ) { parta = a_lnum.slice( ta, ta + partlen ); for ( tb = 0; cpartb >= tb; tb++ ) { for ( prir = tx = 0, ty = tb; tx < partlen; tx++, ty++ ) prir += sim_ch[ parta[ tx ] ][ b_lnum[ ty ] ]; if ( prir != 0 ) { if ( ta > 0 ) prir -= parseInt( ( prir * ta ) / alenmul3 ); if ( tb > 0 ) prir -= parseInt( ( prir * tb ) / blenmul3 ); dist = b.length - ( tb + partlen ) + ta; if ( dist < 3 ) prir += parseInt( ( prir * ( 2 - dist ) ) / 3 ); if ( parseInt(prir) > parseInt(resa) ) resa = prir; } } } if ( ( resa / partlen ) > 6 ) { prir = resa; dist = basedist; res += resa + parseInt( prir * ( partlen - Math.min( dist, a.length ) ) / ( 2 * dist ) ); } cparta--; cpartb--; } } else { for ( partlen = 1; partlen <= a.length; partlen++, resa = 0 ) { for ( ta = 0; ta <= cparta; ta++ ) { parta = a_lnum.slice( ta, ta + partlen ); for ( tb = 0; cpartb >= tb; tb++ ) { for ( prir = tx = 0, ty = tb; tx < partlen; tx++, ty++ ) prir += sim_ch[ parta[ tx ] ][ b_lnum[ ty ] ]; if ( prir != 0 ) { if ( ta > 0 ) prir -= parseInt( ( prir * ta ) / alenmul3 ); if ( tb > 0 ) prir -= parseInt( ( prir * tb ) / blenmul3 ); dist = a.length - ( ta + partlen ) + tb; if ( dist < 3 ) prir += parseInt( ( prir * ( 2 - dist ) ) / 3 ); if ( parseInt(prir) > parseInt(resa) ) resa = prir; } } } if ( ( resa / partlen ) > 6 ) { prir = resa; dist = basedist; res += resa + parseInt( prir * ( partlen - Math.min( dist, a.length ) ) / ( 2 * dist ) ); } cparta--; cpartb--; } } for ( partlen = 1, resa = 0; partlen <= a.length; partlen++ ) { resa += 9 * partlen; } res = parseInt( ( res * infor( a, b ) ) / resa ); res -= parseInt( ( res * ( b.length - a.length ) ) / ( 2 * b.length ) ); var impa = implen( a.length ); var impb = implen( b.length ); return parseInt ( ( res * a.length * b.length ) / ( implen( a.length ) * implen( b.length ) ) ); } function ShiftWordQueue( wrd, ra ) { for ( var t = 0; t < CONTEXT_LENGTH - 1; t++ ) { wordlist[t] = wordlist[t+1]; psychlen[t] = psychlen[t+1]; } wordlist[ CONTEXT_LENGTH - 1 ] = wrd; psychlen[ CONTEXT_LENGTH - 1 ] = ra; } // returns whether the current wrd is similar to one of the previous words from wordlist ("former" w) function CheckWord( wrd ) { var similarity; var dist; var dal, badness; for ( var t=0; t < CONTEXT_LENGTH; t++ ) { if ( wordlist[t].word != "" ) { similarity = SimWords( wordlist[t].word, wrd ); if ( similarity == 0 ) continue; for ( var t1=t, dist = 0; t1 < CONTEXT_LENGTH; t1++ ) { dist += psychlen[t1]; } t1 = t + 1; while ( t1 < CONTEXT_LENGTH ) { dist += parseInt( wordlist[ t1++ ].word.length / 3 ) + 1; } dal = Math.exp( -dist * dist / twosigmasqr ); badness = parseInt( similarity * dal ); if ( badness > Threshold.val ) { return {wlidx: t, badness: badness, similarity: similarity, distance: dist}; } } } return false; } function CursorHighlighter( TextRange ) { this.TextRange = TextRange; this.xText = TextRange.getText(); this.xTextCursor = this.xText.createTextCursor(); this.xCursorProps = UnoRuntime.queryInterface( XPropertySet, this.xTextCursor ); this.setCursor = function( startpos, len ) { this.xTextCursor.gotoRange( this.TextRange, false ); this.xTextCursor.collapseToStart(); this.xTextCursor.goRight( startpos, false ); this.xTextCursor.goRight( len, true ); } this.setPropertyValue = function( propertyName, propertyValue ) { this.xCursorProps.setPropertyValue( propertyName, propertyValue ); } this.getPropertyValue = function( propertyName ) { return this.xCursorProps.getPropertyValue( propertyName ); } } function HiliteWord( wordstruc ) { if (!wordstruc.hilited) { var xCursorHighlighter = new CursorHighlighter( wordstruc.para ); xCursorHighlighter.setCursor( wordstruc.pos, wordstruc.word.length ); var CharBackColor = xCursorHighlighter.getPropertyValue("CharBackColor"); if (parseInt( CharBackColor ) == -1) CharBackColor = new java.lang.Integer( 0x00FFFF00 ); else CharBackColor = new java.lang.Integer( (0xFFFFFFFF - parseInt( CharBackColor )) & 0x00FFFFFF ); try { xCursorHighlighter.setPropertyValue("CharBackColor", CharBackColor); } catch(e) { var dummy = e; } } } function CountParagraph( Para ) { Progress.max +=1; } function FreshEyeParagraph( Para ) { // update progressbar Progress.value += 1; ProcessWnd.setControlPropsByName( "ProgressBar1", [ {name: "ProgressValue", value: new java.lang.Integer( Progress.value )} ] ); /* ProcessWnd.setControlPropsByName( "NonModDialog", [ {name: "Title", value: " - " + Progress.value + " " + Progress.max} ] ); */ ProcessWnd.setBgr( 0xEFEFEF ); ProcessWnd.invalidate( InvalidateStyle.UPDATE | InvalidateStyle.CHILDREN | InvalidateStyle.TRANSPARENT | InvalidateStyle.NOCLIPCHILDREN ); // process paragraph var s = new String(Para.getString()); if (!s.match(REGEXP_LETTER)) return; var word = new String(); // current word var c; var hilite; var ra = 0; var sp = 0; var parbegin = true; // "former" newline spaces = false; while ( sp < s.length ) { c = s[sp]; if ( c.match(REGEXP_LETTER) ) { word = ""; do { word += c; if ( ++sp >= s.length ) break; c = s[sp]; } while ( c.match(REGEXP_LETTER) ); // store word data word = word.toLowerCase(); spaces = false; psychlen[ CONTEXT_LENGTH - 1 ] = ra; hilite = CheckWord( word ); var wordstruc = { para: Para, word: word, pos: sp - word.length, hilited: false }; if (typeof hilite !== "boolean") { HiliteWord( wordstruc ); wordstruc.hilited = true; HiliteWord( wordlist[ hilite.wlidx ] ); wordlist[ hilite.wlidx ].hilited = true; } ShiftWordQueue( wordstruc, ra ); } else { ra = 0; do { ra += SepPsychoLength(c); if (++sp >= s.length) break; c = s[sp]; } while ( !c.match(REGEXP_LETTER) ); if ( !firstpara && parbegin ) { ra += 8; parbegin = false; } } } firstpara = false; } function GetNestedCells(TextTable) { var CellNames, Cell, CellHasElements; var Enum; var Elem, ElemServiceInfo; var i; var Anchor; CellNames = (UnoRuntime.queryInterface(XTextTable,TextTable)).getCellNames(); for ( i=0; i