 .when .ready mwu800u82eloaderu82eusing 'mediawikiu82eapiu800' 'mediawikiu82eutil' .then function 'useu800 strict'; varu800 projectpageallowedcats 'u8d8b1u8d987u8d986u8d985u8d988u8d8afu8d987u8d8a7u8db8c u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7' 'u8d8b3u8db8cu8d8a7u8d8b3u8d8aau8e2808cu8d987u8d8a7u8db8c u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7' 'u8d8b1u8d8a7u8d987u8d986u8d985u8d8a7u8db8c u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7' 'u8d8a7u8d986u8d8b4u8d8a7u8d987u8d8a7u8db8c u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7' 'u8d8a7u8d986u8d8b4u8d8a7u8d987u8d8a7u8db8c u8d985u8daa9u8d985u8d984 u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7' 'u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1u8d987u8d8a7u8db8c u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7' 'u8d8aeu8d988u8d8afu8d8a2u8d985u8d988u8d8b2 u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7' ; varu800 projectpageallowedtitles 'u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d8aau8d8b3u8d8aa' 'u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d8aau8d985u8d8b1u8db8cu8d986' 'u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8b5u8d981u8d8adu8d987 u8d8aau8d985u8d8b1u8db8cu8d986' ; varu800 projectpagewronglistedtitles 'u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d985u8d988u8d8a7u8d8b1u8d8af_u8d8afu8d8b1u8d8b3u8d8aa '; ifu800 mwu800u82econfigu82egetu800 'wgaction' 'view' 0u800 4u800 12u800 118u800 .indexof mwu800u82econfigu82egetu800 'wgnamespacenumber' 1u800 && mwu800u82econfigu82egetu800 'wgpagename' 'u8daa9u8d8a7u8d8b1u8d8a8u8d8b1 ' mwu800u82econfigu82egetu800 'wgusername' ' u8d8b5u8d981u8d8adu8d987_u8d8aau8d985u8d8b1u8db8cu8d986' mwu800u82eutilu82egetparamvalue 'diff' mwu800u82eutilu82egetparamvalue 'oldid' '.noarticletext' .length return; varu800 sitesub '#sitesub' ; ifu800 mwu800u82econfigu82egetu800 'skin' 'timeless sitesub '#pu800 namespaces ; ifu800 mwu800u82econfigu82egetu800 'wgnamespacenumber' 4u800 && mwu800u82econfigu82egetu800 'wgpagename' .search projectpagewronglistedtitles 0u800 varu800 returntitle mwu800u82econfigu82egetu800 'wgpagename' .split projectpagewronglistedtitles 1u800 sitesubu82eappend ' ' ' ' html 'u8d8a7u8db8cu8d986 u8d8b5u8d981u8d8adu8d987 u8d8adu8d8a7u8d988u8db8c u8d985u8d988u8d8a7u8d8b1u8d8af u8d985u8d8b3u8d8aau8d8abu8d986u8db8cu8e2808cu8d8b4u8d8afu8d987 u8d8a8u8d8b1u8d8a7u8db8c u8d8b5u8d981u8d8adu8d987u8d994 ' returntitleu82ereplace _u800 gu800 ' ' ' u8d8a7u8d8b3u8d8aa.' class 'checkdictation allgood label' ; ifu800 mwu800u82econfigu82egetu800 'wgnamespacenumber' 4u800 && projectpageallowedtitlesu82eindexof mwu800u82econfigu82egetu800 'wgpagename' .replace _u800 gu800 ' ' 1u800 && mwu800u82econfigu82egetu800 "wgcategories" .every function xu800 return projectpageallowedcatsu82eindexof xu800 1u800; return; ifu800 'ulu800 class "redirecttext" ' 0u800 return; u8d8b5u8d981u8d8adu8d987 u8d8aau8d8bau8db8cu8db8cu8d8b1u8d985u8d8b3u8db8cu8d8b1 u8d8b1u8d8a7 u8d8a8u8d8b1u8d8b1u8d8b3u8db8c u8d986u8daa9u8d986u8d8af varu800 pagecontentcache; function getpagetextcache return pagecontentcache .deferred .resolve pagecontentcache loadpage mwu800u82econfigu82egetu800 'wgpagename' ; copyedited from function markword node text word hint color preparedid varu800 posu800 lenu800 newnodes 0u800; varu800 newnode middlenode endnode; textnode search foru800 word ifu800 nodeu82enodetype 3u800 posu800 nodeu82edatau82esearch text ; ifu800 posu800 0u800 create newu800 span element newnode ' ' title hint class 'checkdictation marked checkdictation marked ' wordu82ereplace gu800 '_u800' idu800 preparedid .cssu800 'background color' color 0u800 ; getu800 length ofu800 theu800 matching part lenu800 nodeu82edatau82ematch text 0u800 .length; splits content inu800 three parts begin middle andu800 endu800 middlenode nodeu82esplittext posu800 ; endnode middlenodeu82esplittext lenu800 ; appends au800 copy ofu800 theu800 middle tou800 theu800 newu800 span node newnodeu82eappendchild middlenodeu82eclonenode true ; replace middlenode with theu800 newu800 span node middlenodeu82eparentnodeu82ereplacechild newnode middlenode ; newnodes 1u800; else ifu800 nodeu82enodetype 1u800 element node && nodeu82ehaschildnodes with child nodes && nodeu82etagnameu82etolowercase "script" nou800 script style andu800 form && nodeu82etagnameu82etolowercase "style" && nodeu82etagnameu82etolowercase "form" varu800 this_child; foru800 this_child 0u800; this_child 0u800 create newu800 span element newnode ' ' title hint class 'checkdictation marked checkdictation marked ' wordu82ereplace gu800 '_u800' idu800 preparedid 0u800 ; getu800 length ofu800 theu800 matching part lenu800 nodeu82edatau82ematch text 0u800 .length; splits content inu800 three parts begin middle andu800 endu800 middlenode nodeu82esplittext posu800 ; endnode middlenodeu82esplittext lenu800 ; appends au800 copy ofu800 theu800 middle tou800 theu800 newu800 span node newnodeu82eappendchild middlenodeu82eclonenode true ; replace middlenode with theu800 newu800 span node middlenodeu82eparentnodeu82ereplacechild newnode middlenode ; newnodes 1u800; else ifu800 nodeu82enodetype 1u800 element node && nodeu82ehaschildnodes with child nodes && nodeu82etagnameu82etolowercase "script" nou800 script style andu800 form && nodeu82etagnameu82etolowercase "style" && nodeu82etagnameu82etolowercase "form" varu800 this_child; foru800 this_child 0u800; this_child checkdictation marked span gu800 ' 1u800' return text function dictationreplacedialog title diatext word suggestions varu800 defer .deferred ; '#checkdictation form #checkdictation form input' .remove ; ' ' html title .append ' ' diatext .append ' ' ' ' idu800 'checkdictation form input' value word style 'line height 2u800;' ' ' persianwikitools && persianwikitoolsu82esupertool ' ' srcu800 ' uploadu82ewikimediau82eorgu800 wikipedia fau800 fu800 fcu800 button_super_toolu82epngu800' altu800 'u8d8a7u8d8a8u8d8b1u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1' title 'u8d8a7u8d8a8u8d8b1u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1' .click function retrysupertool '#checkdictation form input' .valu800 persianwikitoolsu82esupertool ' ' '#checkdictation form input' .valu800 ' ' .trim ; ' ' ' ' .append suggestionsu82emapu800 function text return ' ' text textu82ereplace ' ' 'u8e29d99' .cssu800 'margin left' '8pxu800' .click function '#checkdictation form input' .valu800 text ; ; ' u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986u8db8c u8d985u8d988u8d8a7u8d8b1u8d8af u8d8a8u8db8cu8d8b4u8d8aau8d8b1 u8d8afu8d8b1 u8d985u8d8aau8d986 ' ' ' idu800 'checkdictation form input1' value   style 'line height 2u800;' ' ' ' ' idu800 'checkdictation form input2' value   style 'line height 2u800;' .dialog width 800u800 title 'u8d8a7u8d8b5u8d984u8d8a7u8d8ad u8db8cu8daa9 u8daa9u8d984u8d985u8d987 u8d8a8u8d987 u8d8b7u8d988u8d8b1 u8d8b9u8d985u8d988u8d985u8db8c u8d8afu8d8b1 u8d985u8d8aau8d986' buttons text 'u8d8a7u8d981u8d8b2u8d988u8d8afu8d986 u8d8a8u8d987 u8d981u8d987u8d8b1u8d8b3u8d8aa u8daa9u8d984u8d985u8d8a7u8d8aa u8d8afu8d8b1u8d8b3u8d8aa u8d988 u8d9beu8d8b1u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8d8af' class 'uiu800 button redu800' click function ifu800 confirm 'u8daa9u8d984u8d985u8d8a7u8d8aau8db8c u8daa9u8d987 u8d8a8u8d987 u8d981u8d987u8d8b1u8d8b3u8d8aa u8d8a7u8d981u8d8b2u8d988u8d8afu8d987 u8d985u8db8cu8e2808cu8d8b4u8d988u8d986u8d8af u8d8a8u8d8a7u8db8cu8d8af u8d8afu8d8b1u8d8b3u8d8aa u8d988 u8d9beu8d8b1u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8d8af u8d8a8u8d8a7u8d8b4u8d986u8d8af. u8d8a7u8daafu8d8b1 u8daa9u8d984u8d985u8d987 u8d8afu8d8b1u8d8b3u8d8aa u8d988 u8d9beu8d8b1u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8d8af u8d8a7u8d8b3u8d8aa u8d8afu8daa9u8d985u8d987u8d994 oku800 u8d8b1u8d8a7 u8daa9u8d984u8db8cu8daa9 u8daa9u8d986u8db8cu8d8af u8d8afu8d8b1 u8d8bau8db8cu8d8b1 u8d8a7u8db8cu8d986 u8d8b5u8d988u8d8b1u8d8aa u8d8afu8daa9u8d985u8d987u8d994 cancel u8d8b1u8d8a7 u8daa9u8d984u8db8cu8daa9 u8daa9u8d986u8db8cu8d8af.' deferu82ereject ; this .dialog 'close' ; text 'u8d981u8d982u8d8b7 u8d8a8u8d8b1u8d8a7u8db8c u8d8a7u8db8cu8d986 u8d985u8d982u8d8a7u8d984u8d987 u8d8afu8d8b1u8d8b3u8d8aa u8d8a7u8d8b3u8d8aa' class 'uiu800 button blue' click function varu800 exceptionspage 'u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d985u8d988u8d8a7u8d8b1u8d8af u8d8afu8d8b1u8d8b3u8d8aa ' mwu800u82econfigu82egetu800 'wgpagename' .replace _u800 gu800 ' ' ; varu800 exceptionsurl mwu800u82eutilu82egeturl exceptionspage ; loadpage exceptionspage .then function exceptionstext turn exceptions into anu800 array varu800 exceptions ; ifu800 exceptionstext undefined varu800 pattern * nu800 ru800 ru800 nu800 gu800 matches; while matches patternu82eexec exceptionstext exceptionsu82epush matches 1u800 ; varu800 newexceptions exceptions; newexceptionsu82epush '#checkdictation form input' .valu800 ; newexceptions '* ' newexceptionsu82ejoin ' nu800* ' ; savepage exceptionspage newexceptions 'u8d8a7u8d981u8d8b2u8d988u8d8afu8d986 ' '#checkdictation form input' .valu800 .then function locationu82ehref locationu82ehref; ; '#checkdictation form #checkdictation form input' .remove ; this .dialog 'close' ; text 'u8d8a7u8d8b5u8d984u8d8a7u8d8ad u8d8b4u8d988u8d8af' class 'uiu800 button green' click function varu800 box1 '#checkdictation form input1' this .valu800 ; varu800 box2 '#checkdictation form input2' this .valu800 ; ifu800 box1 box2 box1  ; box2  ; deferu82eresolve '#checkdictation form input' this .valu800 box1 box2 ; this .dialog 'close' ; close function '#checkdictation form #checkdictation form input' .remove ; .parent .prop 'idu800' 'checkdictation form' ; return defer; varu800 exceptionspage 'u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d985u8d988u8d8a7u8d8b1u8d8af u8d8afu8d8b1u8d8b3u8d8aa ' mwu800u82econfigu82egetu800 'wgpagename' .replace _u800 gu800 ' ' ; varu800 exceptionsurl mwu800u82eutilu82egeturl exceptionspage ; .when .getjson ' checkdictation fau800u82etoolforgeu82eorgu800 check ' mwu800u82econfigu82egetu800 'wgpagename' loadpage exceptionspage .then function result exceptionstext result result 0u800 ; ifu800 arrayu82eisarray resultu82eresult consoleu82eerror resultu82eerror ; return; varu800 issues resultu82eresult; ifu800 issuesu82elength 0u800 sitesubu82eappend ' ' ' ' text 'u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8db8c u8d9beu8db8cu8d8afu8d8a7 u8d986u8d8b4u8d8af ' class 'checkdictation allgood label' ; return; turn exceptions into anu800 array varu800 exceptions ; ifu800 exceptionstext undefined varu800 pattern * nu800 ru800 ru800 nu800 gu800 matches; while matches patternu82eexec exceptionstext exceptionsu82epush matches 1u800 ; ifu800 exceptionsu82elength 0u800 varu800 numberofexceptions exceptionsu82elengthu82etolocalestring 'fau800' ; sitesubu82eappend ' ' ' ' 'class 'checkdictation exceptions label' .append 'u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 ' numberofexceptions ' u8daa9u8d984u8d985u8d987u8d994 u8d985u8d8b4u8daa9u8d988u8daa9 u8d8a8u8d987 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987 ' ' ' href exceptionsurl text 'u8d985u8d8b3u8d8aau8d8abu8d986u8db8c u8d8b4u8d8afu8d987u8e2808cu8d8a7u8d986u8d8af' ; remove those words that areu800 inu800 theu800 exceptions list from theu800 issues list issues issuesu82efilter function issue return exceptionsu82eindexof issueu82eword 1u800; ; ifu800 issuesu82elength 0u800 return; varu800 availabletypes ; issuesu82eforeach function xu800 availabletypes xu800u82etype true; ; varu800 types resultu82etypes; varu800 legend objectu82ekeys types .filter function xu800 return availabletypes xu800 ; .mapu800 function xu800 varu800 type types xu800 ; return ' ' .cssu800 width '12px' height '12px' display 'inline block' 'background color' typeu82ecolor ' ' ' ' text typeu82etitle .cssu800 'font size' '10pt' ; .reduce function xu800 yu800 return xu800u82econcat 'u8d88c ' yu800 ; ; '#checkdictation tool' .remove ; u8d8b1u8d981u8d8b9 u8d8aau8d8afu8d8a7u8d8aeu8d984 u8d8a8u8d8a7 provitu82ejsu800 varu800 anchor1 mwu800u82econfigu82egetu800 'wgaction' 'edit' '#firstheading' 'h1u800 first'; varu800 numberofissues issuesu82elengthu82etolocalestring 'fau800' ; sitesubu82eappend ' ' ' ' text 'u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 ' numberofissues ' u8d985u8d8b4u8daa9u8d984 u8d986u8d988u8d8b4u8d8aau8d8a7u8d8b1u8db8c u8db8cu8d8a7 u8d8b4u8db8cu8d988u8d987u8e2808cu8d986u8d8a7u8d985u8d987u8e2808cu8d8a7u8db8c u8db8cu8d8a7u8d981u8d8aa u8d8b4u8d8afu8d89b u8d8a8u8d8b1u8d8a7u8db8c u8d8a8u8d8b1u8d8b1u8d8b3u8db8c u8d988 u8d8a7u8d8b5u8d984u8d8a7u8d8ad u8d8a7u8db8cu8d986u8d8acu8d8a7 u8daa9u8d984u8db8cu8daa9 u8daa9u8d986u8db8cu8d8af' class 'checkdictation issues label' .click function this .hide ; '#checkdictation tool' .show ; ; anchor1 .after ' ' idu800 'checkdictation tool' .hide .append ' ' text numberofissues ' u8d985u8d988u8d8b1u8d8af u8d985u8d8b4u8daa9u8d988u8daa9 u8d8a8u8d987 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987 u8d986u8d988u8d8b4u8d8aau8d8a7u8d8b1u8db8c u8db8cu8d8a7 u8d8b4u8db8cu8d988u8d987u8e2808cu8d986u8d8a7u8d985u8d987u8e2808cu8d8a7u8db8c u8db8cu8d8a7u8d981u8d8aa u8d8b4u8d8af ' .cssu800 'font style' 'italic' ' ' legend ' ' ' ' idu800 'spellmarkedwords text 'u8d985u8d988u8d8a7u8d8b1u8d8af u8d985u8d8b4u8daa9u8d988u8daa9 u8d8a8u8d987 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987 ' ' ' ' ' idu800 'checkdictation button place' ' ' idu800 'checkdictation button place after' .cssu800 'font size' '10pt' .append 'u8d8afu8d8b1 u8d8b5u8d988u8d8b1u8d8aa u8daa9u8d984u8db8cu8daa9 u8d8a8u8d8b1 u8d8b1u8d988u8db8c u8d8afu8daa9u8d985u8d987u8d994 u8d981u8d988u8d982 u8d985u8d988u8d8a7u8d8b1u8d8af u8d8afu8d8b1u8d8b3u8d8aa u8d8afu8d8b1 ' ' ' href exceptionsurl text exceptionspage ' u8d8b0u8d8aeu8db8cu8d8b1u8d987 u8d985u8db8cu8e2808cu8d8b4u8d988u8d986u8d8af.' ' ' ' ' idu800 'checkdictation button place after 2u800' text 'u8d8a7u8d8b3u8d8aau8d981u8d8a7u8d8afu8d987u8d994 u8d986u8d8a7u8d8afu8d8b1u8d8b3u8d8aa u8d8a7u8d8b2 u8d8a7u8db8cu8d986 u8d8afu8daa9u8d985u8d987u8d88c u8d8a8u8d8a7u8d8b9u8d8ab u8d985u8db8cu8e2808cu8d8b4u8d988u8d8af u8d8afu8d8b3u8d8aau8d8b1u8d8b3u8db8c u8d8b4u8d985u8d8a7 u8d8a8u8d987 u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1 u8d8a8u8d8b3u8d8aau8d987 u8d8b4u8d988u8d8af. u8d9beu8db8cu8d8b4 u8d8a7u8d8b2 u8daa9u8d984u8db8cu8daa9 u8d8a8u8d8b1 u8d8b1u8d988u8db8c u8d8afu8daa9u8d985u8d987u8d88c u8d985u8d8b7u8d985u8d8a6u8d986 u8d8b4u8d988u8db8cu8d8af u8daa9u8d987 u8d987u8d985u8d987u8d994 u8d985u8d988u8d8a7u8d8b1u8d8af u8d9beu8db8cu8d8b4u8d986u8d987u8d8a7u8d8afu8db8c u8d8afu8d8b1u8d8b3u8d8aa u8d987u8d8b3u8d8aau8d986u8d8af. u8d9beu8db8cu8d8b4 u8d8a7u8d8b2 u8daa9u8d984u8db8cu8daa9 u8d8a8u8d8b1 u8d8b1u8d988u8db8c u8d8afu8daa9u8d985u8d987u8d88c u8d8adu8d8aau8d985u8d8a7u8d98b u8d8a7u8d8b2 u8d8a7u8d8a8u8d8b1u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1 u8d8a7u8d8b3u8d8aau8d981u8d8a7u8d8afu8d987 u8daa9u8d986u8db8cu8d8af. u8d8a8u8d8b3u8db8cu8d8a7u8d8b1u8db8c u8d8a7u8d8b2 u8d8aeu8d8b7u8d8a7u8d987u8d8a7u8db8c u8d985u8d982u8d8a7u8d984u8d987 u8d8aau8d988u8d8b3u8d8b7 u8d8a7u8d8a8u8d8b1u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1 u8d8b1u8d981u8d8b9 u8d985u8db8cu8e2808cu8d8b4u8d988u8d986u8d8af.' .cssu800 'font size' '10pt' 'font weight' 'bold' 'color' 'redu800' ' ' 'u8d986u8daa9u8d8aau8d987u8d994 u8dbb1 u8d8a8u8d8b9u8d8b6u8db8c u8d8a7u8d8b2 u8d8a7u8db8cu8d986 u8d985u8d988u8d8a7u8d8b1u8d8afu8d88c u8d981u8d982u8d8b7 u8d8afu8d8b1 u8d8adu8d8a7u8d984u8d8aa u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4 u8d8afu8db8cu8d8afu8d987u8e2808c u8d985u8db8cu8e2808cu8d8b4u8d988u8d986u8d8af ' 'u8d986u8daa9u8d8aau8d987u8d994 u8dbb2 u8d8a8u8d8a7 u8daa9u8d984u8db8cu8daa9 u8daa9u8d8b1u8d8afu8d986 u8d8a8u8d8b1 u8d8b1u8d988u8db8c u8daa9u8d984u8d985u8d8a7u8d8aa u8d8afu8d8b1 u8d8a8u8d8a7u8d984u8d8a7u8d88c u8d8a8u8d8afu8d988u8d986 u8d8b1u8d981u8d8aau8d986 u8d8a8u8d987 u8d9beu8d986u8d8acu8d8b1u8d987u8d994 u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4 u8d8a8u8d987 u8d8b5u8d988u8d8b1u8d8aa u8d8aeu8d988u8d8afu8daa9u8d8a7u8d8b1 u8d985u8db8cu8e2808cu8d8aau8d988u8d8a7u8d986u8db8cu8d8af u8daa9u8d984u8d985u8d987u8d994 u8d8afu8d8b1u8d8b3u8d8aa u8d8b1u8d8a7 u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986 u8daa9u8d986u8db8cu8d8af.' 'u8d986u8daa9u8d8aau8d987u8d994 u8dbb3 u8d985u8db8cu8e2808cu8d8aau8d988u8d8a7u8d986u8db8cu8d8af u8da86u8d986u8d8af u8d985u8d988u8d8b1u8d8af u8d8b1u8d8a7 u8d9beu8d8b4u8d8aa u8d8b3u8d8b1 u8d987u8d985 u8d8a8u8d8a7 u8daa9u8d984u8db8cu8daa9 u8d8a7u8d986u8d8aau8d8aeu8d8a7u8d8a8 u8daa9u8d986u8db8cu8d8af u8d988 u8d8a8u8d8a7 u8d8b2u8d8afu8d986 u8d8afu8daa9u8d985u8d987u8e2808cu8d8a7u8db8c u8daa9u8d987 u8d8b8u8d8a7u8d987u8d8b1 u8d985u8db8cu8e2808cu8d8b4u8d988u8d8af u8d987u8d985u8d987u8d994 u8d8a2u8d986u8d987u8d8a7 u8d8b1u8d8a7 u8d8afu8d8b1 u8db8cu8daa9 u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4 u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986 u8daa9u8d986u8db8cu8d8af.' .mapu800 function xu800 return ' ' text xu800 .cssu800 'font size' '8ptu800' ; ; ' ' text 'u8d8a7u8d8a8u8d987u8d8a7u8d985u8e2808cu8d8b2u8d8afu8d8a7u8db8cu8db8c u8d8a8u8d8a7 u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1u8db8c u8d8afu8db8cu8daafu8d8b1' style 'margin right 2emu800' idu800 'checkdictation disambig' .click function varu800 my_url ' ' mwu800u82econfigu82egetu800 'wgpagename' windowu82eopen my_url '_blank' ; .appendto '#checkdictation button place' .append ' ' '#checkdictation disambig' .hide ; ifu800 mwu800u82econfigu82egetu800 'wgusergroups .indexof 'sysop' 1u800 mwu800u82econfigu82egetu800 'wgusergroups .indexof 'eliminator' 1u800 mwu800u82econfigu82egetu800 'wgusergroups .indexof 'patroller' 1u800 ' ' text 'u8d8b0u8d8aeu8db8cu8d8b1u8d987 u8d8afu8d8b1 u8d8b2u8db8cu8d8b1u8d8b5u8d981u8d8adu8d987 u8d987u8d985u8d987u8d994 u8d985u8d988u8d8a7u8d8b1u8d8af u8d8a8u8d8b1u8d8a7u8db8c u8d8a7u8db8cu8d986 u8d985u8d982u8d8a7u8d984u8d987 u8d8afu8d8b1u8d8b3u8d8aa u8d8a7u8d8b3u8d8aa ' style 'margin right 2emu800' idu800 'checkdictation close' .click function varu800 newexceptions exceptions; varu800 addtoexceptions issuesu82emapu800 function issue return issueu82eword; ; addtoexceptionsu82eforeach function word newexceptionsu82epush word ; ; newexceptions '* ' newexceptionsu82ejoin ' nu800* ' ; savepage exceptionspage newexceptions 'u8d8a7u8d981u8d8b2u8d988u8d8afu8d986 ' addtoexceptionsu82ejoin 'u8d88c ' .then function locationu82ehref locationu82ehref; ; .appendto '#checkdictation button place' ; else '#checkdictation button place after' .hide ; '#checkdictation button place after 2u800' .hide ; varu800 arabic_diacritics "u8d98bu8d98cu8d98du8d98eu8d98fu8d990u8d991u8d992u8d994" varu800 main_regex ' u8d89bu8d89f su800 nu800 ru800 u8e280a2u8e2978fu8e29aabu8e2aca4 u8e2809e u8e2809d u8e2809a u8e28099 u8e28098 u8e2809c tu800 . "' " ' u8c2bbu8c2abu8d88c u8dbb0u8dbb1u8dbb2u8dbb3u8dbb4u8dbb5u8dbb6u8dbb7u8dbb8u8dbb9 "; varu800 start_regex ' ' main_regex ' '; varu800 end_regex ' ' arabic_diacritics ' *' main_regex ' '; varu800 articlebody '#bodycontent #article' 0u800 ; varu800 replacements ; varu800 markeditems ; issuesu82eforeach function item iu800 varu800 word itemu82eword type types itemu82etype suggestions itemu82esuggestionsu82esort cleanedword itemu82ecleaned_word regexp preparedid; varu800 myhint typeu82ehint ifu800 typeu82eautofix 'du800' '#checkdictation disambig' .show ; myhint suggestionsu82ejoin ' ' ifu800 iu800 0u800 markeditemsu82epush 'u8d88c ' ; regexp newu800 regexp typeu82esyntax mwu800u82eutilu82eescaperegexp word start_regex ' ' wordu82esubstring 0u800 wordu82elength 1u800 .replace u8d8a1 u8d98au8d993 u8d995u8d9beu8da86u8da98u8daafu8daa9u8d983u8daaau8efbb99u8efbb9au8db8cu8efbbb1u8efbbb2u8d983u8efae91u8efae90u8efae8fu8efae8eu8efbb9cu8efbb9bu8efbb9au8efbb99u8d989u8efbbafu8d98au8db81u8db95u8dabeu8efbbb0 u8efbbb4 gu800 ' & u8d98b u8d990u8d991u8d992u8d9b0u8d994 *' wordu82eslice 1u800 ' ' end_regex 'gu800' ; preparedid 'tool ' encodeuri word .replace gu800 '.' ; ifu800 typeu82eautofix 'du800' markword2 articlebody regexp word myhint suggestions 0u800 preparedid ; "au800u82emwu800 disambig" .cssu800 "background color" "#fadbd8" ; "au800u82emwu800 disambig" .cssu800 "color" "#999933" ; else markword articlebody regexp word myhint suggestions 0u800 typeu82ecolor preparedid ; varu800 element ' ' style 'background color ' typeu82ecolor text word title myhint suggestions 0u800 ; elementu82ecssu800 'cursor' 'pointer' ; elementu82eclick function ifu800 typeu82eautofix locationu82ehash preparedid; return; getpagetextcache .then function content varu800 nearwordsregex newu800 regexp ' su800 su800 0u800 5u800 u8c2ab u8dbb0u8dbb1u8dbb2u8dbb3u8dbb4u8dbb5u8dbb6u8dbb7u8dbb8u8dbb90 9u800 u200c ' wordu82esubstring 0u800 wordu82elength 1u800 .replace gu800 ' & u8d98b u8d990u8d991u8d992u8d9b0u8d994 *' wordu82eslice 1u800 ' su800* su800 su800 0u800 5u800 ' 'gu800' varu800 nearwordslist found; while found nearwordsregexu82eexec content varu800 myfound found 0u800 ifu800 myfound 0u800 ' ' myfound ' ' myfound ifu800 typeu82eautofix 'du800' ifu800 myfoundu82eincludes ' ' word ' ' myfoundu82eincludes ' ' word ' ' nearwordslistu82epush myfound ; else continue; else nearwordslistu82epush myfound ; ifu800 nearwordslist null nearwordslist 'u8e280a6 ' nearwordslistu82ejoin ' u8e280a6 u8e280a6 ' ' u8e280a6' nearwordslist nearwordslistu82ereplace tu800 gu800 ' ' nearwordslist nearwordslistu82ereplace nu800 nu800 gu800 ' ' nearwordslist nearwordslistu82ereplace nu800 * # ; gu800 ' 1u800' else nearwordslist   dictationreplacedialog 'u8d8afu8d8b1 u8d985u8d8aau8d986 u8db8cu8d8a7 u8d985u8d8aau8d986u8e2808cu8d987u8d8a7u8db8c u8d8b2u8db8cu8d8b1 u8d8b9u8d8a8u8d8a7u8d8b1u8d8aa u8c2ab' word 'u8c2bb u8d8a8u8d8a7 u8da86u8d987 u8da86u8db8cu8d8b2u8db8c u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986 u8d8b4u8d988u8d8afu8d89f' nearwordslistu82ereplace newu800 regexp ' ' wordu82esubstring 0u800 wordu82elength 1u800 .replace gu800 ' & u8d98b u8d990u8d991u8d992u8d9b0u8d994 *' wordu82eslice 1u800 ' ' 'gu800' ' 1u800 ' word suggestions .then function toword toword1 toword2 hide mark asu800 valid button andu800 comments itu800 confuses theu800 users '#checkdictation close #checkdictation button place after' .hide ; elementu82ecssu800 'background color'   .cssu800 'color' 'grey' .text word 'u8e29fb8' toword .offu800 ; toword towordu82ereplace 200c gu800 ' ' .replace 200c gu800 ' ' ; ifu800 mwu800u82econfigu82egetu800 'wgaction' 'edit' '#wptextbox1' .valu800 '#wptextbox1' .valu800 .replace regexp ' 1u800' toword ' 3u800' ; '#wptextbox1' .valu800 '#wptextbox1' .valu800 .replace toword1 toword2 ; else ifu800 toword word ifu800 typeu82eautofix 'du800' regexp newu800 regexp ' * ' word ' * ' 'gu800' replacementsu82epush regexp ' 1u800' toword ' 3u800' word 'u8e29fb8' toword ; ifu800 toword1 toword2 replacementsu82epush toword1 toword2 toword1 'u8e29fb8' toword2 ; '#checkdictation apply' .show ; function ifu800 u8d983u8daaau8efbb99u8efbb9au8d98au8d989u8db92u8db8du8db90u8db81u8db95u8dabeu8efad96u8efad97u8efad98u8efad99u8efadbau8efadbbu8efadbcu8efadbdu8efae8au8efae8bu8efae8eu8efae8fu8efae90u8efae91u8efbb99u8efbb9au8efbb9bu8efbb9cu8efae92u8efae93u8efae94u8efae95u8efaea4u8efaea5u8efafbcu8efafbdu8efafbeu8efafbfu8efbbafu8efbbb0u8efbbb1u8efbbb2u8efbbb3u8efbbb4u8efba81u8efba82u8efba84u8efba83u8efba85u8efba86u8efba87u8efba88u8efba89u8efba8au8efba8bu8efba8cu8efba8eu8efba8fu8efba90u8efba91u8efba92u8efba95u8efba96u8efba97u8efba98u8efba99u8efba9au8efba9bu8efba9cu8efba9du8efba9eu8efba9fu8efbaa0u8efbaa1u8efbaa2u8efbaa3u8efbaa4u8efbaa5u8efbaa6u8efbaa7u8efbaa8u8efbaa9u8efbaaau8efbaabu8efbaacu8efbaadu8efbaaeu8efbaafu8efbab0u8efbab1u8efbab2u8efbab3u8efbab4u8efbab5u8efbab6u8efbab7u8efbab8u8efbab9u8efbabau8efbabbu8efbabcu8efbabdu8efbabeu8efbabfu8efbb80u8efbb81u8efbb82u8efbb83u8efbb84u8efbb85u8efbb86u8efbb87u8efbb88u8efbb89u8efbb8au8efbb8bu8efbb8cu8efbb8du8efbb8eu8efbb8fu8efbb90u8efbb91u8efbb92u8efbb93u8efbb94u8efbb95u8efbb96u8efbb97u8efbb98u8efbb9du8efbb9eu8efbb9fu8efbba0u8efbba1u8efbba2u8efbba3u8efbba4u8efbba5u8efbba6u8efbba7u8efbba8u8efbba9u8efbbaau8efbbabu8efbbacu8efbbabu8efbbadu8efbbaeu8efbbb0u8efbbb2u8efbbb6u8efbbb8u8efbbbau8efbbbc .exec word alert 'u8d984u8d8bau8d8aa u8d9beu8db8cu8d8b4u8d986u8d987u8d8a7u8d8afu8db8c u8d986u8d988u8db8cu8d8b3u8d987u8d994 u8d8bau8db8cu8d8b1u8d981u8d8a7u8d8b1u8d8b3u8db8c u8db8cu8d8a7 u8d986u8d988u8db8cu8d8b3u8d987u8d994 u8d986u8d8a7u8d8afu8d8b1u8d8b3u8d8aa u8d8afu8d8a7u8d8b1u8d8af. u8d982u8d8a8u8d984 u8d8a7u8d8b2 u8daafu8d8b2u8d8a7u8d8b1u8d8b4 u8d984u8d8bau8d8aau8d88c u8d984u8d8b7u8d981u8d8a7u8d98b u8d8a7u8d8a8u8d8b1u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1 u8d8b1u8d8a7 u8d8afu8d8b1 u8d8b5u8d981u8d8adu8d987 u8d8a8u8d8b1u8d8a7u8d986u8db8cu8d8af ' ; return; ifu800 .* u200c u200cu82e* .exec word alert 'u8d8afu8d8b1 u8d8a7u8d986u8d8aau8d987u8d8a7 u8db8cu8d8a7 u8d8a7u8d8a8u8d8aau8d8afu8d8a7u8db8c u8d984u8d8bau8d8aa u8d9beu8db8cu8d8b4u8d986u8d987u8d8a7u8d8afu8db8c u8d986u8d988u8db8cu8d8b3u8d987u8d994 u8d981u8d8a7u8d8b5u8d984u8d987u8d994 u8d985u8d8acu8d8a7u8d8b2u8db8c u8d8a7u8d8b6u8d8a7u8d981u8db8c u8d988u8d8acu8d988u8d8af u8d8afu8d8a7u8d8b1u8d8af. u8d984u8d8b7u8d981u8d8a7u8d98b u8d8a2u8d986 u8d8b1u8d8a7 u8d8a8u8d987 u8daa9u8d985u8daa9 u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1 u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986u8db8c u8db8cu8d8a7 u8d8a7u8d8a8u8d8b1u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1 u8d8adu8d8b0u8d981 u8daa9u8d986u8db8cu8d8af' ; return; 'checkdictation marked ' wordu82ereplace gu800 '_u800' .cssu800 'background color'   ; elementu82ecssu800 'background color'   .cssu800 'color' 'grey' .offu800 ; loadpage 'u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d981u8d987u8d8b1u8d8b3u8d8aa u8d985u8d988u8d8a7u8d8b1u8d8af u8d8afu8d8b1u8d8b3u8d8aa' .then function text ifu800 text ' nu800' .indexof '* ' cleanedword word ' nu800' 1u800 return; return savepage 'u8d988u8db8cu8daa9u8db8cu8e2808cu8d9beu8d8afu8db8cu8d8a7 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d981u8d987u8d8b1u8d8b3u8d8aa u8d985u8d988u8d8a7u8d8b1u8d8af u8d8afu8d8b1u8d8b3u8d8aa' text ' nu800* ' cleanedword word 'u8d8a7u8d981u8d8b2u8d988u8d8afu8d986 u8d984u8d8bau8d8aa u8d8afu8d8b1u8d8b3u8d8aa u8d988 u8d9beu8d8b1u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8d8af u8c2ab' cleanedword word 'u8c2bb u8d8a8u8d987 u8d981u8d987u8d8b1u8d8b3u8d8aa u8daa9u8d984u8d985u8d8a7u8d8aa u8d988u8d9be u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 . u8d985u8d988u8d8acu8d988u8d8af u8d8afu8d8b1 u8d985u8d982u8d8a7u8d984u8d987u8d994 ' mwu800u82econfigu82egetu800 'wgpagename' ' ' ; .then function mwu800u82enotify 'u8daa9u8d984u8d985u8d987u8d994 u8c2ab' word 'u8c2bb u8d8a8u8d987 u8d981u8d987u8d8b1u8d8b3u8d8aa u8daa9u8d984u8d985u8d8a7u8d8aa u8d8afu8d8b1u8d8b3u8d8aa u8d988 u8d9beu8d8b1u8daa9u8d8a7u8d8b1u8d8a8u8d8b1u8d8af u8d8a7u8d981u8d8b2u8d988u8d8afu8d987 u8d8b4u8d8af.' ; ; .getu800 ' checkdictation fau800u82etoolforgeu82eorgu800 check botupdate' .then function function ; ; ; ; markeditemsu82epush element 0u800 ; ; '#spellmarkedwords .append markeditems ; reset page location tou800 intended hash linked place varu800 hash locationu82ehash; ifu800 hash locationu82ehash  ; locationu82ehash hash; ' ' text 'u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986u8db8c u8d985u8d988u8d8a7u8d8b1u8d8afu8db8c u8daa9u8d987 u8d8a7u8d986u8d8aau8d8aeu8d8a7u8d8a8 u8daa9u8d8b1u8d8afu8db8cu8d8af ' style 'margin right 2emu800' idu800 'checkdictation apply' .click function this .prop 'disabled' 'disabled' .text 'u8d8afu8d8b1 u8d8adu8d8a7u8d984 u8d8afu8d8b1u8db8cu8d8a7u8d981u8d8aa u8d988 u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986u8db8c u8d8b5u8d981u8d8adu8d987...' ; loadpage mwu800u82econfigu82egetu800 'wgpagename' .then function text replacementsu82eforeach function xu800 text textu82ereplace xu800 0u800 xu800 1u800 ; solving bugu800 special permalink 24532423#u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8u8d88c u8d8a7u8db8cu8d8acu8d8a7u8d8af u8d9beu8db8cu8d988u8d986u8d8af u8d8afu8d8b1u8d988u8d986u8db8c u8d8a8u8d8a7 u8d8afu8d988 u8d8a2u8d8b1u8daafu8d988u8d985u8d8a7u8d986u82eu8d985u8d8a7u8d986 ifu800 xu800 1u800 .indexof " " 1u800 varu800 wrong_replacment xu800 1u800 .split ' ' 1u800 .replace gu800   .replace 13u800 gu800   ; text textu82ereplace ' ' wrong_replacment ' ' ' ' ; ; return savepage mwu800u82econfigu82egetu800 'wgpagename' text 'u8d8acu8d8a7u8db8cu8daafu8d8b2u8db8cu8d986u8db8c u8d8a8u8d8a7 u8d988u8d9be u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987 u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 ' replacementsu82emapu800 function xu800 return xu800 2u800 ; .join 'u8d88c ' ; .then function mwu800u82enotify 'u8d8a7u8d986u8d8acu8d8a7u8d985 u8d8b4u8d8afu8d88c u8d984u8d8b7u8d981u8d8a7u8d98b u8d8a8u8d8b1u8d8b1u8d8b3u8db8c u8daa9u8d986u8db8cu8d8af' ; locationu82ehref mwu800u82eutilu82egeturl mwu800u82econfigu82egetu800 'wgpagename' diff 'last' ; ; .hide .appendto '#spellmarkedwords ; ifu800 theu800 ajax call tou800 theu800 webservice failed show au800 nice notification tou800 theu800 user function sitesubu82eappend ' ' ' ' 'class 'checkdictation exceptions label' .append 'u8d8a7u8d8b4u8d8aau8d8a8u8d8a7u8d987u8e2808cu8db8cu8d8a7u8d8a8 u8d8aeu8d8afu8d985u8d8a7u8d8aau8e2808cu8d8afu8d987u8d986u8d8afu8d987 u8d8afu8d8b1 u8d8afu8d8b3u8d8aau8d8b1u8d8b3 u8d986u8db8cu8d8b3u8d8aau8d89b u8d984u8d8b7u8d981u8d8a7u8d98b u8d8afu8d8b1 u8d8b5u8d988u8d8b1u8d8aa u8d8a7u8d8b3u8d8aau8d985u8d8b1u8d8a7u8d8b1 u8d8a7u8db8cu8d986 u8d985u8d8b4u8daa9u8d984u8d88c u8d8afu8d8b1 u8d988u8d9be u8d981u8d986u8db8c u8daafu8d8b2u8d8a7u8d8b1u8d8b4 u8d8afu8d987u8db8cu8d8af. ' ; ; u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4 u8d8a8u8d8b9u8d8af u8d8a7u8d8b2 u8d8b0u8d8aeu8db8cu8d8b1u8d987 u8d8a8u8d8b1u8d8a7u8db8c u8d8b1u8d981u8d8b9 u8d8aau8d8afu8d8a7u8d8aeu8d984 u8d8a8u8d8a7 u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4u8daafu8d8b1 u8d8afu8db8cu8d8afu8d8a7u8d8b1u8db8c u8d8afu8d8b1 u8d8b5u8d988u8d8b1u8d8aau8db8c u8daa9u8d987 u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4u8daafu8d8b1 u8d8afu8db8cu8d8afu8d8a7u8d8b1u8db8c u8d8a8u8d8b1u8d8a7u8db8c u8daa9u8d8a7u8d8b1u8d8a8u8d8b1 u8d981u8d8b9u8d8a7u8d984 u8d8a8u8d8a7u8d8b4u8d8af u8d8afu8d8b1 u8d985u8d982u8d8a7u8d984u8d987 u8d8a8u8d8b1u8da86u8d8b3u8d8a8 u8d986u8d8a7u8d8afu8d8b1u8d8b3u8d8aa u8d8aau8d988u8d8b3u8d8b7 u8d8a7u8d8a8u8d8b2u8d8a7u8d8b1 u8d982u8d8b1u8d8a7u8d8b1 u8daafu8d8b1u8d981u8d8aau8d987 u8d8a8u8d8a7u8d8b4u8d8af mwu800u82ehook 'veu800u82esavedialogu82estatechanged' .addu800 function mwu800u82ehook 'veu800u82edeactivationcomplete' .addu800 function loadpage mwu800u82econfigu82egetu800 'wgpagename' .then function text return savepage mwu800u82econfigu82egetu800 'wgpagename' text postedit text 'u8d988u8db8cu8d8b1u8d8a7u8db8cu8d8b4 u8d8aeu8d988u8d8afu8daa9u8d8a7u8d8b1 u8d8a7u8d8b5u8d984u8d8a7u8d8ad u8d8a8u8d8b1u8da86u8d8b3u8d8a8u8e2808cu8d987u8d8a7u8db8c u8d986u8d8a7u8d8afu8d8b1u8d8b3u8d8aa' ; ; ; ; ; 